ERC-20
Overview
Max Total Supply
1,000,000,000 KEI
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
13,356,382.418649315 KEIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KEI
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-13 */ /** KEI finance | Cross-Chain Algorithmic Trading Pools & Crypto Payment Solution. Pay Direct From Your Crypto Wallet Web: https://keifinance.org Tg: https://t.me/kei_finance_official X: https://twitter.com/KEI_FINANCE_ORG M: https://medium.com/@kei.finance */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.19; 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) { 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold 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; } } 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(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; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { 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; } } interface IUniswapRouterV1 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapRouterV2 is IUniswapRouterV1 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } library AddressLibrary { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "AddressLibrary: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "AddressLibrary: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "AddressLibrary: 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, "AddressLibrary: 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, "AddressLibrary: 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), "AddressLibrary: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract KEI is Context, IERC20, Ownable { using SafeMath for uint256; using AddressLibrary for address; string private _name = "KEI finance"; string private _symbol = "KEI"; uint8 private _decimals = 9; uint256 private _supply = 10 ** 9 * 10**9; uint256 public maxTransaction = 15 * 10 ** 6 * 10**9; uint256 public maxWalletSize = 15 * 10 ** 6 * 10**9; uint256 private _feeThreshold = 10 ** 5 * 10**9; address payable private teamAddress = payable(0x784AB60599Ca134924Da479C0bdB5Edfc09fb6EC); address payable private marketingAddress = payable(0x784AB60599Ca134924Da479C0bdB5Edfc09fb6EC); uint256 public buyLiquidityFee = 0; uint256 public buyMarketingFee = 29; uint256 public buyDevFee = 0; uint256 public sellLpFees = 0; uint256 public sellMktFees = 29; uint256 public sellDevFees = 0; uint256 public lpDivide = 0; uint256 public marketingDivide = 10; uint256 public devDivide = 0; uint256 public tBuyFees = 29; uint256 public tSellFees = 29; uint256 public totalShares = 10; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _feeExcludes; mapping (address => bool) public _maxWalletExcludes; mapping (address => bool) public _maxTxExcludes; mapping (address => bool) public _ammPair; IUniswapRouterV2 public routerV2; address public pairV2; bool _swapping; bool public swapEnabled = true; bool public hasSwapThreshold = false; bool public hasMaxWallet = true; modifier lockSwap { _swapping = true; _; _swapping = false; } constructor () { IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pairV2 = IUniswapFactory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); routerV2 = _uniswapV2Router; _allowances[address(this)][address(routerV2)] = _supply; _feeExcludes[owner()] = true; _feeExcludes[teamAddress] = true; _feeExcludes[marketingAddress] = true; tBuyFees = buyLiquidityFee.add(buyMarketingFee).add(buyDevFee); tSellFees = sellLpFees.add(sellMktFees).add(sellDevFees); totalShares = lpDivide.add(marketingDivide).add(devDivide); _maxWalletExcludes[owner()] = true; _maxWalletExcludes[address(pairV2)] = true; _maxWalletExcludes[address(this)] = true; _maxTxExcludes[owner()] = true; _maxTxExcludes[teamAddress] = true; _maxTxExcludes[marketingAddress] = true; _maxTxExcludes[address(this)] = true; _ammPair[address(pairV2)] = true; _balances[_msgSender()] = _supply; emit Transfer(address(0), _msgSender(), _supply); } 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 _supply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } 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 sendETHFee(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from routerV2 when swaping receive() external payable {} function _transferStandard(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapBack(uint256 tAmount) private lockSwap { uint256 tokensForLP = tAmount.mul(lpDivide).div(totalShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensToETH(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = totalShares.sub(lpDivide.div(2)); uint256 amountETHLiquidity = amountReceived.mul(lpDivide).div(totalETHFee).div(2); uint256 amountETHDevelopment = amountReceived.mul(devDivide).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDevelopment); if(amountETHMarketing > 0) sendETHFee(teamAddress, amountETHMarketing); if(amountETHDevelopment > 0) sendETHFee(marketingAddress, amountETHDevelopment); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensToETH(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = routerV2.WETH(); _approve(address(this), address(routerV2), tokenAmount); // make the swapBack routerV2.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(_ammPair[sender]) { feeAmount = amount.mul(tBuyFees).div(100); } else if(_ammPair[recipient]) { feeAmount = amount.mul(tSellFees).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function removeLimits() external onlyOwner { maxTransaction = _supply; hasMaxWallet = false; buyMarketingFee = 1; sellMktFees = 1; tBuyFees = 1; tSellFees = 1; } 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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(routerV2), tokenAmount); // add the liquidity routerV2.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(_swapping) { return _transferStandard(sender, recipient, amount); } else { if(!_maxTxExcludes[sender] && !_maxTxExcludes[recipient]) { require(amount <= maxTransaction, "Transfer amount exceeds the maxTransaction."); } uint256 swapAmount = balanceOf(address(this)); bool minimumSwap = swapAmount >= _feeThreshold; if (minimumSwap && !_swapping && _ammPair[recipient] && swapEnabled && !_feeExcludes[sender] && amount > _feeThreshold) { if(hasSwapThreshold) swapAmount = _feeThreshold; swapBack(swapAmount); } uint256 receiverAmount = (_feeExcludes[sender] || _feeExcludes[recipient]) ? amount : takeFee(sender, recipient, amount); if(hasMaxWallet && !_maxWalletExcludes[recipient]) require(balanceOf(recipient).add(receiverAmount) <= maxWalletSize); uint256 sAmount = (!hasMaxWallet && _feeExcludes[sender]) ? amount.sub(receiverAmount) : amount; _balances[sender] = _balances[sender].sub(sAmount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(receiverAmount); emit Transfer(sender, recipient, receiverAmount); return true; } } }
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":"","type":"address"}],"name":"_ammPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeExcludes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_maxTxExcludes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_maxWalletExcludes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":"devDivide","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasSwapThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpDivide","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingDivide","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLpFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMktFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600b60809081526a4b45492066696e616e636560a81b60a0526002906200002c90826200068b565b50604080518082019091526003808252624b454960e81b6020830152906200005590826200068b565b5060048054600960ff199091168117909155670de0b6b3a764000060055566354a6ba7a180006006819055600755655af3107a4000600855805473784ab60599ca134924da479c0bdb5edfc09fb6ec6001600160a01b03199182168117909255600a805490911690911781556000600b819055601d600c819055600d829055600e829055600f8190556010829055601182905560128390556013919091556014819055601555601655601e805462ffffff60a81b19166201000160a81b1790553480156200012257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000757565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062000757565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca919062000757565b601e80546001600160a01b039283166001600160a01b031991821617909155601d8054928416929091168217905560055430600090815260186020908152604080832094835293905291822055600190601990620003306000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600954821681526019909352818320805485166001908117909155600a54909116835291208054909216179055600d54600c54600b54620003ad9291620003a6919062000577565b9062000577565b601455601054600f54600e54620003cb9291620003a6919062000577565b601555601354601254601154620003e99291620003a6919062000577565b6016556001601a6000620004056000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e549091168152601a90925280822080548416600190811790915530835290822080549093168117909255601b90620004756000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560095482168152601b8452828120805486166001908117909155600a548316825283822080548716821790553082528382208054871682179055601e549092168152601c90935290822080549093161790915560055490601790620005053390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200056891815260200190565b60405180910390a350620007a4565b60008062000586838562000782565b905083811015620005dd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200061157607f821691505b6020821081036200063257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068657600081815260208120601f850160051c81016020861015620006615750805b601f850160051c820191505b8181101562000682578281556001016200066d565b5050505b505050565b81516001600160401b03811115620006a757620006a7620005e6565b620006bf81620006b88454620005fc565b8462000638565b602080601f831160018114620006f75760008415620006de5750858301515b600019600386901b1c1916600185901b17855562000682565b600085815260208120601f198616915b82811015620007285788860151825594840194600190910190840162000707565b5085821015620007475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200076a57600080fd5b81516001600160a01b0381168114620005dd57600080fd5b80820180821115620005e057634e487b7160e01b600052601160045260246000fd5b6119b080620007b46000396000f3fe6080604052600436106102135760003560e01c80637e42a7a111610118578063b0d60853116100a0578063cc1977411161006f578063cc197741146105e3578063dd62ed3e14610613578063f11a24d314610659578063f2fde38b1461066f578063f819c74b1461068f57600080fd5b8063b0d6085314610571578063c0cbfdf914610587578063c3f58ab11461059d578063c3f70b52146105cd57600080fd5b806395d89b41116100e757806395d89b41146104e05780639c3b4fdc146104f55780639d90e1ea1461050b578063a9059cbb14610521578063ac5fe32d1461054157600080fd5b80637e42a7a11461046b5780638da5cb5b1461048c5780638f3fa860146104aa5780638fffabed146104c057600080fd5b80633a98ef391161019b57806370a082311161016a57806370a08231146103dd578063715018a614610413578063751039fc1461042a5780637bce5a041461043f5780637e247f5e1461045557600080fd5b80633a98ef3914610358578063502f74461461036e5780636d829cab146103a65780636ddd1713146103bc57600080fd5b806318160ddd116101e257806318160ddd146102cb578063197e14d8146102ea5780631c16be001461030057806323b872dd14610316578063313ce5671461033657600080fd5b806306fdde031461021f57806308824ab41461024a578063095ea7b31461027b5780630c7bfdf11461029b57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506102346106a5565b6040516102419190611673565b60405180910390f35b34801561025657600080fd5b50601e5461026b90600160b01b900460ff1681565b6040519015158152602001610241565b34801561028757600080fd5b5061026b6102963660046116d9565b610737565b3480156102a757600080fd5b5061026b6102b6366004611705565b601a6020526000908152604090205460ff1681565b3480156102d757600080fd5b506005545b604051908152602001610241565b3480156102f657600080fd5b506102dc60145481565b34801561030c57600080fd5b506102dc60105481565b34801561032257600080fd5b5061026b610331366004611722565b61074e565b34801561034257600080fd5b5060045460405160ff9091168152602001610241565b34801561036457600080fd5b506102dc60165481565b34801561037a57600080fd5b50601d5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156103b257600080fd5b506102dc60135481565b3480156103c857600080fd5b50601e5461026b90600160a81b900460ff1681565b3480156103e957600080fd5b506102dc6103f8366004611705565b6001600160a01b031660009081526017602052604090205490565b34801561041f57600080fd5b506104286107b9565b005b34801561043657600080fd5b50610428610836565b34801561044b57600080fd5b506102dc600c5481565b34801561046157600080fd5b506102dc600e5481565b34801561047757600080fd5b50601e5461026b90600160b81b900460ff1681565b34801561049857600080fd5b506000546001600160a01b031661038e565b3480156104b657600080fd5b506102dc60075481565b3480156104cc57600080fd5b50601e5461038e906001600160a01b031681565b3480156104ec57600080fd5b50610234610889565b34801561050157600080fd5b506102dc600d5481565b34801561051757600080fd5b506102dc60115481565b34801561052d57600080fd5b5061026b61053c3660046116d9565b610898565b34801561054d57600080fd5b5061026b61055c366004611705565b601c6020526000908152604090205460ff1681565b34801561057d57600080fd5b506102dc60125481565b34801561059357600080fd5b506102dc600f5481565b3480156105a957600080fd5b5061026b6105b8366004611705565b60196020526000908152604090205460ff1681565b3480156105d957600080fd5b506102dc60065481565b3480156105ef57600080fd5b5061026b6105fe366004611705565b601b6020526000908152604090205460ff1681565b34801561061f57600080fd5b506102dc61062e366004611763565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b34801561066557600080fd5b506102dc600b5481565b34801561067b57600080fd5b5061042861068a366004611705565b6108a5565b34801561069b57600080fd5b506102dc60155481565b6060600280546106b49061179c565b80601f01602080910402602001604051908101604052809291908181526020018280546106e09061179c565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b5050505050905090565b600061074433848461098f565b5060015b92915050565b600061075b848484610ab3565b506107ae84336107a985604051806060016040528060288152602001611953602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190610f1a565b61098f565b5060015b9392505050565b6000546001600160a01b031633146107ec5760405162461bcd60e51b81526004016107e3906117d6565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108605760405162461bcd60e51b81526004016107e3906117d6565b600554600655601e805460ff60b81b191690556001600c819055600f8190556014819055601555565b6060600380546106b49061179c565b60006107ae338484610ab3565b6000546001600160a01b031633146108cf5760405162461bcd60e51b81526004016107e3906117d6565b6001600160a01b0381166109345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109f15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e3565b6001600160a01b038216610a525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e3565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610b195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e3565b6001600160a01b038316610b7b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e3565b601e54600160a01b900460ff1615610b9f57610b98848484610f54565b90506107b2565b6001600160a01b0384166000908152601b602052604090205460ff16158015610be157506001600160a01b0383166000908152601b602052604090205460ff16155b15610c4c57600654821115610c4c5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526a3930b739b0b1ba34b7b71760a91b60648201526084016107e3565b3060009081526017602052604090205460085481108015908190610c7a5750601e54600160a01b900460ff16155b8015610c9e57506001600160a01b0385166000908152601c602052604090205460ff165b8015610cb35750601e54600160a81b900460ff165b8015610cd857506001600160a01b03861660009081526019602052604090205460ff16155b8015610ce5575060085484115b15610d0b57601e54600160b01b900460ff1615610d025760085491505b610d0b8261103a565b6001600160a01b03861660009081526019602052604081205460ff1680610d4a57506001600160a01b03861660009081526019602052604090205460ff165b610d5e57610d59878787611170565b610d60565b845b601e54909150600160b81b900460ff168015610d9557506001600160a01b0386166000908152601a602052604090205460ff16155b15610dd157600754610dc682610dc0896001600160a01b031660009081526017602052604090205490565b90611276565b1115610dd157600080fd5b601e54600090600160b81b900460ff16158015610e0657506001600160a01b03881660009081526019602052604090205460ff165b610e105785610e1a565b610e1a86836112d5565b9050610e828160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250601760008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610f1a9092919063ffffffff16565b6001600160a01b03808a166000908152601760205260408082209390935590891681522054610eb19083611276565b6001600160a01b0380891660008181526017602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f059086815260200190565b60405180910390a360019450505050506107b2565b60008184841115610f3e5760405162461bcd60e51b81526004016107e39190611673565b506000610f4b8486611821565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601790915291822054610fa5918490610f1a565b6001600160a01b038086166000908152601760205260408082209390935590851681522054610fd49083611276565b6001600160a01b0380851660008181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110289086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556016546011546000916110709160029161106a9182908790611317565b90611399565b9050600061107e83836112d5565b9050611089816113db565b60115447906000906110a9906110a0906002611399565b601654906112d5565b905060006110cb600261106a8461106a6011548861131790919063ffffffff16565b905060006110e88361106a6013548761131790919063ffffffff16565b90506000611100826110fa87866112d5565b906112d5565b9050801561111e5760095461111e906001600160a01b031682611535565b811561113a57600a5461113a906001600160a01b031683611535565b60008311801561114a5750600087115b15611159576111598784611570565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152601c6020526040812054819060ff16156111b4576111ad606461106a6014548661131790919063ffffffff16565b90506111f2565b6001600160a01b0384166000908152601c602052604090205460ff16156111f2576111ef606461106a6015548661131790919063ffffffff16565b90505b801561126c57306000908152601760205260409020546112129082611276565b30600081815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112639085815260200190565b60405180910390a35b610f4b83826112d5565b6000806112838385611834565b9050838110156107b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e3565b60006107b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f1a565b60008260000361132957506000610748565b60006113358385611847565b905082611342858361185e565b146107b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e3565b60006107b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611645565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141057611410611880565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148d9190611896565b816001815181106114a0576114a0611880565b6001600160a01b039283166020918202929092010152601d546114c6913091168461098f565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ff9085906000908690309042906004016118b3565b600060405180830381600087803b15801561151957600080fd5b505af115801561152d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561156b573d6000803e3d6000fd5b505050565b601d546115889030906001600160a01b03168461098f565b601d546001600160a01b031663f305d7198230856000806115b16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611619573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061163e9190611924565b5050505050565b600081836116665760405162461bcd60e51b81526004016107e39190611673565b506000610f4b848661185e565b600060208083528351808285015260005b818110156116a057858101830151858201604001528201611684565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d657600080fd5b50565b600080604083850312156116ec57600080fd5b82356116f7816116c1565b946020939093013593505050565b60006020828403121561171757600080fd5b81356107b2816116c1565b60008060006060848603121561173757600080fd5b8335611742816116c1565b92506020840135611752816116c1565b929592945050506040919091013590565b6000806040838503121561177657600080fd5b8235611781816116c1565b91506020830135611791816116c1565b809150509250929050565b600181811c908216806117b057607f821691505b6020821081036117d057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107485761074861180b565b808201808211156107485761074861180b565b80820281158282048414176107485761074861180b565b60008261187b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a857600080fd5b81516107b2816116c1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119035784516001600160a01b0316835293830193918301916001016118de565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014523f7a676703f6b1839407cd1e0f89208a4ab6932e2170bb8bb9d6e18deb4264736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c80637e42a7a111610118578063b0d60853116100a0578063cc1977411161006f578063cc197741146105e3578063dd62ed3e14610613578063f11a24d314610659578063f2fde38b1461066f578063f819c74b1461068f57600080fd5b8063b0d6085314610571578063c0cbfdf914610587578063c3f58ab11461059d578063c3f70b52146105cd57600080fd5b806395d89b41116100e757806395d89b41146104e05780639c3b4fdc146104f55780639d90e1ea1461050b578063a9059cbb14610521578063ac5fe32d1461054157600080fd5b80637e42a7a11461046b5780638da5cb5b1461048c5780638f3fa860146104aa5780638fffabed146104c057600080fd5b80633a98ef391161019b57806370a082311161016a57806370a08231146103dd578063715018a614610413578063751039fc1461042a5780637bce5a041461043f5780637e247f5e1461045557600080fd5b80633a98ef3914610358578063502f74461461036e5780636d829cab146103a65780636ddd1713146103bc57600080fd5b806318160ddd116101e257806318160ddd146102cb578063197e14d8146102ea5780631c16be001461030057806323b872dd14610316578063313ce5671461033657600080fd5b806306fdde031461021f57806308824ab41461024a578063095ea7b31461027b5780630c7bfdf11461029b57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506102346106a5565b6040516102419190611673565b60405180910390f35b34801561025657600080fd5b50601e5461026b90600160b01b900460ff1681565b6040519015158152602001610241565b34801561028757600080fd5b5061026b6102963660046116d9565b610737565b3480156102a757600080fd5b5061026b6102b6366004611705565b601a6020526000908152604090205460ff1681565b3480156102d757600080fd5b506005545b604051908152602001610241565b3480156102f657600080fd5b506102dc60145481565b34801561030c57600080fd5b506102dc60105481565b34801561032257600080fd5b5061026b610331366004611722565b61074e565b34801561034257600080fd5b5060045460405160ff9091168152602001610241565b34801561036457600080fd5b506102dc60165481565b34801561037a57600080fd5b50601d5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156103b257600080fd5b506102dc60135481565b3480156103c857600080fd5b50601e5461026b90600160a81b900460ff1681565b3480156103e957600080fd5b506102dc6103f8366004611705565b6001600160a01b031660009081526017602052604090205490565b34801561041f57600080fd5b506104286107b9565b005b34801561043657600080fd5b50610428610836565b34801561044b57600080fd5b506102dc600c5481565b34801561046157600080fd5b506102dc600e5481565b34801561047757600080fd5b50601e5461026b90600160b81b900460ff1681565b34801561049857600080fd5b506000546001600160a01b031661038e565b3480156104b657600080fd5b506102dc60075481565b3480156104cc57600080fd5b50601e5461038e906001600160a01b031681565b3480156104ec57600080fd5b50610234610889565b34801561050157600080fd5b506102dc600d5481565b34801561051757600080fd5b506102dc60115481565b34801561052d57600080fd5b5061026b61053c3660046116d9565b610898565b34801561054d57600080fd5b5061026b61055c366004611705565b601c6020526000908152604090205460ff1681565b34801561057d57600080fd5b506102dc60125481565b34801561059357600080fd5b506102dc600f5481565b3480156105a957600080fd5b5061026b6105b8366004611705565b60196020526000908152604090205460ff1681565b3480156105d957600080fd5b506102dc60065481565b3480156105ef57600080fd5b5061026b6105fe366004611705565b601b6020526000908152604090205460ff1681565b34801561061f57600080fd5b506102dc61062e366004611763565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b34801561066557600080fd5b506102dc600b5481565b34801561067b57600080fd5b5061042861068a366004611705565b6108a5565b34801561069b57600080fd5b506102dc60155481565b6060600280546106b49061179c565b80601f01602080910402602001604051908101604052809291908181526020018280546106e09061179c565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b5050505050905090565b600061074433848461098f565b5060015b92915050565b600061075b848484610ab3565b506107ae84336107a985604051806060016040528060288152602001611953602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190610f1a565b61098f565b5060015b9392505050565b6000546001600160a01b031633146107ec5760405162461bcd60e51b81526004016107e3906117d6565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108605760405162461bcd60e51b81526004016107e3906117d6565b600554600655601e805460ff60b81b191690556001600c819055600f8190556014819055601555565b6060600380546106b49061179c565b60006107ae338484610ab3565b6000546001600160a01b031633146108cf5760405162461bcd60e51b81526004016107e3906117d6565b6001600160a01b0381166109345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109f15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e3565b6001600160a01b038216610a525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e3565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610b195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e3565b6001600160a01b038316610b7b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e3565b601e54600160a01b900460ff1615610b9f57610b98848484610f54565b90506107b2565b6001600160a01b0384166000908152601b602052604090205460ff16158015610be157506001600160a01b0383166000908152601b602052604090205460ff16155b15610c4c57600654821115610c4c5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526a3930b739b0b1ba34b7b71760a91b60648201526084016107e3565b3060009081526017602052604090205460085481108015908190610c7a5750601e54600160a01b900460ff16155b8015610c9e57506001600160a01b0385166000908152601c602052604090205460ff165b8015610cb35750601e54600160a81b900460ff165b8015610cd857506001600160a01b03861660009081526019602052604090205460ff16155b8015610ce5575060085484115b15610d0b57601e54600160b01b900460ff1615610d025760085491505b610d0b8261103a565b6001600160a01b03861660009081526019602052604081205460ff1680610d4a57506001600160a01b03861660009081526019602052604090205460ff165b610d5e57610d59878787611170565b610d60565b845b601e54909150600160b81b900460ff168015610d9557506001600160a01b0386166000908152601a602052604090205460ff16155b15610dd157600754610dc682610dc0896001600160a01b031660009081526017602052604090205490565b90611276565b1115610dd157600080fd5b601e54600090600160b81b900460ff16158015610e0657506001600160a01b03881660009081526019602052604090205460ff165b610e105785610e1a565b610e1a86836112d5565b9050610e828160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250601760008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610f1a9092919063ffffffff16565b6001600160a01b03808a166000908152601760205260408082209390935590891681522054610eb19083611276565b6001600160a01b0380891660008181526017602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f059086815260200190565b60405180910390a360019450505050506107b2565b60008184841115610f3e5760405162461bcd60e51b81526004016107e39190611673565b506000610f4b8486611821565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601790915291822054610fa5918490610f1a565b6001600160a01b038086166000908152601760205260408082209390935590851681522054610fd49083611276565b6001600160a01b0380851660008181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110289086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556016546011546000916110709160029161106a9182908790611317565b90611399565b9050600061107e83836112d5565b9050611089816113db565b60115447906000906110a9906110a0906002611399565b601654906112d5565b905060006110cb600261106a8461106a6011548861131790919063ffffffff16565b905060006110e88361106a6013548761131790919063ffffffff16565b90506000611100826110fa87866112d5565b906112d5565b9050801561111e5760095461111e906001600160a01b031682611535565b811561113a57600a5461113a906001600160a01b031683611535565b60008311801561114a5750600087115b15611159576111598784611570565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152601c6020526040812054819060ff16156111b4576111ad606461106a6014548661131790919063ffffffff16565b90506111f2565b6001600160a01b0384166000908152601c602052604090205460ff16156111f2576111ef606461106a6015548661131790919063ffffffff16565b90505b801561126c57306000908152601760205260409020546112129082611276565b30600081815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112639085815260200190565b60405180910390a35b610f4b83826112d5565b6000806112838385611834565b9050838110156107b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e3565b60006107b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f1a565b60008260000361132957506000610748565b60006113358385611847565b905082611342858361185e565b146107b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e3565b60006107b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611645565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141057611410611880565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148d9190611896565b816001815181106114a0576114a0611880565b6001600160a01b039283166020918202929092010152601d546114c6913091168461098f565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ff9085906000908690309042906004016118b3565b600060405180830381600087803b15801561151957600080fd5b505af115801561152d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561156b573d6000803e3d6000fd5b505050565b601d546115889030906001600160a01b03168461098f565b601d546001600160a01b031663f305d7198230856000806115b16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611619573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061163e9190611924565b5050505050565b600081836116665760405162461bcd60e51b81526004016107e39190611673565b506000610f4b848661185e565b600060208083528351808285015260005b818110156116a057858101830151858201604001528201611684565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d657600080fd5b50565b600080604083850312156116ec57600080fd5b82356116f7816116c1565b946020939093013593505050565b60006020828403121561171757600080fd5b81356107b2816116c1565b60008060006060848603121561173757600080fd5b8335611742816116c1565b92506020840135611752816116c1565b929592945050506040919091013590565b6000806040838503121561177657600080fd5b8235611781816116c1565b91506020830135611791816116c1565b809150509250929050565b600181811c908216806117b057607f821691505b6020821081036117d057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107485761074861180b565b808201808211156107485761074861180b565b80820281158282048414176107485761074861180b565b60008261187b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a857600080fd5b81516107b2816116c1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119035784516001600160a01b0316835293830193918301916001016118de565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014523f7a676703f6b1839407cd1e0f89208a4ab6932e2170bb8bb9d6e18deb4264736f6c63430008130033
Deployed Bytecode Sourcemap
12222:9877:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13812:36;;;;;;;;;;-1:-1:-1;13812:36:0;;;;-1:-1:-1;;;13812:36:0;;;;;;;;;732:14:1;;725:22;707:41;;695:2;680:18;13812:36:0;567:187:1;15850:161:0;;;;;;;;;;-1:-1:-1;15850:161:0;;;;;:::i;:::-;;:::i;13519:51::-;;;;;;;;;;-1:-1:-1;13519:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15469:95;;;;;;;;;;-1:-1:-1;15549:7:0;;15469:95;;;1613:25:1;;;1601:2;1586:18;15469:95:0;1467:177:1;13231:28:0;;;;;;;;;;;;;;;;13079:30;;;;;;;;;;;;;;;;20027:313;;;;;;;;;;-1:-1:-1;20027:313:0;;;;;:::i;:::-;;:::i;15378:83::-;;;;;;;;;;-1:-1:-1;15444:9:0;;15378:83;;15444:9;;;;2252:36:1;;2240:2;2225:18;15378:83:0;2110:184:1;13302:31:0;;;;;;;;;;;;;;;;13681:32;;;;;;;;;;-1:-1:-1;13681:32:0;;;;-1:-1:-1;;;;;13681:32:0;;;;;;-1:-1:-1;;;;;2487:32:1;;;2469:51;;2457:2;2442:18;13681:32:0;2299:227:1;13194:28:0;;;;;;;;;;;;;;;;13775:30;;;;;;;;;;-1:-1:-1;13775:30:0;;;;-1:-1:-1;;;13775:30:0;;;;;;15572:119;;;;;;;;;;-1:-1:-1;15572:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15665:18:0;15638:7;15665:18;;;:9;:18;;;;;;;15572:119;3548:148;;;;;;;;;;;;;:::i;:::-;;18947:220;;;;;;;;;;;;;:::i;12926:35::-;;;;;;;;;;;;;;;;13005:29;;;;;;;;;;;;;;;;13855:31;;;;;;;;;;-1:-1:-1;13855:31:0;;;;-1:-1:-1;;;13855:31:0;;;;;;3323:79;;;;;;;;;;-1:-1:-1;3361:7:0;3388:6;-1:-1:-1;;;;;3388:6:0;3323:79;;12571:51;;;;;;;;;;;;;;;;13720:21;;;;;;;;;;-1:-1:-1;13720:21:0;;;;-1:-1:-1;;;;;13720:21:0;;;15283:87;;;;;;;;;;;;;:::i;12968:28::-;;;;;;;;;;;;;;;;13118:27;;;;;;;;;;;;;;;;18768:167;;;;;;;;;;-1:-1:-1;18768:167:0;;;;;:::i;:::-;;:::i;13631:41::-;;;;;;;;;;-1:-1:-1;13631:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13152:35;;;;;;;;;;;;;;;;13041:31;;;;;;;;;;;;;;;;13467:45;;;;;;;;;;-1:-1:-1;13467:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12512:52;;;;;;;;;;;;;;;;13577:47;;;;;;;;;;-1:-1:-1;13577:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15699:143;;;;;;;;;;-1:-1:-1;15699:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15807:18:0;;;15780:7;15807:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15699:143;12885:34;;;;;;;;;;;;;;;;3704:244;;;;;;;;;;-1:-1:-1;3704:244:0;;;;;:::i;:::-;;:::i;13266:29::-;;;;;;;;;;;;;;;;15192:83;15229:13;15262:5;15255:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:83;:::o;15850:161::-;15925:4;15942:39;2699:10;15965:7;15974:6;15942:8;:39::i;:::-;-1:-1:-1;15999:4:0;15850:161;;;;;:::o;20027:313::-;20125:4;20142:36;20152:6;20160:9;20171:6;20142:9;:36::i;:::-;-1:-1:-1;20189:121:0;20198:6;2699:10;20220:89;20258:6;20220:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20220:19:0;;;;;;:11;:19;;;;;;;;2699:10;20220:33;;;;;;;;;;:37;:89::i;:::-;20189:8;:121::i;:::-;-1:-1:-1;20328:4:0;20027:313;;;;;;:::o;3548:148::-;3457:6;;-1:-1:-1;;;;;3457:6:0;2699:10;3457:22;3449:67;;;;-1:-1:-1;;;3449:67:0;;;;;;;:::i;:::-;;;;;;;;;3655:1:::1;3639:6:::0;;3618:40:::1;::::0;-1:-1:-1;;;;;3639:6:0;;::::1;::::0;3618:40:::1;::::0;3655:1;;3618:40:::1;3686:1;3669:19:::0;;-1:-1:-1;;;;;;3669:19:0::1;::::0;;3548:148::o;18947:220::-;3457:6;;-1:-1:-1;;;;;3457:6:0;2699:10;3457:22;3449:67;;;;-1:-1:-1;;;3449:67:0;;;;;;;:::i;:::-;19018:7:::1;::::0;19001:14:::1;:24:::0;19036:12:::1;:20:::0;;-1:-1:-1;;;;19036:20:0::1;::::0;;;19067:15:::1;:19:::0;;;19097:11:::1;:15:::0;;;19123:8:::1;:12:::0;;;19146:9:::1;:13:::0;18947:220::o;15283:87::-;15322:13;15355:7;15348:14;;;;;:::i;18768:167::-;18846:4;18863:42;2699:10;18887:9;18898:6;18863:9;:42::i;3704:244::-;3457:6;;-1:-1:-1;;;;;3457:6:0;2699:10;3457:22;3449:67;;;;-1:-1:-1;;;3449:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3793:22:0;::::1;3785:73;;;::::0;-1:-1:-1;;;3785:73:0;;4080:2:1;3785:73:0::1;::::0;::::1;4062:21:1::0;4119:2;4099:18;;;4092:30;4158:34;4138:18;;;4131:62;-1:-1:-1;;;4209:18:1;;;4202:36;4255:19;;3785:73:0::1;3878:402:1::0;3785:73:0::1;3895:6;::::0;;3874:38:::1;::::0;-1:-1:-1;;;;;3874:38:0;;::::1;::::0;3895:6;::::1;::::0;3874:38:::1;::::0;::::1;3923:6;:17:::0;;-1:-1:-1;;;;;;3923:17:0::1;-1:-1:-1::0;;;;;3923:17:0;;;::::1;::::0;;;::::1;::::0;;3704:244::o;19175:337::-;-1:-1:-1;;;;;19268:19:0;;19260:68;;;;-1:-1:-1;;;19260:68:0;;4487:2:1;19260:68:0;;;4469:21:1;4526:2;4506:18;;;4499:30;4565:34;4545:18;;;4538:62;-1:-1:-1;;;4616:18:1;;;4609:34;4660:19;;19260:68:0;4285:400:1;19260:68:0;-1:-1:-1;;;;;19347:21:0;;19339:68;;;;-1:-1:-1;;;19339:68:0;;4892:2:1;19339:68:0;;;4874:21:1;4931:2;4911:18;;;4904:30;4970:34;4950:18;;;4943:62;-1:-1:-1;;;5021:18:1;;;5014:32;5063:19;;19339:68:0;4690:398:1;19339:68:0;-1:-1:-1;;;;;19420:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19472:32;;1613:25:1;;;19472:32:0;;1586:18:1;19472:32:0;;;;;;;19175:337;;;:::o;20348:1748::-;20435:4;-1:-1:-1;;;;;20462:20:0;;20454:70;;;;-1:-1:-1;;;20454:70:0;;5295:2:1;20454:70:0;;;5277:21:1;5334:2;5314:18;;;5307:30;5373:34;5353:18;;;5346:62;-1:-1:-1;;;5424:18:1;;;5417:35;5469:19;;20454:70:0;5093:401:1;20454:70:0;-1:-1:-1;;;;;20543:23:0;;20535:71;;;;-1:-1:-1;;;20535:71:0;;5701:2:1;20535:71:0;;;5683:21:1;5740:2;5720:18;;;5713:30;5779:34;5759:18;;;5752:62;-1:-1:-1;;;5830:18:1;;;5823:33;5873:19;;20535:71:0;5499:399:1;20535:71:0;20622:9;;-1:-1:-1;;;20622:9:0;;;;20619:1470;;;20665:44;20683:6;20691:9;20702:6;20665:17;:44::i;:::-;20658:51;;;;20619:1470;-1:-1:-1;;;;;20765:22:0;;;;;;:14;:22;;;;;;;;20764:23;:53;;;;-1:-1:-1;;;;;;20792:25:0;;;;;;:14;:25;;;;;;;;20791:26;20764:53;20761:173;;;20856:14;;20846:6;:24;;20838:80;;;;-1:-1:-1;;;20838:80:0;;6105:2:1;20838:80:0;;;6087:21:1;6144:2;6124:18;;;6117:30;6183:34;6163:18;;;6156:62;-1:-1:-1;;;6234:18:1;;;6227:41;6285:19;;20838:80:0;5903:407:1;20838:80:0;21001:4;20962:18;15665;;;:9;:18;;;;;;21055:13;;21041:27;;;;;;;21101:25;;-1:-1:-1;21117:9:0;;-1:-1:-1;;;21117:9:0;;;;21116:10;21101:25;:48;;;;-1:-1:-1;;;;;;21130:19:0;;;;;;:8;:19;;;;;;;;21101:48;:63;;;;-1:-1:-1;21153:11:0;;-1:-1:-1;;;21153:11:0;;;;21101:63;:88;;;;-1:-1:-1;;;;;;21169:20:0;;;;;;:12;:20;;;;;;;;21168:21;21101:88;:114;;;;;21202:13;;21193:6;:22;21101:114;21097:280;;;21253:16;;-1:-1:-1;;;21253:16:0;;;;21250:68;;;21305:13;;21292:26;;21250:68;21337:20;21346:10;21337:8;:20::i;:::-;-1:-1:-1;;;;;21419:20:0;;21393:22;21419:20;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;21443:23:0;;;;;;:12;:23;;;;;;;;21419:47;21418:138;;21522:34;21530:6;21538:9;21549:6;21522:7;:34::i;:::-;21418:138;;;21513:6;21418:138;21576:12;;21393:163;;-1:-1:-1;;;;21576:12:0;;;;:46;;;;-1:-1:-1;;;;;;21593:29:0;;;;;;:18;:29;;;;;;;;21592:30;21576:46;21573:134;;;21693:13;;21649:40;21674:14;21649:20;21659:9;-1:-1:-1;;;;;15665:18:0;15638:7;15665:18;;;:9;:18;;;;;;;15572:119;21649:20;:24;;:40::i;:::-;:57;;21641:66;;;;;;21744:12;;21724:15;;-1:-1:-1;;;21744:12:0;;;;21743:13;:37;;;;-1:-1:-1;;;;;;21760:20:0;;;;;;:12;:20;;;;;;;;21743:37;21742:77;;21813:6;21742:77;;;21784:26;:6;21795:14;21784:10;:26::i;:::-;21724:95;;21854:54;21876:7;21854:54;;;;;;;;;;;;;-1:-1:-1;;;21854:54:0;;;:9;:17;21864:6;-1:-1:-1;;;;;21854:17:0;-1:-1:-1;;;;;21854:17:0;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;-1:-1:-1;;;;;21834:17:0;;;;;;;:9;:17;;;;;;:74;;;;21946:20;;;;;;;:40;;21971:14;21946:24;:40::i;:::-;-1:-1:-1;;;;;21923:20:0;;;;;;;:9;:20;;;;;;;:63;;;;22008:43;;;;;;;;;;22036:14;1613:25:1;;1601:2;1586:18;;1467:177;22008:43:0;;;;;;;;22073:4;22066:11;;;;;;;;698:192;784:7;820:12;812:6;;;;804:29;;;;-1:-1:-1;;;804:29:0;;;;;;;;:::i;:::-;-1:-1:-1;844:9:0;856:5;860:1;856;:5;:::i;:::-;844:17;698:192;-1:-1:-1;;;;;698:192:0:o;16230:333::-;16363:53;;;;;;;;;;;-1:-1:-1;;;16363:53:0;;;;;;;;-1:-1:-1;;;;;16363:17:0;;16326:4;16363:17;;;:9;:17;;;;;;;:53;;16385:6;;16363:21;:53::i;:::-;-1:-1:-1;;;;;16343:17:0;;;;;;;:9;:17;;;;;;:73;;;;16450:20;;;;;;;:32;;16475:6;16450:24;:32::i;:::-;-1:-1:-1;;;;;16427:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16498:35;;;;;;;;;;16526:6;1613:25:1;;1601:2;1586:18;;1467:177;16498:35:0;;;;;;;;-1:-1:-1;16551:4:0;16230:333;;;;;:::o;16571:986::-;13928:9;:16;;-1:-1:-1;;;;13928:16:0;-1:-1:-1;;;13928:16:0;;;16692:11:::1;::::0;16678:8:::1;::::0;13928:16;;16666:45:::1;::::0;16709:1:::1;::::0;16666:38:::1;::::0;;;:7;;:11:::1;:21::i;:::-;:25:::0;::::1;:38::i;:45::-;16644:67:::0;-1:-1:-1;16722:21:0::1;16746:24;:7:::0;16644:67;16746:11:::1;:24::i;:::-;16722:48;;16783:30;16799:13;16783:15;:30::i;:::-;16921:8;::::0;16849:21:::1;::::0;16824:22:::1;::::0;16905:32:::1;::::0;16921:15:::1;::::0;16934:1:::1;16921:12;:15::i;:::-;16905:11;::::0;;:15:::1;:32::i;:::-;16883:54;;16958:26;16987:52;17037:1;16987:45;17020:11;16987:28;17006:8;;16987:14;:18;;:28;;;;:::i;:52::-;16958:81;;17050:28;17081:46;17115:11;17081:29;17100:9;;17081:14;:18;;:29;;;;:::i;:46::-;17050:77:::0;-1:-1:-1;17138:26:0::1;17167:64;17050:77:::0;17167:38:::1;:14:::0;17186:18;17167::::1;:38::i;:::-;:42:::0;::::1;:64::i;:::-;17138:93:::0;-1:-1:-1;17247:22:0;;17244:83:::1;;17295:11;::::0;17284:43:::1;::::0;-1:-1:-1;;;;;17295:11:0::1;17308:18:::0;17284:10:::1;:43::i;:::-;17343:24:::0;;17340:92:::1;;17393:16;::::0;17382:50:::1;::::0;-1:-1:-1;;;;;17393:16:0::1;17411:20:::0;17382:10:::1;:50::i;:::-;17469:1;17448:18;:22;:41;;;;;17488:1;17474:11;:15;17448:41;17445:104;;;17504:45;17517:11;17530:18;17504:12;:45::i;:::-;-1:-1:-1::0;;13967:9:0;:17;;-1:-1:-1;;;;13967:17:0;;;-1:-1:-1;;;;;;16571:986:0:o;18164:596::-;-1:-1:-1;;;;;18325:16:0;;18250:7;18325:16;;;:8;:16;;;;;;18250:7;;18325:16;;18322:197;;;18370:29;18395:3;18370:20;18381:8;;18370:6;:10;;:20;;;;:::i;:29::-;18358:41;;18322:197;;;-1:-1:-1;;;;;18429:19:0;;;;;;:8;:19;;;;;;;;18426:93;;;18477:30;18503:3;18477:21;18488:9;;18477:6;:10;;:21;;;;:::i;:30::-;18465:42;;18426:93;18542:13;;18539:173;;18617:4;18599:24;;;;:9;:24;;;;;;:39;;18628:9;18599:28;:39::i;:::-;18590:4;18572:24;;;;:9;:24;;;;;;;:66;;;;18658:42;;-1:-1:-1;;;;;18658:42:0;;;;;;;18690:9;1613:25:1;;1601:2;1586:18;;1467:177;18658:42:0;;;;;;;;18539:173;18731:21;:6;18742:9;18731:10;:21::i;365:181::-;423:7;;455:5;459:1;455;:5;:::i;:::-;443:17;;484:1;479;:6;;471:46;;;;-1:-1:-1;;;471:46:0;;6912:2:1;471:46:0;;;6894:21:1;6951:2;6931:18;;;6924:30;6990:29;6970:18;;;6963:57;7037:18;;471:46:0;6710:351:1;554:136:0;612:7;639:43;643:1;646;639:43;;;;;;;;;;;;;;;;;:3;:43::i;898:250::-;956:7;980:1;985;980:6;976:47;;-1:-1:-1;1010:1:0;1003:8;;976:47;1035:9;1047:5;1051:1;1047;:5;:::i;:::-;1035:17;-1:-1:-1;1080:1:0;1071:5;1075:1;1035:17;1071:5;:::i;:::-;:10;1063:56;;;;-1:-1:-1;;;1063:56:0;;7663:2:1;1063:56:0;;;7645:21:1;7702:2;7682:18;;;7675:30;7741:34;7721:18;;;7714:62;-1:-1:-1;;;7792:18:1;;;7785:31;7833:19;;1063:56:0;7461:397:1;1156:132:0;1214:7;1241:39;1245:1;1248;1241:39;;;;;;;;;;;;;;;;;:3;:39::i;17569:587::-;17718:16;;;17732:1;17718:16;;;;;;;;17694:21;;17718:16;;;;;;;;;;-1:-1:-1;17718:16:0;17694:40;;17763:4;17745;17750:1;17745:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17745:23:0;;;:7;;;;;;;;;;:23;;;;17789:8;;:15;;;-1:-1:-1;;;17789:15:0;;;;:8;;;;;:13;;:15;;;;;17745:7;;17789:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17779:4;17784:1;17779:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17779:25:0;;;:7;;;;;;;;;:25;17849:8;;17817:55;;17834:4;;17849:8;17860:11;17817:8;:55::i;:::-;17915:8;;:233;;-1:-1:-1;;;17915:233:0;;-1:-1:-1;;;;;17915:8:0;;;;:59;;:233;;17989:11;;17915:8;;18059:4;;18086;;18122:15;;17915:233;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17623:533;17569:587;:::o;16019:116::-;16101:26;;-1:-1:-1;;;;;16101:18:0;;;:26;;;;;16120:6;;16101:26;;;;16120:6;16101:18;:26;;;;;;;;;;;;;;;;;;;;;16019:116;;:::o;19520:499::-;19700:8;;19668:55;;19685:4;;-1:-1:-1;;;;;19700:8:0;19711:11;19668:8;:55::i;:::-;19766:8;;-1:-1:-1;;;;;19766:8:0;:24;19798:9;19831:4;19851:11;19766:8;;19963:7;3361;3388:6;-1:-1:-1;;;;;3388:6:0;;3323:79;19963:7;19766:245;;;;;;-1:-1:-1;;;;;;19766:245:0;;;-1:-1:-1;;;;;9727:15:1;;;19766:245:0;;;9709:34:1;9759:18;;;9752:34;;;;9802:18;;;9795:34;;;;9845:18;;;9838:34;9909:15;;;9888:19;;;9881:44;19985:15:0;9941:19:1;;;9934:35;9643:19;;19766:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19520:499;;:::o;1296:278::-;1382:7;1417:12;1410:5;1402:28;;;;-1:-1:-1;;;1402:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1441:9:0;1453:5;1457:1;1453;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:356::-;3719:2;3701:21;;;3738:18;;;3731:30;3797:34;3792:2;3777:18;;3770:62;3864:2;3849:18;;3517:356::o;6315:127::-;6376:10;6371:3;6367:20;6364:1;6357:31;6407:4;6404:1;6397:15;6431:4;6428:1;6421:15;6447:128;6514:9;;;6535:11;;;6532:37;;;6549:18;;:::i;6580:125::-;6645:9;;;6666:10;;;6663:36;;;6679:18;;:::i;7066:168::-;7139:9;;;7170;;7187:15;;;7181:22;;7167:37;7157:71;;7208:18;;:::i;7239:217::-;7279:1;7305;7295:132;;7349:10;7344:3;7340:20;7337:1;7330:31;7384:4;7381:1;7374:15;7412:4;7409:1;7402:15;7295:132;-1:-1:-1;7441:9:1;;7239:217::o;7995:127::-;8056:10;8051:3;8047:20;8044:1;8037:31;8087:4;8084:1;8077:15;8111:4;8108:1;8101:15;8127:251;8197:6;8250:2;8238:9;8229:7;8225:23;8221:32;8218:52;;;8266:1;8263;8256:12;8218:52;8298:9;8292:16;8317:31;8342:5;8317:31;:::i;8383:980::-;8645:4;8693:3;8682:9;8678:19;8724:6;8713:9;8706:25;8750:2;8788:6;8783:2;8772:9;8768:18;8761:34;8831:3;8826:2;8815:9;8811:18;8804:31;8855:6;8890;8884:13;8921:6;8913;8906:22;8959:3;8948:9;8944:19;8937:26;;8998:2;8990:6;8986:15;8972:29;;9019:1;9029:195;9043:6;9040:1;9037:13;9029:195;;;9108:13;;-1:-1:-1;;;;;9104:39:1;9092:52;;9199:15;;;;9164:12;;;;9140:1;9058:9;9029:195;;;-1:-1:-1;;;;;;;9280:32:1;;;;9275:2;9260:18;;9253:60;-1:-1:-1;;;9344:3:1;9329:19;9322:35;9241:3;8383:980;-1:-1:-1;;;8383:980:1:o;9980:306::-;10068:6;10076;10084;10137:2;10125:9;10116:7;10112:23;10108:32;10105:52;;;10153:1;10150;10143:12;10105:52;10182:9;10176:16;10166:26;;10232:2;10221:9;10217:18;10211:25;10201:35;;10276:2;10265:9;10261:18;10255:25;10245:35;;9980:306;;;;;:::o
Swarm Source
ipfs://14523f7a676703f6b1839407cd1e0f89208a4ab6932e2170bb8bb9d6e18deb42
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.