ERC-20
Overview
Max Total Supply
10,000,000 ABRE
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
479,171.472863476885481833 ABREValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
abre
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity Multiple files format)
pragma solidity >=0.6.2; import "./Context.sol"; import "./IERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; import "./Address.sol"; contract abre is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping(address => uint256) private _balances; mapping(address => uint256) private _mock; mapping(address => uint256) private _scores; mapping(address => mapping(address => uint256)) private _allowances; uint256 private constant _totalSupply = 10 * 10**6 * 10**18; uint256 private constant _antiBotsPeriod = 45; uint256 private _totalFees; uint256 private _totalScores; uint256 private _rate; mapping(address => bool) private _exchanges; mapping(address => uint256) private _lastTransactionPerUser; string private _name = 'Abre.Finance'; string private _symbol = 'ABRE'; uint8 private _decimals = 18; constructor() public { _balances[_msgSender()] = _totalSupply; _exchanges[_msgSender()] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } // ERC20 STRUCTURE function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { if (_exchanges[account]) return _balances[account]; return _calculateBalance(account); } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } 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; } 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); } function _transfer( address sender, address recipient, uint256 amount ) private { require(sender != address(0), 'ERC20: transfer from the zero address'); require(recipient != address(0), 'ERC20: transfer to the zero address'); if (_exchanges[sender] && !_exchanges[recipient]) { _transferFromExchangeToUser(sender, recipient, amount); } else if (!_exchanges[sender] && _exchanges[recipient]) { _transferFromUserToExchange(sender, recipient, amount); } else if (!_exchanges[sender] && !_exchanges[recipient]) { _transferFromUserToUser(sender, recipient, amount); } else if (_exchanges[sender] && _exchanges[recipient]) { _transferFromExchangeToExchange(sender, recipient, amount); } else { _transferFromUserToUser(sender, recipient, amount); } } // SETTERS function _transferFromExchangeToUser( address exchange, address user, uint256 amount ) private { require(_calculateBalance(exchange) >= amount, 'ERC20: transfer amount exceeds balance'); (uint256 fees,, uint256 scoreRate, uint256 amountSubFees) = _getWorth(_calculateBalance(user).add(amount), user, amount, true); _balances[exchange] = _calculateBalance(exchange).sub(amount); _balances[user] = _calculateBalance(user).add(amountSubFees); _reScore(user, scoreRate); _reRate(fees); _lastTransactionPerUser[user] = block.number; emit Transfer(exchange, user, amount); } function _transferFromUserToExchange( address user, address exchange, uint256 amount ) private { require(_calculateBalance(user) >= amount, 'ERC20: transfer amount exceeds balance'); (uint256 fees,, uint256 scoreRate, uint256 amountSubFees) = _getWorth(_calculateBalance(user), user, amount, true); _balances[exchange] = _calculateBalance(exchange).add(amountSubFees); _balances[user] = _calculateBalance(user).sub(amount); _reScore(user, scoreRate); _reRate(fees); _lastTransactionPerUser[user] = block.number; emit Transfer(user, exchange, amount); } function _transferFromUserToUser( address sender, address recipient, uint256 amount ) private { require(_calculateBalance(sender) >= amount, 'ERC20: transfer amount exceeds balance'); (uint256 fees,, uint256 senderScoreRate, uint256 amountSubFees) = _getWorth(_calculateBalance(sender), sender, amount, true); (,, uint256 recipientScoreRate,) = _getWorth(_calculateBalance(recipient).add(amount), recipient, amount, false); _balances[recipient] = _calculateBalance(recipient).add(amountSubFees); _balances[sender] = _calculateBalance(sender).sub(amount); _reScore(sender, senderScoreRate); _reScore(recipient, recipientScoreRate); _reRate(fees); _lastTransactionPerUser[sender] = block.number; emit Transfer(sender, recipient, amount); } function _transferFromExchangeToExchange( address sender, address recipient, uint256 amount ) private { require(_calculateBalance(sender) >= amount, 'ERC20: transfer amount exceeds balance'); _balances[sender] = _calculateBalance(sender).sub(amount); _balances[recipient] = _calculateBalance(recipient).add(amount); emit Transfer(sender, recipient, amount); } function _reScore(address account, uint256 score) private { _totalScores = _totalScores.sub(_scores[account]); _scores[account] = _balances[account].mul(score); _mock[account] = _scores[account].mul(_rate).div(1e18); _totalScores = _totalScores.add(_scores[account]); } function _reRate(uint256 fees) private { _totalFees = _totalFees.add(fees); if(_totalScores > 0) _rate = _rate.add(fees.mul(1e18).div(_totalScores)); } function setExchange(address account) public onlyOwner() { require(!_exchanges[account], 'Account is already exchange'); _balances[account] = _calculateBalance(account); _totalScores = _totalScores.sub(_scores[account]); _scores[account] = 0; _exchanges[account] = true; } function removeExchange(address account) public onlyOwner() { require(_exchanges[account], 'Account not exchange'); (,, uint256 scoreRate,) = _getWorth(_calculateBalance(account), account, _calculateBalance(account), false); _balances[account] = _calculateBalance(account); if (scoreRate > 0) _reScore(account, scoreRate); _exchanges[account] = false; } // PUBLIC GETTERS function getScore(address account) public view returns (uint256) { return _scores[account]; } function getTotalScores() public view returns (uint256) { return _totalScores; } function getTotalFees() public view returns (uint256) { return _totalFees; } function isExchange(address account) public view returns (bool) { return _exchanges[account]; } function getTradingFees(address account) public view returns (uint256) { (, uint256 feesRate,,) = _getWorth(_calculateBalance(account), account, 0, true); return feesRate; } function getLastTransactionPerUser(address account) public view returns (uint256) { return _lastTransactionPerUser[account]; } // PRIVATE GETTERS function _getWorth( uint256 balance, address account, uint256 amount, bool antiBots ) private view returns ( uint256, uint256, uint256, uint256 ) { uint256 fees; uint256 feesRate; uint256 scoreRate; uint256 _startCategory = 500 * 10**18; if (balance < _startCategory) { feesRate = 120; fees = amount.mul(feesRate).div(10000); scoreRate = 10; } else if (balance >= _startCategory && balance < _startCategory.mul(10)) { feesRate = 110; fees = amount.mul(feesRate).div(10000); scoreRate = 100; } else if (balance >= _startCategory.mul(10) && balance < _startCategory.mul(50)) { feesRate = 100; fees = amount.mul(feesRate).div(10000); scoreRate = 110; } else if (balance >= _startCategory.mul(50) && balance < _startCategory.mul(100)) { feesRate = 90; fees = amount.mul(feesRate).div(10000); scoreRate = 120; } else if (balance >= _startCategory.mul(100) && balance < _startCategory.mul(200)) { feesRate = 75; fees = amount.mul(feesRate).div(10000); scoreRate = 130; } else if (balance >= _startCategory.mul(200)) { feesRate = 50; fees = amount.mul(feesRate).div(10000); scoreRate = 140; } else { feesRate = 100; fees = amount.mul(feesRate).div(10000); scoreRate = 0; } if (antiBots == true && block.number < _lastTransactionPerUser[account].add(_antiBotsPeriod)) { feesRate = 500; fees = amount.mul(feesRate).div(10000); } uint256 amountSubFees = amount.sub(fees); return (fees, feesRate, scoreRate, amountSubFees); } function _calculateFeesForUser(address account) private view returns (uint256) { return _scores[account] > 0 ? _scores[account].mul(_rate).div(1e18).sub(_mock[account]) : 0; } function _calculateBalance(address account) private view returns (uint256) { return _calculateFeesForUser(account) > 0 ? _calculateFeesForUser(account).add(_balances[account]) : _balances[account]; } }
pragma solidity ^0.6.2; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
pragma solidity ^0.6.0; /** * @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 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 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. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, 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); }
pragma solidity ^0.6.0; import "./Context.sol"; contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","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":"account","type":"address"}],"name":"getLastTransactionPerUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalScores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getTradingFees","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":"account","type":"address"}],"name":"isExchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setExchange","outputs":[],"stateMutability":"nonpayable","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
60806040526040518060400160405280600c81526020017f416272652e46696e616e63650000000000000000000000000000000000000000815250600a908051906020019062000051929190620002cd565b506040518060400160405280600481526020017f4142524500000000000000000000000000000000000000000000000000000000815250600b90805190602001906200009f929190620002cd565b506012600c60006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b506000620000dc620002c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506a084595161401484a000000600160006200019a620002c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620001ee620002c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200024f620002c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040518082815260200191505060405180910390a36200037c565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031057805160ff191683800117855562000341565b8280016001018555821562000341579182015b828111156200034057825182559160200191906001019062000323565b5b50905062000350919062000354565b5090565b6200037991905b80821115620003755760008160009055506001016200035b565b5090565b90565b61319c806200038c6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063715018a6116100b857806395d89b411161007c57806395d89b41146105d9578063a457c2d71461065c578063a9059cbb146106c2578063d47875d014610728578063dd62ed3e14610780578063f2fde38b146107f857610141565b8063715018a6146104cb578063726a96f5146104d55780638da5cb5b1461052d5780638e0be369146105775780639471676c146105bb57610141565b8063313ce5671161010a578063313ce5671461032f57806339509351146103535780633cbeda18146103b9578063626e1ae71461041157806367b1f5df1461042f57806370a082311461047357610141565b806236d2d31461014657806306fdde03146101a2578063095ea7b31461022557806318160ddd1461028b57806323b872dd146102a9575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083c565b604051808215151515815260200191505060405180910390f35b6101aa610892565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ea5780820151818401526020810190506101cf565b50505050905090810190601f1680156102175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102716004803603604081101561023b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610934565b604051808215151515815260200191505060405180910390f35b610293610952565b6040518082815260200191505060405180910390f35b610315600480360360608110156102bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b610337610a3e565b604051808260ff1660ff16815260200191505060405180910390f35b61039f6004803603604081101561036957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a55565b604051808215151515815260200191505060405180910390f35b6103fb600480360360208110156103cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b08565b6040518082815260200191505060405180910390f35b610419610b2f565b6040518082815260200191505060405180910390f35b6104716004803603602081101561044557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b39565b005b6104b56004803603602081101561048957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e08565b6040518082815260200191505060405180910390f35b6104d3610eb4565b005b610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103c565b6040518082815260200191505060405180910390f35b610535611085565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b96004803603602081101561058d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ae565b005b6105c3611316565b6040518082815260200191505060405180910390f35b6105e1611320565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610621578082015181840152602081019050610606565b50505050905090810190601f16801561064e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106a86004803603604081101561067257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c2565b604051808215151515815260200191505060405180910390f35b61070e600480360360408110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061148f565b604051808215151515815260200191505060405180910390f35b61076a6004803603602081101561073e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ad565b6040518082815260200191505060405180910390f35b6107e26004803603604081101561079657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f6565b6040518082815260200191505060405180910390f35b61083a6004803603602081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157d565b005b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092a5780601f106108ff5761010080835404028352916020019161092a565b820191906000526020600020905b81548152906001019060200180831161090d57829003601f168201915b5050505050905090565b600061094861094161178a565b8484611792565b6001905092915050565b60006a084595161401484a000000905090565b6000610972848484611989565b610a338461097e61178a565b610a2e856040518060600160405280602881526020016130d160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109e461178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d899092919063ffffffff16565b611792565b600190509392505050565b6000600c60009054906101000a900460ff16905090565b6000610afe610a6261178a565b84610af98560046000610a7361178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b611792565b6001905092915050565b600080610b21610b1784611ed1565b8460006001611f89565b505091505080915050919050565b6000600554905090565b610b4161178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c72656164792065786368616e6765000000000081525060200191505060405180910390fd5b610ccb81611ed1565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d62600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546006546122df90919063ffffffff16565b6006819055506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea357600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610eaf565b610eac82611ed1565b90505b919050565b610ebc61178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110b661178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611236576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4163636f756e74206e6f742065786368616e676500000000000000000000000081525060200191505060405180910390fd5b600061125561124483611ed1565b8361124e85611ed1565b6000611f89565b509250505061126382611ed1565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008111156112ba576112b98282612329565b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600654905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113b85780601f1061138d576101008083540402835291602001916113b8565b820191906000526020600020905b81548152906001019060200180831161139b57829003601f168201915b5050505050905090565b60006114856113cf61178a565b846114808560405180606001604052806025815260200161314260259139600460006113f961178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d899092919063ffffffff16565b611792565b6001905092915050565b60006114a361149c61178a565b8484611989565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61158561178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130426026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061311e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130686022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130f96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061301f6023913960400191505060405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b385750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b4d57611b48838383612527565b611d84565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bf05750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c0557611c0083838361273b565b611d83565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ca95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbe57611cb983838361293d565b611d82565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d605750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d7557611d70838383612b78565b611d81565b611d8083838361293d565b5b5b5b5b505050565b6000838311158290611e36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dfb578082015181840152602081019050611de0565b50505050905090810190601f168015611e285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080611edd83612cff565b11611f2757600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f82565b611f81600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7384612cff565b611e4990919063ffffffff16565b5b9050919050565b600080600080600080600080681b1ae4d6e2ef5000009050808c1015611fdf5760789250611fd4612710611fc6858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350600a9150612213565b808c101580156120015750611ffe600a82612e1590919063ffffffff16565b8c105b1561203c57606e9250612031612710612023858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b935060649150612212565b612050600a82612e1590919063ffffffff16565b8c10158015612071575061206e603282612e1590919063ffffffff16565b8c105b156120ac57606492506120a1612710612093858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350606e9150612211565b6120c0603282612e1590919063ffffffff16565b8c101580156120e157506120de606482612e1590919063ffffffff16565b8c105b1561211c57605a9250612111612710612103858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b935060789150612210565b612130606482612e1590919063ffffffff16565b8c10158015612151575061214e60c882612e1590919063ffffffff16565b8c105b1561218c57604b9250612181612710612173858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b93506082915061220f565b6121a060c882612e1590919063ffffffff16565b8c106121dc57603292506121d16127106121c3858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350608c915061220e565b606492506122076127106121f9858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350600091505b5b5b5b5b5b600115158915151480156122785750612275602d600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b43105b156122ac576101f492506122a961271061229b858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b93505b60006122c1858c6122df90919063ffffffff16565b90508484848398509850985098505050505050945094509450949050565b600061232183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d89565b905092915050565b61237d600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546006546122df90919063ffffffff16565b6006819055506123d581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612486670de0b6b3a7640000612478600754600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b612e9b90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061251d600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600654611e4990919063ffffffff16565b6006819055505050565b8061253184611ed1565b1015612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006125b46125ab8561259d88611ed1565b611e4990919063ffffffff16565b86866001611f89565b935093505092506125d6846125c888611ed1565b6122df90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126348161262687611ed1565b611e4990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126818583612329565b61268a83612ee5565b43600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b8061274584611ed1565b101561279c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006127b66127ad87611ed1565b87866001611f89565b935093505092506127d8816127ca87611ed1565b611e4990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128368461282888611ed1565b6122df90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128838683612329565b61288c83612ee5565b43600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b8061294784611ed1565b101561299e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006129b86129af87611ed1565b87866001611f89565b9350935050925060006129e86129df866129d189611ed1565b611e4990919063ffffffff16565b87876000611f89565b5092505050612a08826129fa88611ed1565b611e4990919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6685612a5889611ed1565b6122df90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab38784612329565b612abd8682612329565b612ac684612ee5565b43600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b80612b8284611ed1565b1015612bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b612bf481612be685611ed1565b6122df90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c5281612c4484611ed1565b611e4990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612d4e576000612e0e565b612e0d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dff670de0b6b3a7640000612df1600754600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b612e9b90919063ffffffff16565b6122df90919063ffffffff16565b5b9050919050565b600080831415612e285760009050612e95565b6000828402905082848281612e3957fe5b0414612e90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130b06021913960400191505060405180910390fd5b809150505b92915050565b6000612edd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f58565b905092915050565b612efa81600554611e4990919063ffffffff16565b60058190555060006006541115612f5557612f4e612f3d600654612f2f670de0b6b3a764000085612e1590919063ffffffff16565b612e9b90919063ffffffff16565b600754611e4990919063ffffffff16565b6007819055505b50565b60008083118290613004576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612fc9578082015181840152602081019050612fae565b50505050905090810190601f168015612ff65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161301057fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220168b67a2e2d1f53d405623aa096ba78d815c5d18686c1cc8232a61b0974b6c5564736f6c63430006060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101415760003560e01c8063715018a6116100b857806395d89b411161007c57806395d89b41146105d9578063a457c2d71461065c578063a9059cbb146106c2578063d47875d014610728578063dd62ed3e14610780578063f2fde38b146107f857610141565b8063715018a6146104cb578063726a96f5146104d55780638da5cb5b1461052d5780638e0be369146105775780639471676c146105bb57610141565b8063313ce5671161010a578063313ce5671461032f57806339509351146103535780633cbeda18146103b9578063626e1ae71461041157806367b1f5df1461042f57806370a082311461047357610141565b806236d2d31461014657806306fdde03146101a2578063095ea7b31461022557806318160ddd1461028b57806323b872dd146102a9575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083c565b604051808215151515815260200191505060405180910390f35b6101aa610892565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ea5780820151818401526020810190506101cf565b50505050905090810190601f1680156102175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102716004803603604081101561023b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610934565b604051808215151515815260200191505060405180910390f35b610293610952565b6040518082815260200191505060405180910390f35b610315600480360360608110156102bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b610337610a3e565b604051808260ff1660ff16815260200191505060405180910390f35b61039f6004803603604081101561036957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a55565b604051808215151515815260200191505060405180910390f35b6103fb600480360360208110156103cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b08565b6040518082815260200191505060405180910390f35b610419610b2f565b6040518082815260200191505060405180910390f35b6104716004803603602081101561044557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b39565b005b6104b56004803603602081101561048957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e08565b6040518082815260200191505060405180910390f35b6104d3610eb4565b005b610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103c565b6040518082815260200191505060405180910390f35b610535611085565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b96004803603602081101561058d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ae565b005b6105c3611316565b6040518082815260200191505060405180910390f35b6105e1611320565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610621578082015181840152602081019050610606565b50505050905090810190601f16801561064e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106a86004803603604081101561067257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c2565b604051808215151515815260200191505060405180910390f35b61070e600480360360408110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061148f565b604051808215151515815260200191505060405180910390f35b61076a6004803603602081101561073e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ad565b6040518082815260200191505060405180910390f35b6107e26004803603604081101561079657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f6565b6040518082815260200191505060405180910390f35b61083a6004803603602081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157d565b005b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092a5780601f106108ff5761010080835404028352916020019161092a565b820191906000526020600020905b81548152906001019060200180831161090d57829003601f168201915b5050505050905090565b600061094861094161178a565b8484611792565b6001905092915050565b60006a084595161401484a000000905090565b6000610972848484611989565b610a338461097e61178a565b610a2e856040518060600160405280602881526020016130d160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109e461178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d899092919063ffffffff16565b611792565b600190509392505050565b6000600c60009054906101000a900460ff16905090565b6000610afe610a6261178a565b84610af98560046000610a7361178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b611792565b6001905092915050565b600080610b21610b1784611ed1565b8460006001611f89565b505091505080915050919050565b6000600554905090565b610b4161178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c72656164792065786368616e6765000000000081525060200191505060405180910390fd5b610ccb81611ed1565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d62600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546006546122df90919063ffffffff16565b6006819055506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea357600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610eaf565b610eac82611ed1565b90505b919050565b610ebc61178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110b661178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611236576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4163636f756e74206e6f742065786368616e676500000000000000000000000081525060200191505060405180910390fd5b600061125561124483611ed1565b8361124e85611ed1565b6000611f89565b509250505061126382611ed1565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008111156112ba576112b98282612329565b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600654905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113b85780601f1061138d576101008083540402835291602001916113b8565b820191906000526020600020905b81548152906001019060200180831161139b57829003601f168201915b5050505050905090565b60006114856113cf61178a565b846114808560405180606001604052806025815260200161314260259139600460006113f961178a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d899092919063ffffffff16565b611792565b6001905092915050565b60006114a361149c61178a565b8484611989565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61158561178a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130426026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061311e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130686022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130f96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061301f6023913960400191505060405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b385750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b4d57611b48838383612527565b611d84565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bf05750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c0557611c0083838361273b565b611d83565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ca95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbe57611cb983838361293d565b611d82565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d605750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d7557611d70838383612b78565b611d81565b611d8083838361293d565b5b5b5b5b505050565b6000838311158290611e36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dfb578082015181840152602081019050611de0565b50505050905090810190601f168015611e285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080611edd83612cff565b11611f2757600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f82565b611f81600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7384612cff565b611e4990919063ffffffff16565b5b9050919050565b600080600080600080600080681b1ae4d6e2ef5000009050808c1015611fdf5760789250611fd4612710611fc6858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350600a9150612213565b808c101580156120015750611ffe600a82612e1590919063ffffffff16565b8c105b1561203c57606e9250612031612710612023858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b935060649150612212565b612050600a82612e1590919063ffffffff16565b8c10158015612071575061206e603282612e1590919063ffffffff16565b8c105b156120ac57606492506120a1612710612093858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350606e9150612211565b6120c0603282612e1590919063ffffffff16565b8c101580156120e157506120de606482612e1590919063ffffffff16565b8c105b1561211c57605a9250612111612710612103858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b935060789150612210565b612130606482612e1590919063ffffffff16565b8c10158015612151575061214e60c882612e1590919063ffffffff16565b8c105b1561218c57604b9250612181612710612173858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b93506082915061220f565b6121a060c882612e1590919063ffffffff16565b8c106121dc57603292506121d16127106121c3858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350608c915061220e565b606492506122076127106121f9858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b9350600091505b5b5b5b5b5b600115158915151480156122785750612275602d600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b43105b156122ac576101f492506122a961271061229b858d612e1590919063ffffffff16565b612e9b90919063ffffffff16565b93505b60006122c1858c6122df90919063ffffffff16565b90508484848398509850985098505050505050945094509450949050565b600061232183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d89565b905092915050565b61237d600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546006546122df90919063ffffffff16565b6006819055506123d581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612486670de0b6b3a7640000612478600754600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b612e9b90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061251d600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600654611e4990919063ffffffff16565b6006819055505050565b8061253184611ed1565b1015612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006125b46125ab8561259d88611ed1565b611e4990919063ffffffff16565b86866001611f89565b935093505092506125d6846125c888611ed1565b6122df90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126348161262687611ed1565b611e4990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126818583612329565b61268a83612ee5565b43600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b8061274584611ed1565b101561279c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006127b66127ad87611ed1565b87866001611f89565b935093505092506127d8816127ca87611ed1565b611e4990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128368461282888611ed1565b6122df90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128838683612329565b61288c83612ee5565b43600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b8061294784611ed1565b101561299e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b60008060006129b86129af87611ed1565b87866001611f89565b9350935050925060006129e86129df866129d189611ed1565b611e4990919063ffffffff16565b87876000611f89565b5092505050612a08826129fa88611ed1565b611e4990919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6685612a5889611ed1565b6122df90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab38784612329565b612abd8682612329565b612ac684612ee5565b43600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b80612b8284611ed1565b1015612bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061308a6026913960400191505060405180910390fd5b612bf481612be685611ed1565b6122df90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c5281612c4484611ed1565b611e4990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612d4e576000612e0e565b612e0d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dff670de0b6b3a7640000612df1600754600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1590919063ffffffff16565b612e9b90919063ffffffff16565b6122df90919063ffffffff16565b5b9050919050565b600080831415612e285760009050612e95565b6000828402905082848281612e3957fe5b0414612e90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130b06021913960400191505060405180910390fd5b809150505b92915050565b6000612edd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f58565b905092915050565b612efa81600554611e4990919063ffffffff16565b60058190555060006006541115612f5557612f4e612f3d600654612f2f670de0b6b3a764000085612e1590919063ffffffff16565b612e9b90919063ffffffff16565b600754611e4990919063ffffffff16565b6007819055505b50565b60008083118290613004576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612fc9578082015181840152602081019050612fae565b50505050905090810190601f168015612ff65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161301057fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220168b67a2e2d1f53d405623aa096ba78d815c5d18686c1cc8232a61b0974b6c5564736f6c63430006060033
Deployed Bytecode Sourcemap
148:11234:5:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;148:11234:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;8544:107:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8544:107:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1134:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1134:81:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2028:166;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2028:166:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1399:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2200:347;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2200:347:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1312:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2553:215;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2553:215:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8657:193;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8657:193:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8450:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7491:317;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7491:317:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1503:186;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1503:186:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1157:145:3;;;:::i;:::-;;8856:138:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8856:138:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;534:77:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7814:398:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7814:398:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;8352:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1221:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1221:85:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2774:266;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2774:266:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1695:172;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1695:172:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8241:105;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8241:105:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1873:149;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1873:149:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1451:240:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1451:240:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;8544:107:5;8602:4;8625:10;:19;8636:7;8625:19;;;;;;;;;;;;;;;;;;;;;;;;;8618:26;;8544:107;;;:::o;1134:81::-;1171:13;1203:5;1196:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1134:81;:::o;2028:166::-;2111:4;2127:39;2136:12;:10;:12::i;:::-;2150:7;2159:6;2127:8;:39::i;:::-;2183:4;2176:11;;2028:166;;;;:::o;1399:98::-;1452:7;522:19;1471;;1399:98;:::o;2200:347::-;2336:4;2352:36;2362:6;2370:9;2381:6;2352:9;:36::i;:::-;2398:121;2407:6;2415:12;:10;:12::i;:::-;2429:89;2467:6;2429:89;;;;;;;;;;;;;;;;;:11;:19;2441:6;2429:19;;;;;;;;;;;;;;;:33;2449:12;:10;:12::i;:::-;2429:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;2398:8;:121::i;:::-;2536:4;2529:11;;2200:347;;;;;:::o;1312:81::-;1353:5;1377:9;;;;;;;;;;;1370:16;;1312:81;:::o;2553:215::-;2641:4;2657:83;2666:12;:10;:12::i;:::-;2680:7;2689:50;2728:10;2689:11;:25;2701:12;:10;:12::i;:::-;2689:25;;;;;;;;;;;;;;;:34;2715:7;2689:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;2657:8;:83::i;:::-;2757:4;2750:11;;2553:215;;;;:::o;8657:193::-;8719:7;8741:16;8763:55;8773:26;8791:7;8773:17;:26::i;:::-;8801:7;8810:1;8813:4;8763:9;:55::i;:::-;8738:80;;;;;8835:8;8828:15;;;8657:193;;;:::o;8450:88::-;8495:7;8521:10;;8514:17;;8450:88;:::o;7491:317::-;748:12:3;:10;:12::i;:::-;738:22;;:6;;;;;;;;;;;:22;;;730:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7567:10:5::1;:19;7578:7;7567:19;;;;;;;;;;;;;;;;;;;;;;;;;7566:20;7558:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7650:26;7668:7;7650:17;:26::i;:::-;7629:9;:18;7639:7;7629:18;;;;;;;;;;;;;;;:47;;;;7701:34;7718:7;:16;7726:7;7718:16;;;;;;;;;;;;;;;;7701:12;;:16;;:34;;;;:::i;:::-;7686:12;:49;;;;7764:1;7745:7;:16;7753:7;7745:16;;;;;;;;;;;;;;;:20;;;;7797:4;7775:10;:19;7786:7;7775:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7491:317:::0;:::o;1503:186::-;1569:7;1592:10;:19;1603:7;1592:19;;;;;;;;;;;;;;;;;;;;;;;;;1588:50;;;1620:9;:18;1630:7;1620:18;;;;;;;;;;;;;;;;1613:25;;;;1588:50;1656:26;1674:7;1656:17;:26::i;:::-;1649:33;;1503:186;;;;:::o;1157:145:3:-;748:12;:10;:12::i;:::-;738:22;;:6;;;;;;;;;;;:22;;;730:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1263:1:::1;1226:40;;1247:6;::::0;::::1;;;;;;;;;1226:40;;;;;;;;;;;;1293:1;1276:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1157:145::o:0;8856:138:5:-;8929:7;8955:23;:32;8979:7;8955:32;;;;;;;;;;;;;;;;8948:39;;8856:138;;;:::o;534:77:3:-;572:7;598:6;;;;;;;;;;;591:13;;534:77;:::o;7814:398:5:-;748:12:3;:10;:12::i;:::-;738:22;;:6;;;;;;;;;;;:22;;;730:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7892:10:5::1;:19;7903:7;7892:19;;;;;;;;;;;;;;;;;;;;;;;;;7884:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7951:17;7973:81;7983:26;8001:7;7983:17;:26::i;:::-;8011:7;8020:26;8038:7;8020:17;:26::i;:::-;8048:5;7973:9;:81::i;:::-;7947:107;;;;;8085:26;8103:7;8085:17;:26::i;:::-;8064:9;:18;8074:7;8064:18;;;;;;;;;;;;;;;:47;;;;8137:1;8125:9;:13;8121:47;;;8140:28;8149:7;8158:9;8140:8;:28::i;:::-;8121:47;8200:5;8178:10;:19;8189:7;8178:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;807:1:3;7814:398:5::0;:::o;8352:92::-;8399:7;8425:12;;8418:19;;8352:92;:::o;1221:85::-;1260:13;1292:7;1285:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1221:85;:::o;2774:266::-;2867:4;2883:129;2892:12;:10;:12::i;:::-;2906:7;2915:96;2954:15;2915:96;;;;;;;;;;;;;;;;;:11;:25;2927:12;:10;:12::i;:::-;2915:25;;;;;;;;;;;;;;;:34;2941:7;2915:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;2883:8;:129::i;:::-;3029:4;3022:11;;2774:266;;;;:::o;1695:172::-;1781:4;1797:42;1807:12;:10;:12::i;:::-;1821:9;1832:6;1797:9;:42::i;:::-;1856:4;1849:11;;1695:172;;;;:::o;8241:105::-;8297:7;8323;:16;8331:7;8323:16;;;;;;;;;;;;;;;;8316:23;;8241:105;;;:::o;1873:149::-;1962:7;1988:11;:18;2000:5;1988:18;;;;;;;;;;;;;;;:27;2007:7;1988:27;;;;;;;;;;;;;;;;1981:34;;1873:149;;;;:::o;1451:240:3:-;748:12;:10;:12::i;:::-;738:22;;:6;;;;;;;;;;;:22;;;730:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1559:1:::1;1539:22;;:8;:22;;;;1531:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:8;1619:38;;1640:6;::::0;::::1;;;;;;;;;1619:38;;;;;;;;;;;;1676:8;1667:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1451:240:::0;:::o;557:104:1:-;610:15;644:10;637:17;;557:104;:::o;3046:370:5:-;3194:1;3177:19;;:5;:19;;;;3169:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3274:1;3255:21;;:7;:21;;;;3247:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3356:6;3326:11;:18;3338:5;3326:18;;;;;;;;;;;;;;;:27;3345:7;3326:27;;;;;;;;;;;;;;;:36;;;;3393:7;3377:32;;3386:5;3377:32;;;3402:6;3377:32;;;;;;;;;;;;;;;;;;3046:370;;;:::o;3422:925::-;3566:1;3548:20;;:6;:20;;;;3540:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3649:1;3628:23;;:9;:23;;;;3620:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:10;:18;3717:6;3706:18;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;3729:10;:21;3740:9;3729:21;;;;;;;;;;;;;;;;;;;;;;;;;3728:22;3706:44;3702:639;;;3766:54;3794:6;3802:9;3813:6;3766:27;:54::i;:::-;3702:639;;;3850:10;:18;3861:6;3850:18;;;;;;;;;;;;;;;;;;;;;;;;;3849:19;:44;;;;;3872:10;:21;3883:9;3872:21;;;;;;;;;;;;;;;;;;;;;;;;;3849:44;3845:496;;;3909:54;3937:6;3945:9;3956:6;3909:27;:54::i;:::-;3845:496;;;3993:10;:18;4004:6;3993:18;;;;;;;;;;;;;;;;;;;;;;;;;3992:19;:45;;;;;4016:10;:21;4027:9;4016:21;;;;;;;;;;;;;;;;;;;;;;;;;4015:22;3992:45;3988:353;;;4053:50;4077:6;4085:9;4096:6;4053:23;:50::i;:::-;3988:353;;;4132:10;:18;4143:6;4132:18;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;4154:10;:21;4165:9;4154:21;;;;;;;;;;;;;;;;;;;;;;;;;4132:43;4128:213;;;4191:58;4223:6;4231:9;4242:6;4191:31;:58::i;:::-;4128:213;;;4280:50;4304:6;4312:9;4323:6;4280:23;:50::i;:::-;4128:213;3988:353;3845:496;3702:639;3422:925;;;:::o;1713:187:4:-;1799:7;1831:1;1826;:6;;1834:12;1818:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1818:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1857:9;1873:1;1869;:5;1857:17;;1892:1;1885:8;;;1713:187;;;;;:::o;841:176::-;899:7;918:9;934:1;930;:5;918:17;;958:1;953;:6;;945:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:1;1002:8;;;841:176;;;;:::o;11169:211:5:-;11235:7;11294:1;11261:30;11283:7;11261:21;:30::i;:::-;:34;:112;;11355:9;:18;11365:7;11355:18;;;;;;;;;;;;;;;;11261:112;;;11298:54;11333:9;:18;11343:7;11333:18;;;;;;;;;;;;;;;;11298:30;11320:7;11298:21;:30::i;:::-;:34;;:54;;;;:::i;:::-;11261:112;11254:119;;11169:211;;;:::o;9024:1946::-;9205:7;9226;9247;9268;9300:12;9322:16;9348:17;9376:22;9401:12;9376:37;;9438:14;9428:7;:24;9424:1235;;;9479:3;9468:14;;9503:31;9528:5;9503:20;9514:8;9503:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;9496:38;;9560:2;9548:14;;9424:1235;;;9594:14;9583:7;:25;;:61;;;;;9622:22;9641:2;9622:14;:18;;:22;;;;:::i;:::-;9612:7;:32;9583:61;9579:1080;;;9671:3;9660:14;;9695:31;9720:5;9695:20;9706:8;9695:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;9688:38;;9752:3;9740:15;;9579:1080;;;9787:22;9806:2;9787:14;:18;;:22;;;;:::i;:::-;9776:7;:33;;:69;;;;;9823:22;9842:2;9823:14;:18;;:22;;;;:::i;:::-;9813:7;:32;9776:69;9772:887;;;9872:3;9861:14;;9896:31;9921:5;9896:20;9907:8;9896:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;9889:38;;9953:3;9941:15;;9772:887;;;9988:22;10007:2;9988:14;:18;;:22;;;;:::i;:::-;9977:7;:33;;:70;;;;;10024:23;10043:3;10024:14;:18;;:23;;;;:::i;:::-;10014:7;:33;9977:70;9973:686;;;10074:2;10063:13;;10097:31;10122:5;10097:20;10108:8;10097:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;10090:38;;10154:3;10142:15;;9973:686;;;10189:23;10208:3;10189:14;:18;;:23;;;;:::i;:::-;10178:7;:34;;:71;;;;;10226:23;10245:3;10226:14;:18;;:23;;;;:::i;:::-;10216:7;:33;10178:71;10174:485;;;10276:2;10265:13;;10299:31;10324:5;10299:20;10310:8;10299:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;10292:38;;10356:3;10344:15;;10174:485;;;10391:23;10410:3;10391:14;:18;;:23;;;;:::i;:::-;10380:7;:34;10376:283;;10441:2;10430:13;;10464:31;10489:5;10464:20;10475:8;10464:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;10457:38;;10521:3;10509:15;;10376:283;;;10566:3;10555:14;;10590:31;10615:5;10590:20;10601:8;10590:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;10583:38;;10647:1;10635:13;;10376:283;10174:485;9973:686;9772:887;9579:1080;9424:1235;10685:4;10673:16;;:8;:16;;;:88;;;;;10708:53;590:2;10708:23;:32;10732:7;10708:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;10693:12;:68;10673:88;10669:185;;;10788:3;10777:14;;10812:31;10837:5;10812:20;10823:8;10812:6;:10;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;10805:38;;10669:185;10863:21;10887:16;10898:4;10887:6;:10;;:16;;;;:::i;:::-;10863:40;;10922:4;10928:8;10938:9;10949:13;10914:49;;;;;;;;;;;;;9024:1946;;;;;;;;;:::o;1288:134:4:-;1346:7;1372:43;1376:1;1379;1372:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1365:50;;1288:134;;;;:::o;6991:305:5:-;7074:34;7091:7;:16;7099:7;7091:16;;;;;;;;;;;;;;;;7074:12;;:16;;:34;;;;:::i;:::-;7059:12;:49;;;;7137:29;7160:5;7137:9;:18;7147:7;7137:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;7118:7;:16;7126:7;7118:16;;;;;;;;;;;;;;;:48;;;;7193:37;7225:4;7193:27;7214:5;;7193:7;:16;7201:7;7193:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;7176:5;:14;7182:7;7176:14;;;;;;;;;;;;;;;:54;;;;7255:34;7272:7;:16;7280:7;7272:16;;;;;;;;;;;;;;;;7255:12;;:16;;:34;;;;:::i;:::-;7240:12;:49;;;;6991:305;;:::o;4369:668::-;4541:6;4510:27;4528:8;4510:17;:27::i;:::-;:37;;4502:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4602:12;4617:17;4636:21;4661:66;4671:35;4699:6;4671:23;4689:4;4671:17;:23::i;:::-;:27;;:35;;;;:::i;:::-;4708:4;4714:6;4722:4;4661:9;:66::i;:::-;4601:126;;;;;;;4760:39;4792:6;4760:27;4778:8;4760:17;:27::i;:::-;:31;;:39;;;;:::i;:::-;4738:9;:19;4748:8;4738:19;;;;;;;;;;;;;;;:61;;;;4827:42;4855:13;4827:23;4845:4;4827:17;:23::i;:::-;:27;;:42;;;;:::i;:::-;4809:9;:15;4819:4;4809:15;;;;;;;;;;;;;;;:60;;;;4880:25;4889:4;4895:9;4880:8;:25::i;:::-;4915:13;4923:4;4915:7;:13::i;:::-;4970:12;4938:23;:29;4962:4;4938:29;;;;;;;;;;;;;;;:44;;;;5017:4;4998:32;;5007:8;4998:32;;;5023:6;4998:32;;;;;;;;;;;;;;;;;;4369:668;;;;;;:::o;5043:652::-;5211:6;5184:23;5202:4;5184:17;:23::i;:::-;:33;;5176:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5272:12;5287:17;5306:21;5331:54;5341:23;5359:4;5341:17;:23::i;:::-;5366:4;5372:6;5380:4;5331:9;:54::i;:::-;5271:114;;;;;;;5418:46;5450:13;5418:27;5436:8;5418:17;:27::i;:::-;:31;;:46;;;;:::i;:::-;5396:9;:19;5406:8;5396:19;;;;;;;;;;;;;;;:68;;;;5492:35;5520:6;5492:23;5510:4;5492:17;:23::i;:::-;:27;;:35;;;;:::i;:::-;5474:9;:15;5484:4;5474:15;;;;;;;;;;;;;;;:53;;;;5538:25;5547:4;5553:9;5538:8;:25::i;:::-;5573:13;5581:4;5573:7;:13::i;:::-;5628:12;5596:23;:29;5620:4;5596:29;;;;;;;;;;;;;;;:44;;;;5671:8;5656:32;;5665:4;5656:32;;;5681:6;5656:32;;;;;;;;;;;;;;;;;;5043:652;;;;;;:::o;5701:853::-;5870:6;5841:25;5859:6;5841:17;:25::i;:::-;:35;;5833:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5931:12;5946:23;5971:21;5996:58;6006:25;6024:6;6006:17;:25::i;:::-;6033:6;6041;6049:4;5996:9;:58::i;:::-;5930:124;;;;;;;6068:26;6099:77;6109:40;6142:6;6109:28;6127:9;6109:17;:28::i;:::-;:32;;:40;;;;:::i;:::-;6151:9;6162:6;6170:5;6099:9;:77::i;:::-;6064:112;;;;;6210:47;6243:13;6210:28;6228:9;6210:17;:28::i;:::-;:32;;:47;;;;:::i;:::-;6187:9;:20;6197:9;6187:20;;;;;;;;;;;;;;;:70;;;;6287:37;6317:6;6287:25;6305:6;6287:17;:25::i;:::-;:29;;:37;;;;:::i;:::-;6267:9;:17;6277:6;6267:17;;;;;;;;;;;;;;;:57;;;;6335:33;6344:6;6352:15;6335:8;:33::i;:::-;6378:39;6387:9;6398:18;6378:8;:39::i;:::-;6427:13;6435:4;6427:7;:13::i;:::-;6484:12;6450:23;:31;6474:6;6450:31;;;;;;;;;;;;;;;:46;;;;6529:9;6512:35;;6521:6;6512:35;;;6540:6;6512:35;;;;;;;;;;;;;;;;;;5701:853;;;;;;;:::o;6560:425::-;6737:6;6708:25;6726:6;6708:17;:25::i;:::-;:35;;6700:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6817:37;6847:6;6817:25;6835:6;6817:17;:25::i;:::-;:29;;:37;;;;:::i;:::-;6797:9;:17;6807:6;6797:17;;;;;;;;;;;;;;;:57;;;;6887:40;6920:6;6887:28;6905:9;6887:17;:28::i;:::-;:32;;:40;;;;:::i;:::-;6864:9;:20;6874:9;6864:20;;;;;;;;;;;;;;;:63;;;;6960:9;6943:35;;6952:6;6943:35;;;6971:6;6943:35;;;;;;;;;;;;;;;;;;6560:425;;;:::o;10976:187::-;11046:7;11091:1;11072:7;:16;11080:7;11072:16;;;;;;;;;;;;;;;;:20;:84;;11155:1;11072:84;;;11095:57;11137:5;:14;11143:7;11137:14;;;;;;;;;;;;;;;;11095:37;11127:4;11095:27;11116:5;;11095:7;:16;11103:7;11095:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;11072:84;11065:91;;10976:187;;;:::o;2147:459:4:-;2205:7;2451:1;2446;:6;2442:45;;;2475:1;2468:8;;;;2442:45;2497:9;2513:1;2509;:5;2497:17;;2541:1;2536;2532;:5;;;;;;:10;2524:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:1;2591:8;;;2147:459;;;;;:::o;3068:130::-;3126:7;3152:39;3156:1;3159;3152:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3145:46;;3068:130;;;;:::o;7302:183:5:-;7364:20;7379:4;7364:10;;:14;;:20;;;;:::i;:::-;7351:10;:33;;;;7412:1;7397:12;;:16;7394:84;;;7435:43;7445:32;7464:12;;7445:14;7454:4;7445;:8;;:14;;;;:::i;:::-;:18;;:32;;;;:::i;:::-;7435:5;;:9;;:43;;;;:::i;:::-;7427:5;:51;;;;7394:84;7302:183;:::o;3680:272:4:-;3766:7;3797:1;3793;:5;3800:12;3785:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3785:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:9;3839:1;3835;:5;;;;;;3823:17;;3944:1;3937:8;;;3680:272;;;;;:::o
Swarm Source
ipfs://168b67a2e2d1f53d405623aa096ba78d815c5d18686c1cc8232a61b0974b6c55
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.