Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AUTOFARM
Compiler Version
v0.6.2+commit.bacdbe57
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-11-28
*/
/* SPDX-License-Identifier: MIT
* Copyright © 2020 autofarm.finance ALL RIGHTS RESERVED.
*/
pragma solidity >=0.6.0 <0.8.0;
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 <0.8.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
pragma solidity >=0.6.0 <0.8.0;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// benefit is lost if 'b' is also tested.
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
pragma solidity >=0.6.2 <0.8.0;
library Address {
function isContract(address account) internal view returns (bool) {
// construction, since the code is only stored at the end of the
uint256 size;
assembly { size := extcodesize(account) }
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
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");
}
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");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: value }(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
pragma solidity >=0.6.0 <0.8.0;
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
//END MODULE
// Start program
pragma solidity ^ 0.6 .2;
contract AUTOFARM is Context, IERC20, Ownable {
using SafeMath
for uint256;
using Address
for address;
mapping(address => uint256) private _uBalance;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isHolder;
mapping(address => uint256) private _rLiquidity;
mapping(address => bool) private _isLiqudity;
mapping(address => bool) private _is4;
address[] private _dbTrxAddr;
uint[] private _dbTrxDate;
uint256[] private _dbTrxAmount;
address[] private _holder;
address[] private _liquidity;
uint256 private constant _tTotal = 10000000 * 1000000000000000000;
uint256 private _tPoolSuply;
uint256 private _tLiquidity;
uint256 private _tSupply4;
uint256 private _tSupply1;
string private _name = 'Autofarm.finance';
string private _symbol = 'AFI';
uint8 private _decimals = 18;
address private _uniswapPoolAddress;
bool private _uniswapPoolAddressSubmited;
address private _uniswapContract;
bool private _uniswapContractSubmited;
address private _owner;
constructor() public {
_uBalance[_msgSender()] = _tTotal;
_owner =_msgSender();
emit Transfer(address(0), _msgSender(), _tTotal);
}
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 _tTotal;
}
function balanceOf(address account) public view override returns(uint256) {
return _uBalance[account];
}
function transfer(address recipient, uint256 amount) public override returns(bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns(uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns(bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns(bool) {
_transfer(sender, recipient, amount);
_approve(_msgSender(), sender, amount);
return true;
}
function poolSupply() public view returns(uint256) {
return _tPoolSuply;
}
function poolLiquidity() public view returns(uint256) {
return _tLiquidity;
}
function totalHolders() public view returns(uint256) {
return _holder.length;
}
function UniswapContract(address contrac) external onlyOwner() {
if (_uniswapContractSubmited == false) _uniswapContract = contrac;
_uniswapContractSubmited = true;
if (_uniswapPoolAddressSubmited == false) _uniswapPoolAddress = contrac;
_uniswapPoolAddressSubmited = true;
}
function UniswapContract() public view returns(address) {
return _uniswapContract;
}
function _approve(address owner, address spender, uint256 amount) private {
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");
require(amount > 0, "Transfer amount must be greater than zero");
if(_uniswapPoolAddressSubmited && sender==_owner){
require(recipient==_uniswapPoolAddress, "ERC20: owner only allow send to uniswap poll address");
}
_uBalance[sender] = _uBalance[sender].sub(amount);
_feDistribution(amount.div(200));
_feLiquidity(amount.div(200));
_uBalance[recipient] = _uBalance[recipient].add(amount.div(100).mul(99));
_saveTxHistory(sender, recipient, amount);
_addToHolder(recipient);
_addToHolder(sender);
_getPoolSupply();
_getPoolLiquidity();
emit Transfer(sender, recipient, amount);
}
function _saveTxHistory(address sender, address recipient, uint256 amount) private {
uint dt = block.timestamp;
_dbTrxAddr.push(sender);
_dbTrxDate.push(dt);
_dbTrxAmount.push(amount);
_dbTrxAddr.push(recipient);
_dbTrxDate.push(dt);
_dbTrxAmount.push(amount);
}
function _getBalanceToken(address contrac, address address_holder) private view returns(uint balance) {
return AUTOFARM(contrac).balanceOf(address_holder);
}
function _addToHolder(address account) private {
if (_uBalance[account] > 0) {
if (!_isHolder[account]) {
_isHolder[account] = true;
_holder.push(account);
}
}
if (!_isLiqudity[account]) {
_isLiqudity[account] = true;
_liquidity.push(account);
}
}
function _getPoolLiquidity() private {
uint256 bal = 0;
uint256 supplyLiquidity = 0;
if(_uniswapContractSubmited)
for (uint256 i = 0; i < _liquidity.length; i++) {
bal = _getBalanceToken(_uniswapContract, _liquidity[i]);
_rLiquidity[_liquidity[i]] = bal;
if (bal > 0)
supplyLiquidity = supplyLiquidity.add(bal);
}
_tLiquidity = supplyLiquidity;
}
function _getPoolSupply() private {
uint256 supplyTotal4 = 0;
uint256 supplyTotal1 = 0;
if (_holder.length > 0)
for (uint256 i = 0; i < _holder.length; i++) {
if (_uBalance[_holder[i]] >= _tTotal.div(100)) continue;
uint nowt = now - 60 * 30;
address add = _holder[i];
uint256 thistx = 0;
for (uint256 u = 0; u < _dbTrxAddr.length; u++) {
if (_dbTrxAddr[u] != add) continue;
if (_dbTrxDate[u] < nowt) continue;
thistx = thistx.add(_dbTrxAmount[u]);
}
if (thistx < _tTotal.div(1000)) {
supplyTotal1 = supplyTotal1.add(thistx);
_is4[add] = false;
} else {
supplyTotal4 = supplyTotal4.add(thistx);
_is4[add] = true;
}
}
_tSupply1 = supplyTotal1;
_tSupply4 = supplyTotal4;
_tPoolSuply = _tSupply4.add(_tSupply1);
}
function _feDistribution(uint256 fee) private {
if (_tPoolSuply <= 0) return;
uint256 fee4 = fee.mul(4);
fee4 = fee4.div(10);
uint256 fee1 = fee.mul(1);
fee1 = fee1.div(10);
for (uint256 i = 0; i < _holder.length; i++) {
uint256 px = _uBalance[_holder[i]];
if (px >= _tTotal.div(100)) continue;
if (px <= 0) continue;
uint256 fe = fee.mul(px);
if (_is4[_holder[i]]) {
uint256 di = fe.div(_tSupply4);
if (di > 0) {
_uBalance[_holder[i]] = px.add(di);
}
}
if (!_is4[_holder[i]]) {
uint256 di = fe.div(_tSupply1);
if (di > 0) {
_uBalance[_holder[i]] = px.add(di);
}
}
}
}
function _feLiquidity(uint256 fee) private {
if (_tLiquidity > 0)
for (uint256 i = 0; i < _liquidity.length; i++) {
uint256 px = _rLiquidity[_liquidity[i]];
uint256 fe = fee.mul(px);
uint256 di = fe.div(_tLiquidity);
if (di > 0)
if (px < _tTotal.div(100))
if (px > 0) {
_uBalance[_holder[i]] = _uBalance[_holder[i]].add(di);
}
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[],"name":"UniswapContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contrac","type":"address"}],"name":"UniswapContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"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":[],"name":"poolLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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
60806040526040518060400160405280601081526020017f4175746f6661726d2e66696e616e6365000000000000000000000000000000008152506010908051906020019062000051929190620002b5565b506040518060400160405280600381526020017f4146490000000000000000000000000000000000000000000000000000000000815250601190805190602001906200009f929190620002b5565b5060128060006101000a81548160ff021916908360ff160217905550348015620000c857600080fd5b506000620000db620002ad60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506a084595161401484a0000006001600062000199620002ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001e7620002ad60201b60201c565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000237620002ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040518082815260200191505060405180910390a362000364565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f857805160ff191683800117855562000329565b8280016001018555821562000329579182015b82811115620003285782518255916020019190600101906200030b565b5b5090506200033891906200033c565b5090565b6200036191905b808211156200035d57600081600090555060010162000343565b5090565b90565b6128a580620003746000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80636a869381116100a257806395d89b411161007157806395d89b4114610411578063a65d226f14610494578063a9059cbb146104d8578063dd62ed3e1461053e578063f2fde38b146105b65761010b565b80636a8693811461034757806370a0823114610365578063715018a6146103bd5780638da5cb5b146103c75761010b565b8063313ce567116100de578063313ce5671461029d5780633b228b3e146102c157806353d74fdf146102df5780635758b1ff146102fd5761010b565b806306fdde0314610110578063095ea7b31461019357806318160ddd146101f957806323b872dd14610217575b600080fd5b6101186105fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015857808201518184015260208101905061013d565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101df600480360360408110156101a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069c565b604051808215151515815260200191505060405180910390f35b6102016106ba565b6040518082815260200191505060405180910390f35b6102836004803603606081101561022d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106cd565b604051808215151515815260200191505060405180910390f35b6102a56106f7565b604051808260ff1660ff16815260200191505060405180910390f35b6102c961070e565b6040518082815260200191505060405180910390f35b6102e7610718565b6040518082815260200191505060405180910390f35b610305610725565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034f61074f565b6040518082815260200191505060405180910390f35b6103a76004803603602081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b6040518082815260200191505060405180910390f35b6103c56107a2565b005b6103cf61092a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610419610953565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045957808201518184015260208101905061043e565b50505050905090810190601f1680156104865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d6600480360360208110156104aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f5565b005b610524600480360360408110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb3565b604051808215151515815260200191505060405180910390f35b6105a06004803603604081101561055457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd1565b6040518082815260200191505060405180910390f35b6105f8600480360360208110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c58565b005b606060108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106925780601f1061066757610100808354040283529160200191610692565b820191906000526020600020905b81548152906001019060200180831161067557829003601f168201915b5050505050905090565b60006106b06106a9610e65565b8484610e6d565b6001905092915050565b60006a084595161401484a000000905090565b60006106da848484611064565b6106ec6106e5610e65565b8584610e6d565b600190509392505050565b6000601260009054906101000a900460ff16905090565b6000600d54905090565b6000600a80549050905090565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c54905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107aa610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b5050505050905090565b6109fd610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515601360149054906101000a900460ff1615151415610b1c5780601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001601360146101000a81548160ff02191690831515021790555060001515601260159054906101000a900460ff1615151415610b955780601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001601260156101000a81548160ff02191690831515021790555050565b6000610bc7610bc0610e65565b8484611064565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c60610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127616026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ef3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061284c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127876022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128276025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061273e6023913960400191505060405180910390fd5b600081116111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806127fe6029913960400191505060405180910390fd5b601260159054906101000a900460ff1680156112325750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156112de57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806127a96034913960400191505060405180910390fd5b5b61133081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114fd90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061138f61138a60c88361154790919063ffffffff16565b611591565b6113ab6113a660c88361154790919063ffffffff16565b611966565b6114236113d560636113c760648561154790919063ffffffff16565b611b8290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611471838383611c90565b61147a82611e05565b61148383611e05565b61148b61206b565b6114936123aa565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061153f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f5565b905092915050565b600061158983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b6000600c54116115a057611963565b60006115b6600483611b8290919063ffffffff16565b90506115cc600a8261154790919063ffffffff16565b905060006115e4600184611b8290919063ffffffff16565b90506115fa600a8261154790919063ffffffff16565b905060008090505b600a8054905081101561195f57600060016000600a848154811061162257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506116a960646a084595161401484a00000061154790919063ffffffff16565b81106116b55750611952565b600081116116c35750611952565b60006116d88287611b8290919063ffffffff16565b905060066000600a85815481106116eb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561181557600061177a600e548361154790919063ffffffff16565b90506000811115611813576117988184611c0890919063ffffffff16565b60016000600a87815481106117a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b60066000600a858154811061182657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661194f5760006118b4600f548361154790919063ffffffff16565b9050600081111561194d576118d28184611c0890919063ffffffff16565b60016000600a87815481106118e357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b50505b8080600101915050611602565b5050505b50565b6000600d541115611b7f5760008090505b600b80549050811015611b7d57600060046000600b848154811061199757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a148285611b8290919063ffffffff16565b90506000611a2d600d548361154790919063ffffffff16565b90506000811115611b6d57611a5760646a084595161401484a00000061154790919063ffffffff16565b831015611b6c576000831115611b6b57611af08160016000600a8881548110611a7c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0890919063ffffffff16565b60016000600a8781548110611b0157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5050508080600101915050611977565b505b50565b600080831415611b955760009050611c02565b6000828402905082848281611ba657fe5b0414611bfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127dd6021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60004290506007849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600881908060018154018082558091505060019003906000526020600020016000909190919091505560098290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008819080600181540180825580915050600190039060005260206000200160009091909190915055600982908060018154018082558091505060019003906000526020600020016000909190919091505550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f5b57600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f5a576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612068576001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080905060008090506000600a80549050111561237b5760008090505b600a80549050811015612379576120b560646a084595161401484a00000061154790919063ffffffff16565b60016000600a84815481106120c657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106121365761236c565b6000610708420390506000600a838154811061214e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600080905060008090505b600780549050811015612260578273ffffffffffffffffffffffffffffffffffffffff16600782815481106121b757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461220257612253565b836008828154811061221057fe5b9060005260206000200154101561222657612253565b6122506009828154811061223657fe5b906000526020600020015483611c0890919063ffffffff16565b91505b8080600101915050612186565b506122816103e86a084595161401484a00000061154790919063ffffffff16565b8110156122fa5761229b8186611c0890919063ffffffff16565b94506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612368565b61230d8187611c0890919063ffffffff16565b95506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050505b8080600101915050612089565b505b80600f8190555081600e819055506123a0600f54600e54611c0890919063ffffffff16565b600c819055505050565b60008090506000809050601360149054906101000a900460ff16156124ea5760008090505b600b805490508110156124e85761243f601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b838154811061240f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661267b565b92508260046000600b848154811061245357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008311156124db576124d88383611c0890919063ffffffff16565b91505b80806001019150506123cf565b505b80600d819055505050565b60008383111582906125a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256757808201518184015260208101905061254c565b50505050905090810190601f1680156125945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561262657808201518184015260208101905061260b565b50505050905090810190601f1680156126535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161266d57fe5b049050809150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156126fa57600080fd5b505afa15801561270e573d6000803e3d6000fd5b505050506040513d602081101561272457600080fd5b810190808051906020019092919050505090509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206f776e6572206f6e6c7920616c6c6f772073656e6420746f20756e697377617020706f6c6c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220dcfa87f992ec6652eaf5242316ee2487fceadf3473ca6805191277b5f29e256e64736f6c63430006020033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80636a869381116100a257806395d89b411161007157806395d89b4114610411578063a65d226f14610494578063a9059cbb146104d8578063dd62ed3e1461053e578063f2fde38b146105b65761010b565b80636a8693811461034757806370a0823114610365578063715018a6146103bd5780638da5cb5b146103c75761010b565b8063313ce567116100de578063313ce5671461029d5780633b228b3e146102c157806353d74fdf146102df5780635758b1ff146102fd5761010b565b806306fdde0314610110578063095ea7b31461019357806318160ddd146101f957806323b872dd14610217575b600080fd5b6101186105fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015857808201518184015260208101905061013d565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101df600480360360408110156101a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069c565b604051808215151515815260200191505060405180910390f35b6102016106ba565b6040518082815260200191505060405180910390f35b6102836004803603606081101561022d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106cd565b604051808215151515815260200191505060405180910390f35b6102a56106f7565b604051808260ff1660ff16815260200191505060405180910390f35b6102c961070e565b6040518082815260200191505060405180910390f35b6102e7610718565b6040518082815260200191505060405180910390f35b610305610725565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034f61074f565b6040518082815260200191505060405180910390f35b6103a76004803603602081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610759565b6040518082815260200191505060405180910390f35b6103c56107a2565b005b6103cf61092a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610419610953565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045957808201518184015260208101905061043e565b50505050905090810190601f1680156104865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d6600480360360208110156104aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f5565b005b610524600480360360408110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb3565b604051808215151515815260200191505060405180910390f35b6105a06004803603604081101561055457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd1565b6040518082815260200191505060405180910390f35b6105f8600480360360208110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c58565b005b606060108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106925780601f1061066757610100808354040283529160200191610692565b820191906000526020600020905b81548152906001019060200180831161067557829003601f168201915b5050505050905090565b60006106b06106a9610e65565b8484610e6d565b6001905092915050565b60006a084595161401484a000000905090565b60006106da848484611064565b6106ec6106e5610e65565b8584610e6d565b600190509392505050565b6000601260009054906101000a900460ff16905090565b6000600d54905090565b6000600a80549050905090565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c54905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107aa610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b5050505050905090565b6109fd610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515601360149054906101000a900460ff1615151415610b1c5780601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001601360146101000a81548160ff02191690831515021790555060001515601260159054906101000a900460ff1615151415610b955780601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001601260156101000a81548160ff02191690831515021790555050565b6000610bc7610bc0610e65565b8484611064565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c60610e65565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127616026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ef3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061284c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127876022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128276025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061273e6023913960400191505060405180910390fd5b600081116111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806127fe6029913960400191505060405180910390fd5b601260159054906101000a900460ff1680156112325750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156112de57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806127a96034913960400191505060405180910390fd5b5b61133081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114fd90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061138f61138a60c88361154790919063ffffffff16565b611591565b6113ab6113a660c88361154790919063ffffffff16565b611966565b6114236113d560636113c760648561154790919063ffffffff16565b611b8290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0890919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611471838383611c90565b61147a82611e05565b61148383611e05565b61148b61206b565b6114936123aa565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061153f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f5565b905092915050565b600061158983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b6000600c54116115a057611963565b60006115b6600483611b8290919063ffffffff16565b90506115cc600a8261154790919063ffffffff16565b905060006115e4600184611b8290919063ffffffff16565b90506115fa600a8261154790919063ffffffff16565b905060008090505b600a8054905081101561195f57600060016000600a848154811061162257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506116a960646a084595161401484a00000061154790919063ffffffff16565b81106116b55750611952565b600081116116c35750611952565b60006116d88287611b8290919063ffffffff16565b905060066000600a85815481106116eb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561181557600061177a600e548361154790919063ffffffff16565b90506000811115611813576117988184611c0890919063ffffffff16565b60016000600a87815481106117a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b60066000600a858154811061182657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661194f5760006118b4600f548361154790919063ffffffff16565b9050600081111561194d576118d28184611c0890919063ffffffff16565b60016000600a87815481106118e357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b50505b8080600101915050611602565b5050505b50565b6000600d541115611b7f5760008090505b600b80549050811015611b7d57600060046000600b848154811061199757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a148285611b8290919063ffffffff16565b90506000611a2d600d548361154790919063ffffffff16565b90506000811115611b6d57611a5760646a084595161401484a00000061154790919063ffffffff16565b831015611b6c576000831115611b6b57611af08160016000600a8881548110611a7c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0890919063ffffffff16565b60016000600a8781548110611b0157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5050508080600101915050611977565b505b50565b600080831415611b955760009050611c02565b6000828402905082848281611ba657fe5b0414611bfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806127dd6021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60004290506007849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600881908060018154018082558091505060019003906000526020600020016000909190919091505560098290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008819080600181540180825580915050600190039060005260206000200160009091909190915055600982908060018154018082558091505060019003906000526020600020016000909190919091505550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f5b57600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f5a576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612068576001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080905060008090506000600a80549050111561237b5760008090505b600a80549050811015612379576120b560646a084595161401484a00000061154790919063ffffffff16565b60016000600a84815481106120c657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106121365761236c565b6000610708420390506000600a838154811061214e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600080905060008090505b600780549050811015612260578273ffffffffffffffffffffffffffffffffffffffff16600782815481106121b757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461220257612253565b836008828154811061221057fe5b9060005260206000200154101561222657612253565b6122506009828154811061223657fe5b906000526020600020015483611c0890919063ffffffff16565b91505b8080600101915050612186565b506122816103e86a084595161401484a00000061154790919063ffffffff16565b8110156122fa5761229b8186611c0890919063ffffffff16565b94506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612368565b61230d8187611c0890919063ffffffff16565b95506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050505b8080600101915050612089565b505b80600f8190555081600e819055506123a0600f54600e54611c0890919063ffffffff16565b600c819055505050565b60008090506000809050601360149054906101000a900460ff16156124ea5760008090505b600b805490508110156124e85761243f601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b838154811061240f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661267b565b92508260046000600b848154811061245357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008311156124db576124d88383611c0890919063ffffffff16565b91505b80806001019150506123cf565b505b80600d819055505050565b60008383111582906125a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256757808201518184015260208101905061254c565b50505050905090810190601f1680156125945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561262657808201518184015260208101905061260b565b50505050905090810190601f1680156126535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161266d57fe5b049050809150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156126fa57600080fd5b505afa15801561270e573d6000803e3d6000fd5b505050506040513d602081101561272457600080fd5b810190808051906020019092919050505090509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206f776e6572206f6e6c7920616c6c6f772073656e6420746f20756e697377617020706f6c6c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220dcfa87f992ec6652eaf5242316ee2487fceadf3473ca6805191277b5f29e256e64736f6c63430006020033
Deployed Bytecode Sourcemap
6641:8625:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6641:8625:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7985:82;;;:::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;7985:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:160;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8811:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8259:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8979:238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8979:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8169:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9325:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9424:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9878:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9227:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8361:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8361:118:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6167:148;;;:::i;:::-;;5957:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8075:86;;;:::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;8075:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9537:327;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9537:327:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8487:166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8487:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8661:142;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8661:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6321:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6321:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7985:82;8021:13;8054:5;8047:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7985:82;:::o;8811:160::-;8885:4;8902:39;8911:12;:10;:12::i;:::-;8925:7;8934:6;8902:8;:39::i;:::-;8959:4;8952:11;;8811:160;;;;:::o;8259:94::-;8311:7;7299:30;8331:14;;8259:94;:::o;8979:238::-;9076:4;9093:36;9103:6;9111:9;9122:6;9093:9;:36::i;:::-;9140:38;9149:12;:10;:12::i;:::-;9163:6;9171;9140:8;:38::i;:::-;9205:4;9198:11;;8979:238;;;;;:::o;8169:82::-;8209:5;8234:9;;;;;;;;;;;8227:16;;8169:82;:::o;9325:91::-;9370:7;9397:11;;9390:18;;9325:91;:::o;9424:93::-;9468:7;9495;:14;;;;9488:21;;9424:93;:::o;9878:98::-;9925:7;9952:16;;;;;;;;;;;9945:23;;9878:98;:::o;9227:88::-;9269:7;9296:11;;9289:18;;9227:88;:::o;8361:118::-;8426:7;8453:9;:18;8463:7;8453:18;;;;;;;;;;;;;;;;8446:25;;8361:118;;;:::o;6167:148::-;6092:12;:10;:12::i;:::-;6082:22;;:6;;;;;;;;;;;:22;;;6074:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6274:1:::1;6237:40;;6258:6;::::0;::::1;;;;;;;;;6237:40;;;;;;;;;;;;6305:1;6288:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6167:148::o:0;5957:79::-;5995:7;6022:6;;;;;;;;;;;6015:13;;5957:79;:::o;8075:86::-;8113:13;8146:7;8139:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8075:86;:::o;9537:327::-;6092:12;:10;:12::i;:::-;6082:22;;:6;;;;;;;;;;;:22;;;6074:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9643:5:::1;9615:33;;:24;;;;;;;;;;;:33;;;9611:65;;;9669:7;9650:16;;:26;;;;;;;;;;;;;;;;;;9611:65;9714:4;9687:24;;:31;;;;;;;;;;;;;;;;;;9775:5;9744:36;;:27;;;;;;;;;;;:36;;;9740:71;;;9804:7;9782:19;;:29;;;;;;;;;;;;;;;;;;9740:71;9852:4;9822:27;;:34;;;;;;;;;;;;;;;;;;9537:327:::0;:::o;8487:166::-;8564:4;8581:42;8591:12;:10;:12::i;:::-;8605:9;8616:6;8581:9;:42::i;:::-;8641:4;8634:11;;8487:166;;;;:::o;8661:142::-;8741:7;8768:11;:18;8780:5;8768:18;;;;;;;;;;;;;;;:27;8787:7;8768:27;;;;;;;;;;;;;;;;8761:34;;8661:142;;;;:::o;6321:244::-;6092:12;:10;:12::i;:::-;6082:22;;:6;;;;;;;;;;;:22;;;6074:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6430:1:::1;6410:22;;:8;:22;;;;6402:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6520:8;6491:38;;6512:6;::::0;::::1;;;;;;;;;6491:38;;;;;;;;;;;;6549:8;6540:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6321:244:::0;:::o;165:106::-;218:15;253:10;246:17;;165:106;:::o;9995:335::-;10105:1;10088:19;;:5;:19;;;;10080:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10186:1;10167:21;;:7;:21;;;;10159:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10268:6;10238:11;:18;10250:5;10238:18;;;;;;;;;;;;;;;:27;10257:7;10238:27;;;;;;;;;;;;;;;:36;;;;10306:7;10290:32;;10299:5;10290:32;;;10315:6;10290:32;;;;;;;;;;;;;;;;;;9995:335;;;:::o;10338:1005::-;10462:1;10444:20;;:6;:20;;;;10436:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10546:1;10525:23;;:9;:23;;;;10517:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10616:1;10607:6;:10;10599:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10698:27;;;;;;;;;;;:45;;;;;10737:6;;;;;;;;;;;10729:14;;:6;:14;;;10698:45;10695:169;;;10775:19;;;;;;;;;;;10764:30;;:9;:30;;;10756:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10695:169;10904:29;10926:6;10904:9;:17;10914:6;10904:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;10884:9;:17;10894:6;10884:17;;;;;;;;;;;;;;;:49;;;;10944:32;10960:15;10971:3;10960:6;:10;;:15;;;;:::i;:::-;10944;:32::i;:::-;10987:29;11000:15;11011:3;11000:6;:10;;:15;;;;:::i;:::-;10987:12;:29::i;:::-;11050:49;11075:23;11095:2;11075:15;11086:3;11075:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11050:9;:20;11060:9;11050:20;;;;;;;;;;;;;;;;:24;;:49;;;;:::i;:::-;11027:9;:20;11037:9;11027:20;;;;;;;;;;;;;;;:72;;;;11110:41;11125:6;11133:9;11144:6;11110:14;:41::i;:::-;11162:23;11175:9;11162:12;:23::i;:::-;11196:20;11209:6;11196:12;:20::i;:::-;11227:16;:14;:16::i;:::-;11254:19;:17;:19::i;:::-;11317:9;11300:35;;11309:6;11300:35;;;11328:6;11300:35;;;;;;;;;;;;;;;;;;10338:1005;;;:::o;1477:136::-;1535:7;1562:43;1566:1;1569;1562:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1555:50;;1477:136;;;;:::o;2124:132::-;2182:7;2209:39;2213:1;2216;2209:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2202:46;;2124:132;;;;:::o;13833:884::-;13909:1;13894:11;;:16;13890:29;;13912:7;;13890:29;13929:12;13944:10;13952:1;13944:3;:7;;:10;;;;:::i;:::-;13929:25;;13972:12;13981:2;13972:4;:8;;:12;;;;:::i;:::-;13965:19;;13995:12;14010:10;14018:1;14010:3;:7;;:10;;;;:::i;:::-;13995:25;;14038:12;14047:2;14038:4;:8;;:12;;;;:::i;:::-;14031:19;;14066:9;14078:1;14066:13;;14061:649;14085:7;:14;;;;14081:1;:18;14061:649;;;14121:10;14134:9;:21;14144:7;14152:1;14144:10;;;;;;;;;;;;;;;;;;;;;;;;;14134:21;;;;;;;;;;;;;;;;14121:34;;14180:16;14192:3;7299:30;14180:11;;:16;;;;:::i;:::-;14174:2;:22;14170:36;;14198:8;;;14170:36;14231:1;14225:2;:7;14221:21;;14234:8;;;14221:21;14257:10;14270:11;14278:2;14270:3;:7;;:11;;;;:::i;:::-;14257:24;;14300:4;:16;14305:7;14313:1;14305:10;;;;;;;;;;;;;;;;;;;;;;;;;14300:16;;;;;;;;;;;;;;;;;;;;;;;;;14296:194;;;14337:10;14350:17;14357:9;;14350:2;:6;;:17;;;;:::i;:::-;14337:30;;14395:1;14390:2;:6;14386:89;;;14445:10;14452:2;14445;:6;;:10;;;;:::i;:::-;14421:9;:21;14431:7;14439:1;14431:10;;;;;;;;;;;;;;;;;;;;;;;;;14421:21;;;;;;;;;;;;;;;:34;;;;14386:89;14296:194;;14509:4;:16;14514:7;14522:1;14514:10;;;;;;;;;;;;;;;;;;;;;;;;;14509:16;;;;;;;;;;;;;;;;;;;;;;;;;14504:195;;14546:10;14559:17;14566:9;;14559:2;:6;;:17;;;;:::i;:::-;14546:30;;14604:1;14599:2;:6;14595:89;;;14654:10;14661:2;14654;:6;;:10;;;;:::i;:::-;14630:9;:21;14640:7;14648:1;14640:10;;;;;;;;;;;;;;;;;;;;;;;;;14630:21;;;;;;;;;;;;;;;:34;;;;14595:89;14504:195;;14061:649;;;14101:3;;;;;;;14061:649;;;;13833:884;;;;:::o;14725:538::-;14797:1;14783:11;;:15;14779:477;;;14818:9;14830:1;14818:13;;14813:443;14837:10;:17;;;;14833:1;:21;14813:443;;;14880:10;14893:11;:26;14905:10;14916:1;14905:13;;;;;;;;;;;;;;;;;;;;;;;;;14893:26;;;;;;;;;;;;;;;;14880:39;;14938:10;14951:11;14959:2;14951:3;:7;;:11;;;;:::i;:::-;14938:24;;14981:10;14994:19;15001:11;;14994:2;:6;;:19;;;;:::i;:::-;14981:32;;15041:1;15036:2;:6;15032:209;;;15074:16;15086:3;7299:30;15074:11;;:16;;;;:::i;:::-;15069:2;:21;15065:176;;;15126:1;15121:2;:6;15117:124;;;15184:29;15210:2;15184:9;:21;15194:7;15202:1;15194:10;;;;;;;;;;;;;;;;;;;;;;;;;15184:21;;;;;;;;;;;;;;;;:25;;:29;;;;:::i;:::-;15160:9;:21;15170:7;15178:1;15170:10;;;;;;;;;;;;;;;;;;;;;;;;;15160:21;;;;;;;;;;;;;;;:53;;;;15117:124;15065:176;15032:209;14813:443;;;14856:3;;;;;;;14813:443;;;;14779:477;14725:538;:::o;1817:301::-;1875:7;1955:1;1950;:6;1946:47;;;1980:1;1973:8;;;;1946:47;2005:9;2021:1;2017;:5;2005:17;;2050:1;2045;2041;:5;;;;;;:10;2033:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:1;2102:8;;;1817:301;;;;;:::o;1290:181::-;1348:7;1368:9;1384:1;1380;:5;1368:17;;1409:1;1404;:6;;1396:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1462:1;1455:8;;;1290:181;;;;:::o;11351:330::-;11445:7;11455:15;11445:25;;11481:10;11497:6;11481:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11481:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11515:10;11531:2;11515:19;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11515:19:0;;;;;;;;;;;;;;;;;;;11545:12;11563:6;11545:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11545:25:0;;;;;;;;;;;;;;;;;;;11581:10;11597:9;11581:26;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11581:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11618:10;11634:2;11618:19;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11618:19:0;;;;;;;;;;;;;;;;;;;11648:12;11666:6;11648:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11648:25:0;;;;;;;;;;;;;;;;;;;11351:330;;;;:::o;11868:374::-;11951:1;11930:9;:18;11940:7;11930:18;;;;;;;;;;;;;;;;:22;11926:179;;;11974:9;:18;11984:7;11974:18;;;;;;;;;;;;;;;;;;;;;;;;;11969:125;;12034:4;12013:9;:18;12023:7;12013:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;12057:7;12070;12057:21;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12057:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:125;11926:179;12120:11;:20;12132:7;12120:20;;;;;;;;;;;;;;;;;;;;;;;;;12115:120;;12180:4;12157:11;:20;12169:7;12157:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12199:10;12215:7;12199:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12199:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12115:120;11868:374;:::o;12730:1095::-;12775:20;12798:1;12775:24;;12810:20;12833:1;12810:24;;12866:1;12849:7;:14;;;;:18;12845:854;;;12887:9;12899:1;12887:13;;12882:817;12906:7;:14;;;;12902:1;:18;12882:817;;;12975:16;12987:3;7299:30;12975:11;;:16;;;;:::i;:::-;12950:9;:21;12960:7;12968:1;12960:10;;;;;;;;;;;;;;;;;;;;;;;;;12950:21;;;;;;;;;;;;;;;;:41;12946:55;;12993:8;;12946:55;13020:9;13038:7;13032:3;:13;13020:25;;13064:11;13078:7;13086:1;13078:10;;;;;;;;;;;;;;;;;;;;;;;;;13064:24;;13107:14;13124:1;13107:18;;13149:9;13161:1;13149:13;;13144:241;13168:10;:17;;;;13164:1;:21;13144:241;;;13236:3;13219:20;;:10;13230:1;13219:13;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;13215:34;;13241:8;;13215:34;13292:4;13276:10;13287:1;13276:13;;;;;;;;;;;;;;;;:20;13272:34;;;13298:8;;13272:34;13338:27;13349:12;13362:1;13349:15;;;;;;;;;;;;;;;;13338:6;:10;;:27;;;;:::i;:::-;13329:36;;13144:241;13187:3;;;;;;;13144:241;;;;13416:17;13428:4;7299:30;13416:11;;:17;;;;:::i;:::-;13407:6;:26;13403:281;;;13473:24;13490:6;13473:12;:16;;:24;;;;:::i;:::-;13458:39;;13532:5;13520:4;:9;13525:3;13520:9;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;13403:281;;;13601:24;13618:6;13601:12;:16;;:24;;;;:::i;:::-;13586:39;;13660:4;13648;:9;13653:3;13648:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;13403:281;12882:817;;;;12922:3;;;;;;;12882:817;;;;12845:854;13721:12;13709:9;:24;;;;13756:12;13744:9;:24;;;;13793;13807:9;;13793;;:13;;:24;;;;:::i;:::-;13779:11;:38;;;;12730:1095;;:::o;12250:472::-;12309:11;12323:1;12309:15;;12335:23;12361:1;12335:27;;12376:24;;;;;;;;;;;12373:302;;;12416:9;12428:1;12416:13;;12411:264;12435:10;:17;;;;12431:1;:21;12411:264;;;12480:49;12497:16;;;;;;;;;;;12515:10;12526:1;12515:13;;;;;;;;;;;;;;;;;;;;;;;;;12480:16;:49::i;:::-;12474:55;;12573:3;12544:11;:26;12556:10;12567:1;12556:13;;;;;;;;;;;;;;;;;;;;;;;;;12544:26;;;;;;;;;;;;;;;:32;;;;12601:1;12595:3;:7;12591:72;;;12639:24;12659:3;12639:15;:19;;:24;;;;:::i;:::-;12621:42;;12591:72;12454:3;;;;;;;12411:264;;;;12373:302;12699:15;12685:11;:29;;;;12250:472;;:::o;1619:192::-;1705:7;1738:1;1733;:6;;1741:12;1725: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;1725:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:9;1781:1;1777;:5;1765:17;;1802:1;1795:8;;;1619:192;;;;;:::o;2262:191::-;2348:7;2380:1;2376;:5;2383:12;2368: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;2368:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:9;2423:1;2419;:5;;;;;;2407:17;;2444:1;2437:8;;;2262:191;;;;;:::o;11689:171::-;11777:12;11818:7;11809:27;;;11837:14;11809:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11809:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11809:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11809:43:0;;;;;;;;;;;;;;;;11802:50;;11689:171;;;;:::o
Swarm Source
ipfs://dcfa87f992ec6652eaf5242316ee2487fceadf3473ca6805191277b5f29e256e
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.