Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 CHZ
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,176,613,265.167669282428174522 CHZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GrilledCheese
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-10 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); } library Address { 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, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } 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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (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); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract GrilledCheese is Context,IERC20, Ownable{ using Address for address; string private _name = "Grilled Cheese"; string private _symbol = "CHZ"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 private currentThreshold = 20; //Once the token value goes up this number can be decreased (To reduce price impact on asset) uint256 private _totalSupply = (100000000 * 10**4) * 10**_decimals; //1T supply uint256 public requiredTokensToSwap = currentThreshold * 10 ** 5 * 10 ** _decimals; //threshold of around 1000000 0.02% tokens mapping (address => uint256) private _balances; mapping (address => bool) private _excludedFromFees; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public automatedMarketMakerPairs; address _owner; address payable public marketingAddress = payable(0x00AE151397B21eEE2FbB8571C630ad16a16A496D); address payable public DevAddress = payable(0x00AE151397B21eEE2FbB8571C630ad16a16A496D); uint256 maxWalletTreshold = 3; uint256 maxTxTreshold = 1; uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; // starting 3% uint256 maxTxAmount = _totalSupply*maxTxTreshold/100;// 1% mapping (address => bool) botWallets; bool botTradeEnabled = false; uint256 private buyliqFee = 6; uint256 private buyprevLiqFee = 6; uint256 private buymktFee = 6; uint256 private buyPrevmktFee = 6; uint256 private buyDevAmount = 2; uint256 private buyprevDev = 1; uint256 private sellliqFee = 8; uint256 private sellprevLiqFee = 8; uint256 private sellmktFee = 12; uint256 private sellPrevmktFee = 12; uint256 private sellDevAmount = 4; uint256 private sellprevDev = 4; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private mktTokens = 0; uint256 private devTokens = 0; uint256 private liqTokens = 0; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event tokensSwappedDuringTokenomics(uint256 amount); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IUniswapV2Router02 _router; address public uniswapV2Pair; //Balances tracker modifier lockTheSwap{ inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(){ _balances[_msgSender()] = _totalSupply; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees _router = _uniRouter; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); emit Transfer(address(0),_msgSender(),_totalSupply); } receive() external payable{} //general token data and tracking of balances to be swapped. function getOwner()external view returns(address){ return owner(); } function currentmktTokens() external view returns (uint256){ return mktTokens; } function currentPZTokens() external view returns (uint256){ return devTokens; } function currentLiqTokens() external view returns (uint256){ return liqTokens; } function totalSupply() external view override returns (uint256){ return _totalSupply; } function balanceOf(address account) public view override returns (uint256){ return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool){ _transfer(_msgSender(),recipient,amount); return true; } function allowance(address owner, address spender) external view override returns (uint256){ return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool){ _approve(_msgSender(),spender,amount); return true; } function decimals()external view returns(uint256){ return _decimals; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory){ return _symbol; } function updateMaxTxTreshold(uint256 newVal) public onlyOwner{ maxTxTreshold = newVal; } function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{ maxWalletTreshold = newVal; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool){ require(amount <= _allowances[sender][_msgSender()], "BEP20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } //Tokenomics related functions function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{ botWallets[detectedBot] = isBot; } function currentbuyliqFee() public view returns (uint256){ return buyliqFee; } function currentbuymktfee() public view returns (uint256){ return buymktFee; } function currentbuyDevAmountfee() public view returns (uint256){ return buymktFee; } function currentsellLiqFee() public view returns (uint256){ return sellliqFee; } function currentsellmktfee() public view returns (uint256){ return sellmktFee; } function currentsellyprizepoolfee() public view returns (uint256){ return sellDevAmount; } function currentThresholdInt()public view returns (uint256){ return currentThreshold; } function isExcluded(address toCheck)public view returns (bool){ return _excludedFromFees[toCheck]; } function dayAfter() public onlyOwner{ sellliqFee = 4; sellmktFee = 6; sellDevAmount = 2; } function _transfer(address from, address to, uint256 amount) internal{ require(from != address(0), "BEP20: transfer from the zero address"); require(to != address(0), "BEP20: transfer to the zero address"); require(amount > 0,"BEP20: transfered amount must be greater than zero"); uint256 senderBalance = _balances[from]; require(senderBalance >= amount, "BEP20: transfer amount exceeds balance"); if(from != owner() && to != owner()) require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < maxWalletAmount, "MCRON: Balance exceeds wallet size!"); } uint256 inContractBalance = balanceOf(address(this)); if(inContractBalance >=requiredTokensToSwap && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled){ if(inContractBalance >= requiredTokensToSwap ){ inContractBalance = requiredTokensToSwap; swapForTokenomics(inContractBalance); } } bool takeFees = true; if(_excludedFromFees[from] || _excludedFromFees[to]) { totalFeeFortx = 0; takeFees = false; } uint256 mktAmount = 0; uint256 devAmount = 0; // Amount to be added to prize pool. uint256 liqAmount = 0; // Amount to be added to liquidity. if(takeFees){ //bot fees if(botWallets[from] == true||botWallets[to]==true){ require(botTradeEnabled,"Bots cant trade"); } //Selling fees if (automatedMarketMakerPairs[to] && to != address(_router) ){ totalFeeFortx = 0; mktAmount = amount * sellmktFee/100; liqAmount = amount * sellliqFee/100; devAmount = amount * sellDevAmount/100; totalFeeFortx = mktAmount + liqAmount + devAmount; } //Buy Fees else if(automatedMarketMakerPairs[from] && from != address(_router)) { totalFeeFortx = 0; mktAmount = amount * buymktFee/100; liqAmount = amount * buyliqFee/100; devAmount = amount * buyDevAmount/100; totalFeeFortx = mktAmount + liqAmount + devAmount; } } _balances[from] = senderBalance - amount; _balances[to] += amount - mktAmount - devAmount - liqAmount; if(liqAmount != 0) { _balances[address(this)] += totalFeeFortx; //tLiqTotal += liqAmount; liqTokens += liqAmount; devTokens += devAmount; mktTokens += mktAmount; emit Transfer(from, address(this), totalFeeFortx); } emit Transfer(from, to,amount-totalFeeFortx); } function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{ swapAndLiquify(liqTokens); swapTokensForETHmkt(mktTokens); swapTokensForDev(devTokens); emit tokensSwappedDuringTokenomics(balanceToswap); mktTokens = 0; devTokens = 0; liqTokens = 0; } function swapTokensForETHmkt(uint256 amount)private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // Accept any amount of ETH. path, marketingAddress, block.timestamp ); } function swapTokensForDev(uint256 amount)private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // Accept any amount of ETH. path, DevAddress, block.timestamp ); } function swapAndLiquify(uint256 liqTokensPassed) private { uint256 half = liqTokensPassed / 2; uint256 otherHalf = liqTokensPassed - half; uint256 initialBalance = address(this).balance; swapTokensForETH(half); uint256 newBalance = address(this).balance - (initialBalance); addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half,newBalance,otherHalf); } function swapTokensForETH(uint256 tokenAmount) private{ address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH. path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{ _approve(address(this), address(_router), tokenAmount); _router.addLiquidityETH{value:ethAmount}( address(this), tokenAmount, 0, 0, deadAddress, block.timestamp ); } function _approve(address owner,address spender, uint256 amount) internal{ require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } //Fees related functions function addToExcluded(address toExclude) public onlyOwner{ _excludedFromFees[toExclude] = true; } function removeFromExcluded(address toRemove) public onlyOwner{ _excludedFromFees[toRemove] = false; } function startPresaleStatus()public onlyOwner{ buymktFee = 0; sellmktFee =0; buyliqFee =0; sellliqFee =0; buyDevAmount =0; sellDevAmount = 0; setSwapAndLiquify(false); } function endPresaleStatus() public onlyOwner{ buymktFee = 4; buyliqFee = 10; buyDevAmount = 1; sellmktFee = 5; sellliqFee = 13; sellDevAmount = 2; setSwapAndLiquify(true); } function updateThreshold(uint newThreshold) public onlyOwner{ currentThreshold = newThreshold; } function setSwapAndLiquify(bool _enabled) public onlyOwner{ swapAndLiquifyEnabled = _enabled; } //Marketing related function setMktAddress(address newAddress) external onlyOwner{ marketingAddress = payable(newAddress); } function transferAssetsETH(address payable to, uint256 amount) internal{ to.transfer(amount); } function setDevAddress(address newAddress) external onlyOwner{ DevAddress = payable(newAddress); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updatecurrentbuyliqFee(uint256 newAmount) public onlyOwner{ buyliqFee = newAmount; } function updatecurrentbuymktfee(uint256 newAmount) public onlyOwner{ buymktFee= newAmount; } function updatecurrentbuyDevAmountfee(uint256 newAmount) public onlyOwner{ buyDevAmount= newAmount; } function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{ sellliqFee= newAmount; } function updatecurrentsellmktfee(uint256 newAmount)public onlyOwner{ sellmktFee= newAmount; } function updatecurrentsellDevfee(uint256 newAmount) public onlyOwner{ sellDevAmount= newAmount; } } interface IUniswapV2Factory { 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; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { 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 IUniswapV2Router02 is IUniswapV2Router01 { 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; }
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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[],"name":"DevAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPZTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyDevAmountfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellyprizepoolfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dayAfter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyDevAmountfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyliqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuymktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellDevfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellLiqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellmktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600e60a08190526d4772696c6c65642043686565736560901b60c0908152620000319160019190620004d5565b506040805180820190915260038082526221a42d60e91b60209092019182526200005e91600291620004d5565b506003805460ff19166012908117909155600060045560146005556200008690600a62000619565b620000979064e8d4a51000620006da565b600655600354620000ad9060ff16600a62000619565b600554620000bf90620186a0620006da565b620000cb9190620006da565b600755600d805472ae151397b21eee2fbb8571c630ad16a16a496d6001600160a01b03199182168117909255600e805490911690911790556003600f81905560016010556006546064916200012091620006da565b6200012c9190620005ad565b6011556064601054600654620001439190620006da565b6200014f9190620005ad565b6012556014805460ff19169055600660158190556016819055601781905560185560026019556001601a556008601b819055601c55600c601d819055601e556004601f8190556020556021805461ff00191690556ddead000000000000000000000000608052600060228190556023819055602455348015620001d157600080fd5b50620001dd3362000431565b6006543360009081526008602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a01559260048083019392829003018186803b1580156200023f57600080fd5b505afa15801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a91906200057b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c357600080fd5b505afa158015620002d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200057b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034757600080fd5b505af11580156200035c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038291906200057b565b602680546001600160a01b039283166001600160a01b0319918216178255600080548416815260096020526040808220805460ff1990811660019081179092553084529190922080549091168217905560258054909216858516179091559054620003ef92169062000481565b60065460405190815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506200074f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b828054620004e390620006fc565b90600052602060002090601f01602090048101928262000507576000855562000552565b82601f106200052257805160ff191683800117855562000552565b8280016001018555821562000552579182015b828111156200055257825182559160200191906001019062000535565b506200056092915062000564565b5090565b5b8082111562000560576000815560010162000565565b6000602082840312156200058e57600080fd5b81516001600160a01b0381168114620005a657600080fd5b9392505050565b600082620005cb57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000611578160001904821115620005f557620005f562000739565b808516156200060357918102915b93841c9390800290620005d5565b509250929050565b6000620005a660ff8416836000826200063557506001620006d4565b816200064457506000620006d4565b81600181146200065d5760028114620006685762000688565b6001915050620006d4565b60ff8411156200067c576200067c62000739565b50506001821b620006d4565b5060208310610133831016604e8410600b8410161715620006ad575081810a620006d4565b620006b98383620005d0565b8060001904821115620006d057620006d062000739565b0290505b92915050565b6000816000190483118215151615620006f757620006f762000739565b500290565b600181811c908216806200071157607f821691505b602082108114156200073357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c6122eb620007756000396000818161041b0152611e9801526122eb6000f3fe6080604052600436106102e85760003560e01c806389a4c1a011610190578063b4d95a93116100dc578063d7d7442f11610095578063edcf19b21161006f578063edcf19b2146108a2578063f19abf26146108c2578063f2fde38b146108d7578063f953cf3a146108f757600080fd5b8063d7d7442f14610827578063dd62ed3e14610847578063ddcf9b981461088d57600080fd5b8063b4d95a931461073e578063b62496f51461075e578063bf9eb5401461078e578063cba0e996146107ae578063d0d41fe1146107e7578063d30ff2d91461080757600080fd5b80639b136da411610149578063a6c38f5911610123578063a6c38f59146106c9578063a7a07452146106e9578063a9059cbb14610709578063b195b8391461072957600080fd5b80639b136da4146103f4578063a04bdc8114610693578063a5ece941146106a957600080fd5b806389a4c1a0146106095780638cd0260c146106295780638da5cb5b146105eb57806390f502831461064957806395d89b411461065e5780639a7a23d61461067357600080fd5b806349bd5a5e1161024f5780636573c4df11610208578063715018a6116101e2578063715018a614610596578063801527ce146105ab5780638628c23f146105cb578063893d20e8146105eb57600080fd5b80636573c4df1461052057806369d4eb871461054057806370a082311461056057600080fd5b806349bd5a5e146104825780634a0e963c146104a25780634a74bb02146104c25780634bd7ace5146104e15780635297defd146104f657806364c161631461050b57600080fd5b806322788f86116102a157806322788f86146103bf57806323b872dd146103d457806325f1072b146103f457806327c8f83514610409578063313ce567146104555780633cadd3c61461046d57600080fd5b806306fdde03146102f45780630882a8631461031f578063095ea7b31461034157806314c0eaf91461037157806318160ddd14610390578063220f6696146103a557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961090c565b6040516103169190612103565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612078565b61099e565b005b34801561034d57600080fd5b5061036161035c366004612031565b6109d6565b6040519015158152602001610316565b34801561037d57600080fd5b506023545b604051908152602001610316565b34801561039c57600080fd5b50600654610382565b3480156103b157600080fd5b506021546103619060ff1681565b3480156103cb57600080fd5b50600554610382565b3480156103e057600080fd5b506103616103ef366004611ff0565b6109ec565b34801561040057600080fd5b50601754610382565b34801561041557600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610316565b34801561046157600080fd5b5060035460ff16610382565b34801561047957600080fd5b50601f54610382565b34801561048e57600080fd5b5060265461043d906001600160a01b031681565b3480156104ae57600080fd5b5061033f6104bd366004611f41565b610ac0565b3480156104ce57600080fd5b5060215461036190610100900460ff1681565b3480156104ed57600080fd5b50601554610382565b34801561050257600080fd5b50601d54610382565b34801561051757600080fd5b50602454610382565b34801561052c57600080fd5b5061033f61053b366004612078565b610b0e565b34801561054c57600080fd5b5061033f61055b366004612078565b610b3d565b34801561056c57600080fd5b5061038261057b366004611f41565b6001600160a01b031660009081526008602052604090205490565b3480156105a257600080fd5b5061033f610b6c565b3480156105b757600080fd5b5061033f6105c636600461205d565b610ba2565b3480156105d757600080fd5b5061033f6105e6366004612078565b610be6565b3480156105f757600080fd5b506000546001600160a01b031661043d565b34801561061557600080fd5b50600e5461043d906001600160a01b031681565b34801561063557600080fd5b5061033f610644366004612078565b610c15565b34801561065557600080fd5b50601b54610382565b34801561066a57600080fd5b50610309610c44565b34801561067f57600080fd5b5061033f61068e366004611f82565b610c53565b34801561069f57600080fd5b5061038260075481565b3480156106b557600080fd5b50600d5461043d906001600160a01b031681565b3480156106d557600080fd5b5061033f6106e4366004611f82565b610d0f565b3480156106f557600080fd5b5061033f610704366004612078565b610d64565b34801561071557600080fd5b50610361610724366004612031565b610d93565b34801561073557600080fd5b5061033f610da0565b34801561074a57600080fd5b5061033f610759366004611f41565b610df3565b34801561076a57600080fd5b50610361610779366004611f41565b600b6020526000908152604090205460ff1681565b34801561079a57600080fd5b5061033f6107a9366004611f41565b610e3e565b3480156107ba57600080fd5b506103616107c9366004611f41565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156107f357600080fd5b5061033f610802366004611f41565b610e8a565b34801561081357600080fd5b5061033f610822366004612078565b610ed6565b34801561083357600080fd5b5061033f610842366004612078565b610f05565b34801561085357600080fd5b50610382610862366004611fb7565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561089957600080fd5b50602254610382565b3480156108ae57600080fd5b5061033f6108bd366004612078565b610f34565b3480156108ce57600080fd5b5061033f610f63565b3480156108e357600080fd5b5061033f6108f2366004611f41565b610f9e565b34801561090357600080fd5b5061033f611039565b60606001805461091b90612239565b80601f016020809104026020016040519081016040528092919081815260200182805461094790612239565b80156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016109c890612158565b60405180910390fd5b601555565b60006109e333848461108c565b50600192915050565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054821115610a705760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109c8565b610a7b8484846111b0565b6001600160a01b0384166000908152600a6020908152604080832033808552925290912054610ab6918691610ab1908690612222565b61108c565b5060019392505050565b6000546001600160a01b03163314610aea5760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016109c890612158565b600f55565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016109c890612158565b601955565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016109c890612158565b610ba060006118cb565b565b6000546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016109c890612158565b602180549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610c105760405162461bcd60e51b81526004016109c890612158565b601d55565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b81526004016109c890612158565b601b55565b60606002805461091b90612239565b6000546001600160a01b03163314610c7d5760405162461bcd60e51b81526004016109c890612158565b6026546001600160a01b0383811691161415610d015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109c8565b610d0b828261191b565b5050565b6000546001600160a01b03163314610d395760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b81526004016109c890612158565b601055565b60006109e33384846111b0565b6000546001600160a01b03163314610dca5760405162461bcd60e51b81526004016109c890612158565b60006017819055601d8190556015819055601b8190556019819055601f819055610ba090610ba2565b6000546001600160a01b03163314610e1d5760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b03163314610e685760405162461bcd60e51b81526004016109c890612158565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610eb45760405162461bcd60e51b81526004016109c890612158565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109c890612158565b601f55565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016109c890612158565b600555565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b81526004016109c890612158565b601755565b6000546001600160a01b03163314610f8d5760405162461bcd60e51b81526004016109c890612158565b6004601b556006601d556002601f55565b6000546001600160a01b03163314610fc85760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03811661102d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c8565b611036816118cb565b50565b6000546001600160a01b031633146110635760405162461bcd60e51b81526004016109c890612158565b6004601755600a601555600160198190556005601d55600d601b556002601f55610ba090610ba2565b6001600160a01b0383166110ee5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c8565b6001600160a01b03821661114f5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c8565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112145760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109c8565b6001600160a01b0382166112765760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109c8565b600081116112e15760405162461bcd60e51b815260206004820152603260248201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b60648201526084016109c8565b6001600160a01b038316600090815260086020526040902054818110156113595760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109c8565b6000546001600160a01b0385811691161480159061138557506000546001600160a01b03848116911614155b156113ed576012548211156113ed5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109c8565b6026546001600160a01b038481169116146114885760115482611425856001600160a01b031660009081526008602052604090205490565b61142f91906121c9565b106114885760405162461bcd60e51b815260206004820152602360248201527f4d43524f4e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016109c8565b3060009081526008602052604090205460075481108015906114ad575060215460ff16155b80156114c757506026546001600160a01b03868116911614155b80156114da5750602154610100900460ff165b156114f55760075481106114f557506007546114f58161196f565b6001600160a01b03851660009081526009602052604090205460019060ff168061153757506001600160a01b03851660009081526009602052604090205460ff165b156115455750600060048190555b60008060008315611740576001600160a01b03891660009081526013602052604090205460ff1615156001148061159957506001600160a01b03881660009081526013602052604090205460ff1615156001145b156115e25760145460ff166115e25760405162461bcd60e51b815260206004820152600f60248201526e426f74732063616e7420747261646560881b60448201526064016109c8565b6001600160a01b0388166000908152600b602052604090205460ff16801561161857506025546001600160a01b03898116911614155b15611693576000600455601d546064906116329089612203565b61163c91906121e1565b92506064601b548861164e9190612203565b61165891906121e1565b90506064601f548861166a9190612203565b61167491906121e1565b91508161168182856121c9565b61168b91906121c9565b600455611740565b6001600160a01b0389166000908152600b602052604090205460ff1680156116c957506025546001600160a01b038a8116911614155b156117405760006004556017546064906116e39089612203565b6116ed91906121e1565b92506064601554886116ff9190612203565b61170991906121e1565b905060646019548861171b9190612203565b61172591906121e1565b91508161173282856121c9565b61173c91906121c9565b6004555b61174a8787612222565b6001600160a01b038a16600090815260086020526040902055808261176f858a612222565b6117799190612222565b6117839190612222565b6001600160a01b038916600090815260086020526040812080549091906117ab9084906121c9565b9091555050801561186c5760045430600090815260086020526040812080549091906117d89084906121c9565b9250508190555080602460008282546117f191906121c9565b92505081905550816023600082825461180a91906121c9565b92505081905550826022600082825461182391906121c9565b909155505060045460405190815230906001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a6118af9190612222565b60405190815260200160405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6021805460ff19166001179055602454611988906119ed565b611993602254611a74565b61199e602354611be1565b6040518181527f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019049060200160405180910390a1506000602281905560238190556024556021805460ff19169055565b60006119fa6002836121e1565b90506000611a088284612222565b905047611a1483611d18565b6000611a208247612222565b9050611a2c8382611e4b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa957611aa961228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611afd57600080fd5b505afa158015611b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b359190611f65565b81600181518110611b4857611b4861228a565b6001600160a01b039283166020918202929092010152602554611b6e913091168461108c565b602554600d5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611bab9287926000928892911690429060040161218d565b600060405180830381600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1657611c1661228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c6a57600080fd5b505afa158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190611f65565b81600181518110611cb557611cb561228a565b6001600160a01b039283166020918202929092010152602554611cdb913091168461108c565b602554600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611bab9287926000928892911690429060040161218d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d4d57611d4d61228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611da157600080fd5b505afa158015611db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd99190611f65565b81600181518110611dec57611dec61228a565b6001600160a01b039283166020918202929092010152602554611e12913091168461108c565b60255460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bab90859060009086903090429060040161218d565b602554611e639030906001600160a01b03168461108c565b60255460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660848301524260a48301529091169063f305d71990839060c4016060604051808303818588803b158015611eec57600080fd5b505af1158015611f00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f259190612091565b5050505050565b80358015158114611f3c57600080fd5b919050565b600060208284031215611f5357600080fd5b8135611f5e816122a0565b9392505050565b600060208284031215611f7757600080fd5b8151611f5e816122a0565b60008060408385031215611f9557600080fd5b8235611fa0816122a0565b9150611fae60208401611f2c565b90509250929050565b60008060408385031215611fca57600080fd5b8235611fd5816122a0565b91506020830135611fe5816122a0565b809150509250929050565b60008060006060848603121561200557600080fd5b8335612010816122a0565b92506020840135612020816122a0565b929592945050506040919091013590565b6000806040838503121561204457600080fd5b823561204f816122a0565b946020939093013593505050565b60006020828403121561206f57600080fd5b611f5e82611f2c565b60006020828403121561208a57600080fd5b5035919050565b6000806000606084860312156120a657600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156120f85781516001600160a01b0316875295820195908201906001016120d3565b509495945050505050565b600060208083528351808285015260005b8181101561213057858101830151858201604001528201612114565b81811115612142576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b85815284602082015260a0604082015260006121ac60a08301866120bf565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156121dc576121dc612274565b500190565b6000826121fe57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561221d5761221d612274565b500290565b60008282101561223457612234612274565b500390565b600181811c9082168061224d57607f821691505b6020821081141561226e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461103657600080fdfea2646970667358221220e4c070ecb8e20186e13bff9af01112fd7cc72db53a17d2d8d6620cc4607b815e64736f6c63430008060033
Deployed Bytecode
0x6080604052600436106102e85760003560e01c806389a4c1a011610190578063b4d95a93116100dc578063d7d7442f11610095578063edcf19b21161006f578063edcf19b2146108a2578063f19abf26146108c2578063f2fde38b146108d7578063f953cf3a146108f757600080fd5b8063d7d7442f14610827578063dd62ed3e14610847578063ddcf9b981461088d57600080fd5b8063b4d95a931461073e578063b62496f51461075e578063bf9eb5401461078e578063cba0e996146107ae578063d0d41fe1146107e7578063d30ff2d91461080757600080fd5b80639b136da411610149578063a6c38f5911610123578063a6c38f59146106c9578063a7a07452146106e9578063a9059cbb14610709578063b195b8391461072957600080fd5b80639b136da4146103f4578063a04bdc8114610693578063a5ece941146106a957600080fd5b806389a4c1a0146106095780638cd0260c146106295780638da5cb5b146105eb57806390f502831461064957806395d89b411461065e5780639a7a23d61461067357600080fd5b806349bd5a5e1161024f5780636573c4df11610208578063715018a6116101e2578063715018a614610596578063801527ce146105ab5780638628c23f146105cb578063893d20e8146105eb57600080fd5b80636573c4df1461052057806369d4eb871461054057806370a082311461056057600080fd5b806349bd5a5e146104825780634a0e963c146104a25780634a74bb02146104c25780634bd7ace5146104e15780635297defd146104f657806364c161631461050b57600080fd5b806322788f86116102a157806322788f86146103bf57806323b872dd146103d457806325f1072b146103f457806327c8f83514610409578063313ce567146104555780633cadd3c61461046d57600080fd5b806306fdde03146102f45780630882a8631461031f578063095ea7b31461034157806314c0eaf91461037157806318160ddd14610390578063220f6696146103a557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961090c565b6040516103169190612103565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612078565b61099e565b005b34801561034d57600080fd5b5061036161035c366004612031565b6109d6565b6040519015158152602001610316565b34801561037d57600080fd5b506023545b604051908152602001610316565b34801561039c57600080fd5b50600654610382565b3480156103b157600080fd5b506021546103619060ff1681565b3480156103cb57600080fd5b50600554610382565b3480156103e057600080fd5b506103616103ef366004611ff0565b6109ec565b34801561040057600080fd5b50601754610382565b34801561041557600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b039091168152602001610316565b34801561046157600080fd5b5060035460ff16610382565b34801561047957600080fd5b50601f54610382565b34801561048e57600080fd5b5060265461043d906001600160a01b031681565b3480156104ae57600080fd5b5061033f6104bd366004611f41565b610ac0565b3480156104ce57600080fd5b5060215461036190610100900460ff1681565b3480156104ed57600080fd5b50601554610382565b34801561050257600080fd5b50601d54610382565b34801561051757600080fd5b50602454610382565b34801561052c57600080fd5b5061033f61053b366004612078565b610b0e565b34801561054c57600080fd5b5061033f61055b366004612078565b610b3d565b34801561056c57600080fd5b5061038261057b366004611f41565b6001600160a01b031660009081526008602052604090205490565b3480156105a257600080fd5b5061033f610b6c565b3480156105b757600080fd5b5061033f6105c636600461205d565b610ba2565b3480156105d757600080fd5b5061033f6105e6366004612078565b610be6565b3480156105f757600080fd5b506000546001600160a01b031661043d565b34801561061557600080fd5b50600e5461043d906001600160a01b031681565b34801561063557600080fd5b5061033f610644366004612078565b610c15565b34801561065557600080fd5b50601b54610382565b34801561066a57600080fd5b50610309610c44565b34801561067f57600080fd5b5061033f61068e366004611f82565b610c53565b34801561069f57600080fd5b5061038260075481565b3480156106b557600080fd5b50600d5461043d906001600160a01b031681565b3480156106d557600080fd5b5061033f6106e4366004611f82565b610d0f565b3480156106f557600080fd5b5061033f610704366004612078565b610d64565b34801561071557600080fd5b50610361610724366004612031565b610d93565b34801561073557600080fd5b5061033f610da0565b34801561074a57600080fd5b5061033f610759366004611f41565b610df3565b34801561076a57600080fd5b50610361610779366004611f41565b600b6020526000908152604090205460ff1681565b34801561079a57600080fd5b5061033f6107a9366004611f41565b610e3e565b3480156107ba57600080fd5b506103616107c9366004611f41565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156107f357600080fd5b5061033f610802366004611f41565b610e8a565b34801561081357600080fd5b5061033f610822366004612078565b610ed6565b34801561083357600080fd5b5061033f610842366004612078565b610f05565b34801561085357600080fd5b50610382610862366004611fb7565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561089957600080fd5b50602254610382565b3480156108ae57600080fd5b5061033f6108bd366004612078565b610f34565b3480156108ce57600080fd5b5061033f610f63565b3480156108e357600080fd5b5061033f6108f2366004611f41565b610f9e565b34801561090357600080fd5b5061033f611039565b60606001805461091b90612239565b80601f016020809104026020016040519081016040528092919081815260200182805461094790612239565b80156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016109c890612158565b60405180910390fd5b601555565b60006109e333848461108c565b50600192915050565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054821115610a705760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109c8565b610a7b8484846111b0565b6001600160a01b0384166000908152600a6020908152604080832033808552925290912054610ab6918691610ab1908690612222565b61108c565b5060019392505050565b6000546001600160a01b03163314610aea5760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016109c890612158565b600f55565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016109c890612158565b601955565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016109c890612158565b610ba060006118cb565b565b6000546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016109c890612158565b602180549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610c105760405162461bcd60e51b81526004016109c890612158565b601d55565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b81526004016109c890612158565b601b55565b60606002805461091b90612239565b6000546001600160a01b03163314610c7d5760405162461bcd60e51b81526004016109c890612158565b6026546001600160a01b0383811691161415610d015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109c8565b610d0b828261191b565b5050565b6000546001600160a01b03163314610d395760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b81526004016109c890612158565b601055565b60006109e33384846111b0565b6000546001600160a01b03163314610dca5760405162461bcd60e51b81526004016109c890612158565b60006017819055601d8190556015819055601b8190556019819055601f819055610ba090610ba2565b6000546001600160a01b03163314610e1d5760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b03163314610e685760405162461bcd60e51b81526004016109c890612158565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610eb45760405162461bcd60e51b81526004016109c890612158565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109c890612158565b601f55565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016109c890612158565b600555565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b81526004016109c890612158565b601755565b6000546001600160a01b03163314610f8d5760405162461bcd60e51b81526004016109c890612158565b6004601b556006601d556002601f55565b6000546001600160a01b03163314610fc85760405162461bcd60e51b81526004016109c890612158565b6001600160a01b03811661102d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c8565b611036816118cb565b50565b6000546001600160a01b031633146110635760405162461bcd60e51b81526004016109c890612158565b6004601755600a601555600160198190556005601d55600d601b556002601f55610ba090610ba2565b6001600160a01b0383166110ee5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c8565b6001600160a01b03821661114f5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c8565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112145760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109c8565b6001600160a01b0382166112765760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109c8565b600081116112e15760405162461bcd60e51b815260206004820152603260248201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b60648201526084016109c8565b6001600160a01b038316600090815260086020526040902054818110156113595760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109c8565b6000546001600160a01b0385811691161480159061138557506000546001600160a01b03848116911614155b156113ed576012548211156113ed5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109c8565b6026546001600160a01b038481169116146114885760115482611425856001600160a01b031660009081526008602052604090205490565b61142f91906121c9565b106114885760405162461bcd60e51b815260206004820152602360248201527f4d43524f4e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016109c8565b3060009081526008602052604090205460075481108015906114ad575060215460ff16155b80156114c757506026546001600160a01b03868116911614155b80156114da5750602154610100900460ff165b156114f55760075481106114f557506007546114f58161196f565b6001600160a01b03851660009081526009602052604090205460019060ff168061153757506001600160a01b03851660009081526009602052604090205460ff165b156115455750600060048190555b60008060008315611740576001600160a01b03891660009081526013602052604090205460ff1615156001148061159957506001600160a01b03881660009081526013602052604090205460ff1615156001145b156115e25760145460ff166115e25760405162461bcd60e51b815260206004820152600f60248201526e426f74732063616e7420747261646560881b60448201526064016109c8565b6001600160a01b0388166000908152600b602052604090205460ff16801561161857506025546001600160a01b03898116911614155b15611693576000600455601d546064906116329089612203565b61163c91906121e1565b92506064601b548861164e9190612203565b61165891906121e1565b90506064601f548861166a9190612203565b61167491906121e1565b91508161168182856121c9565b61168b91906121c9565b600455611740565b6001600160a01b0389166000908152600b602052604090205460ff1680156116c957506025546001600160a01b038a8116911614155b156117405760006004556017546064906116e39089612203565b6116ed91906121e1565b92506064601554886116ff9190612203565b61170991906121e1565b905060646019548861171b9190612203565b61172591906121e1565b91508161173282856121c9565b61173c91906121c9565b6004555b61174a8787612222565b6001600160a01b038a16600090815260086020526040902055808261176f858a612222565b6117799190612222565b6117839190612222565b6001600160a01b038916600090815260086020526040812080549091906117ab9084906121c9565b9091555050801561186c5760045430600090815260086020526040812080549091906117d89084906121c9565b9250508190555080602460008282546117f191906121c9565b92505081905550816023600082825461180a91906121c9565b92505081905550826022600082825461182391906121c9565b909155505060045460405190815230906001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a6118af9190612222565b60405190815260200160405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6021805460ff19166001179055602454611988906119ed565b611993602254611a74565b61199e602354611be1565b6040518181527f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019049060200160405180910390a1506000602281905560238190556024556021805460ff19169055565b60006119fa6002836121e1565b90506000611a088284612222565b905047611a1483611d18565b6000611a208247612222565b9050611a2c8382611e4b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa957611aa961228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611afd57600080fd5b505afa158015611b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b359190611f65565b81600181518110611b4857611b4861228a565b6001600160a01b039283166020918202929092010152602554611b6e913091168461108c565b602554600d5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611bab9287926000928892911690429060040161218d565b600060405180830381600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1657611c1661228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c6a57600080fd5b505afa158015611c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca29190611f65565b81600181518110611cb557611cb561228a565b6001600160a01b039283166020918202929092010152602554611cdb913091168461108c565b602554600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611bab9287926000928892911690429060040161218d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d4d57611d4d61228a565b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611da157600080fd5b505afa158015611db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd99190611f65565b81600181518110611dec57611dec61228a565b6001600160a01b039283166020918202929092010152602554611e12913091168461108c565b60255460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bab90859060009086903090429060040161218d565b602554611e639030906001600160a01b03168461108c565b60255460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660848301524260a48301529091169063f305d71990839060c4016060604051808303818588803b158015611eec57600080fd5b505af1158015611f00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f259190612091565b5050505050565b80358015158114611f3c57600080fd5b919050565b600060208284031215611f5357600080fd5b8135611f5e816122a0565b9392505050565b600060208284031215611f7757600080fd5b8151611f5e816122a0565b60008060408385031215611f9557600080fd5b8235611fa0816122a0565b9150611fae60208401611f2c565b90509250929050565b60008060408385031215611fca57600080fd5b8235611fd5816122a0565b91506020830135611fe5816122a0565b809150509250929050565b60008060006060848603121561200557600080fd5b8335612010816122a0565b92506020840135612020816122a0565b929592945050506040919091013590565b6000806040838503121561204457600080fd5b823561204f816122a0565b946020939093013593505050565b60006020828403121561206f57600080fd5b611f5e82611f2c565b60006020828403121561208a57600080fd5b5035919050565b6000806000606084860312156120a657600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156120f85781516001600160a01b0316875295820195908201906001016120d3565b509495945050505050565b600060208083528351808285015260005b8181101561213057858101830151858201604001528201612114565b81811115612142576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b85815284602082015260a0604082015260006121ac60a08301866120bf565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156121dc576121dc612274565b500190565b6000826121fe57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561221d5761221d612274565b500290565b60008282101561223457612234612274565b500390565b600181811c9082168061224d57607f821691505b6020821081141561226e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461103657600080fdfea2646970667358221220e4c070ecb8e20186e13bff9af01112fd7cc72db53a17d2d8d6620cc4607b815e64736f6c63430008060033
Deployed Bytecode Sourcemap
5417:15156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10153:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19847:111;;;;;;;;;;-1:-1:-1;19847:111:0;;;;;:::i;:::-;;:::i;:::-;;9887:168;;;;;;;;;;-1:-1:-1;9887:168:0;;;;;:::i;:::-;;:::i;:::-;;;4865:14:1;;4858:22;4840:41;;4828:2;4813:18;9887:168:0;4795:92:1;9084:98:0;;;;;;;;;;-1:-1:-1;9164:9:0;;9084:98;;;10844:25:1;;;10832:2;10817:18;9084:98:0;10799:76:1;9297:106:0;;;;;;;;;;-1:-1:-1;9382:12:0;;9297:106;;7269:28;;;;;;;;;;-1:-1:-1;7269:28:0;;;;;;;;11789:101;;;;;;;;;;-1:-1:-1;11866:16:0;;11789:101;;10566:388;;;;;;;;;;-1:-1:-1;10566:388:0;;;;;:::i;:::-;;:::i;11355:102::-;;;;;;;;;;-1:-1:-1;11440:9:0;;11355:102;;7352:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3820:32:1;;;3802:51;;3790:2;3775:18;7352:81:0;3757:102:1;10063:84:0;;;;;;;;;;-1:-1:-1;10130:9:0;;;;10063:84;;11675:108;;;;;;;;;;-1:-1:-1;11762:13:0;;11675:108;;7889:28;;;;;;;;;;-1:-1:-1;7889:28:0;;;;-1:-1:-1;;;;;7889:28:0;;;18015:114;;;;;;;;;;-1:-1:-1;18015:114:0;;;;;:::i;:::-;;:::i;7304:41::-;;;;;;;;;;-1:-1:-1;7304:41:0;;;;;;;;;;;11151:96;;;;;;;;;;-1:-1:-1;11230:9:0;;11151:96;;11571:98;;;;;;;;;;-1:-1:-1;11651:10:0;;11571:98;;9189:99;;;;;;;;;;-1:-1:-1;9270:9:0;;9189:99;;10446:112;;;;;;;;;;-1:-1:-1;10446:112:0;;;;;:::i;:::-;;:::i;20081:120::-;;;;;;;;;;-1:-1:-1;20081:120:0;;;;;:::i;:::-;;:::i;9414:118::-;;;;;;;;;;-1:-1:-1;9414:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;9506:18:0;9480:7;9506:18;;;:9;:18;;;;;;;9414:118;4782:94;;;;;;;;;;;;;:::i;18893:113::-;;;;;;;;;;-1:-1:-1;18893:113:0;;;;;:::i;:::-;;:::i;20330:112::-;;;;;;;;;;-1:-1:-1;20330:112:0;;;;;:::i;:::-;;:::i;8886:86::-;;;;;;;;;;-1:-1:-1;8927:7:0;4204:6;-1:-1:-1;;;;;4204:6:0;8886:86;;6394:87;;;;;;;;;;-1:-1:-1;6394:87:0;;;;-1:-1:-1;;;;;6394:87:0;;;20211:113;;;;;;;;;;-1:-1:-1;20211:113:0;;;;;:::i;:::-;;:::i;11467:98::-;;;;;;;;;;-1:-1:-1;11547:10:0;;11467:98;;10235:88;;;;;;;;;;;;;:::i;19405:242::-;;;;;;;;;;-1:-1:-1;19405:242:0;;;;;:::i;:::-;;:::i;5886:82::-;;;;;;;;;;;;;;;;6294:93;;;;;;;;;;-1:-1:-1;6294:93:0;;;;-1:-1:-1;;;;;6294:93:0;;;11015:130;;;;;;;;;;-1:-1:-1;11015:130:0;;;;;:::i;:::-;;:::i;10335:104::-;;;;;;;;;;-1:-1:-1;10335:104:0;;;;;:::i;:::-;;:::i;9543:176::-;;;;;;;;;;-1:-1:-1;9543:176:0;;;;;:::i;:::-;;:::i;18267:249::-;;;;;;;;;;;;;:::i;18137:116::-;;;;;;;;;;-1:-1:-1;18137:116:0;;;;;:::i;:::-;;:::i;6208:58::-;;;;;;;;;;-1:-1:-1;6208:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19044:118;;;;;;;;;;-1:-1:-1;19044:118:0;;;;;:::i;:::-;;:::i;11896:::-;;;;;;;;;;-1:-1:-1;11896:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;11980:26:0;11953:4;11980:26;;;:17;:26;;;;;;;;;11896:118;19287:112;;;;;;;;;;-1:-1:-1;19287:112:0;;;;;:::i;:::-;;:::i;20454:116::-;;;;;;;;;;-1:-1:-1;20454:116:0;;;;;:::i;:::-;;:::i;18773:112::-;;;;;;;;;;-1:-1:-1;18773:112:0;;;;;:::i;:::-;;:::i;9730:148::-;;;;;;;;;;-1:-1:-1;9730:148:0;;;;;:::i;:::-;-1:-1:-1;;;;;9843:18:0;;;9813:7;9843:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9730:148;8978:99;;;;;;;;;;-1:-1:-1;9059:9:0;;8978:99;;19964:111;;;;;;;;;;-1:-1:-1;19964:111:0;;;;;:::i;:::-;;:::i;12020:154::-;;;;;;;;;;;;;:::i;5031:192::-;;;;;;;;;;-1:-1:-1;5031:192:0;;;;;:::i;:::-;;:::i;18522:243::-;;;;;;;;;;;;;:::i;10153:76::-;10192:13;10219:5;10212:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10153:76;:::o;19847:111::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;;;;;;;;;19929:9:::1;:21:::0;19847:111::o;9887:168::-;9964:4;9984:37;171:10;10006:7;10014:6;9984:8;:37::i;:::-;-1:-1:-1;10043:4:0;9887:168;;;;:::o;10566:388::-;-1:-1:-1;;;;;10732:19:0;;10698:4;10732:19;;;:11;:19;;;;;;;;171:10;10732:33;;;;;;;;10722:43;;;10714:96;;;;-1:-1:-1;;;10714:96:0;;7759:2:1;10714:96:0;;;7741:21:1;7798:2;7778:18;;;7771:30;7837:34;7817:18;;;7810:62;-1:-1:-1;;;7888:18:1;;;7881:38;7936:19;;10714:96:0;7731:230:1;10714:96:0;10815:36;10825:6;10833:9;10844:6;10815:9;:36::i;:::-;-1:-1:-1;;;;;10887:19:0;;;;;;:11;:19;;;;;;;;171:10;10887:33;;;;;;;;;10856:74;;10865:6;;10887:42;;10923:6;;10887:42;:::i;:::-;10856:8;:74::i;:::-;-1:-1:-1;10942:4:0;10566:388;;;;;:::o;18015:114::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18086:28:0::1;;::::0;;;:17:::1;:28;::::0;;;;:35;;-1:-1:-1;;18086:35:0::1;18117:4;18086:35;::::0;;18015:114::o;10446:112::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10522:17:::1;:26:::0;10446:112::o;20081:120::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20170:12:::1;:23:::0;20081:120::o;4782:94::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;4847:21:::1;4865:1;4847:9;:21::i;:::-;4782:94::o:0;18893:113::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18966:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;18966:32:0;;::::1;::::0;;;::::1;::::0;;18893:113::o;20330:112::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20413:10:::1;:21:::0;20330:112::o;20211:113::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20295:10:::1;:21:::0;20211:113::o;10235:88::-;10276:13;10308:7;10301:14;;;;;:::i;19405:242::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;19512:13:::1;::::0;-1:-1:-1;;;;;19504:21:0;;::::1;19512:13:::0;::::1;19504:21;;19496:91;;;::::0;-1:-1:-1;;;19496:91:0;;7333:2:1;19496:91:0::1;::::0;::::1;7315:21:1::0;7372:2;7352:18;;;7345:30;7411:34;7391:18;;;7384:62;7482:27;7462:18;;;7455:55;7527:19;;19496:91:0::1;7305:247:1::0;19496:91:0::1;19598:41;19627:4;19633:5;19598:28;:41::i;:::-;19405:242:::0;;:::o;11015:130::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11106:23:0;;;::::1;;::::0;;;:10:::1;:23;::::0;;;;:31;;-1:-1:-1;;11106:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11015:130::o;10335:104::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10407:13:::1;:22:::0;10335:104::o;9543:176::-;9623:4;9643:40;171:10;9666:9;9676:6;9643:9;:40::i;18267:249::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18345:1:::1;18333:9;:13:::0;;;18357:10:::1;:13:::0;;;18381:9:::1;:12:::0;;;18404:10:::1;:13:::0;;;18428:12:::1;:15:::0;;;18454:13:::1;:17:::0;;;18482:24:::1;::::0;:17:::1;:24::i;18137:116::-:0;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18210:27:0::1;18240:5;18210:27:::0;;;:17:::1;:27;::::0;;;;:35;;-1:-1:-1;;18210:35:0::1;::::0;;18137:116::o;19044:118::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;19116:16:::1;:38:::0;;-1:-1:-1;;;;;;19116:38:0::1;-1:-1:-1::0;;;;;19116:38:0;;;::::1;::::0;;;::::1;::::0;;19044:118::o;19287:112::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;19359:10:::1;:32:::0;;-1:-1:-1;;;;;;19359:32:0::1;-1:-1:-1::0;;;;;19359:32:0;;;::::1;::::0;;;::::1;::::0;;19287:112::o;20454:116::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20538:13:::1;:24:::0;20454:116::o;18773:112::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18844:16:::1;:31:::0;18773:112::o;19964:111::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20047:9:::1;:20:::0;19964:111::o;12020:154::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;12080:1:::1;12067:10;:14:::0;12115:1:::1;12102:10;:14:::0;12153:1:::1;12137:13;:17:::0;12020:154::o;5031:192::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:22:0;::::1;5112:73;;;::::0;-1:-1:-1;;;5112:73:0;;6926:2:1;5112:73:0::1;::::0;::::1;6908:21:1::0;6965:2;6945:18;;;6938:30;7004:34;6984:18;;;6977:62;-1:-1:-1;;;7055:18:1;;;7048:36;7101:19;;5112:73:0::1;6898:228:1::0;5112:73:0::1;5196:19;5206:8;5196:9;:19::i;:::-;5031:192:::0;:::o;18522:243::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;171:10;4351:23;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18589:1:::1;18577:9;:13:::0;18613:2:::1;18601:9;:14:::0;18641:1:::1;18626:12;:16:::0;;;18668:1:::1;18655:10;:14:::0;18693:2:::1;18680:10;:15:::0;-1:-1:-1;18706:13:0::1;:17:::0;18734:23:::1;::::0;:17:::1;:23::i;17649:322::-:0;-1:-1:-1;;;;;17741:19:0;;17733:68;;;;-1:-1:-1;;;17733:68:0;;6521:2:1;17733:68:0;;;6503:21:1;6560:2;6540:18;;;6533:30;6599:34;6579:18;;;6572:62;-1:-1:-1;;;6650:18:1;;;6643:34;6694:19;;17733:68:0;6493:226:1;17733:68:0;-1:-1:-1;;;;;17814:21:0;;17806:68;;;;-1:-1:-1;;;17806:68:0;;10497:2:1;17806:68:0;;;10479:21:1;10536:2;10516:18;;;10509:30;10575:34;10555:18;;;10548:62;-1:-1:-1;;;10626:18:1;;;10619:32;10668:19;;17806:68:0;10469:224:1;17806:68:0;-1:-1:-1;;;;;17881:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17927:32;;10844:25:1;;;17927:32:0;;10817:18:1;17927:32:0;;;;;;;17649:322;;;:::o;12182:3220::-;-1:-1:-1;;;;;12270:18:0;;12262:68;;;;-1:-1:-1;;;12262:68:0;;6115:2:1;12262:68:0;;;6097:21:1;6154:2;6134:18;;;6127:30;6193:34;6173:18;;;6166:62;-1:-1:-1;;;6244:18:1;;;6237:35;6289:19;;12262:68:0;6087:227:1;12262:68:0;-1:-1:-1;;;;;12343:16:0;;12335:64;;;;-1:-1:-1;;;12335:64:0;;9689:2:1;12335:64:0;;;9671:21:1;9728:2;9708:18;;;9701:30;9767:34;9747:18;;;9740:62;-1:-1:-1;;;9818:18:1;;;9811:33;9861:19;;12335:64:0;9661:225:1;12335:64:0;12427:1;12418:6;:10;12410:72;;;;-1:-1:-1;;;12410:72:0;;5696:2:1;12410:72:0;;;5678:21:1;5735:2;5715:18;;;5708:30;5774:34;5754:18;;;5747:62;-1:-1:-1;;;5825:18:1;;;5818:48;5883:19;;12410:72:0;5668:240:1;12410:72:0;-1:-1:-1;;;;;12517:15:0;;12493:21;12517:15;;;:9;:15;;;;;;12551:23;;;;12543:74;;;;-1:-1:-1;;;12543:74:0;;9282:2:1;12543:74:0;;;9264:21:1;9321:2;9301:18;;;9294:30;9360:34;9340:18;;;9333:62;-1:-1:-1;;;9411:18:1;;;9404:36;9457:19;;12543:74:0;9254:228:1;12543:74:0;4177:7;4204:6;-1:-1:-1;;;;;12631:15:0;;;4204:6;;12631:15;;;;:32;;-1:-1:-1;4177:7:0;4204:6;-1:-1:-1;;;;;12650:13:0;;;4204:6;;12650:13;;12631:32;12628:124;;;12696:11;;12686:6;:21;;12678:74;;;;-1:-1:-1;;;12678:74:0;;8168:2:1;12678:74:0;;;8150:21:1;8207:2;8187:18;;;8180:30;8246:34;8226:18;;;8219:62;-1:-1:-1;;;8297:18:1;;;8290:38;8345:19;;12678:74:0;8140:230:1;12678:74:0;12772:13;;-1:-1:-1;;;;;12766:19:0;;;12772:13;;12766:19;12763:135;;12831:15;;12822:6;12806:13;12816:2;-1:-1:-1;;;;;9506:18:0;9480:7;9506:18;;;:9;:18;;;;;;;9414:118;12806:13;:22;;;;:::i;:::-;:40;12798:88;;;;-1:-1:-1;;;12798:88:0;;10093:2:1;12798:88:0;;;10075:21:1;10132:2;10112:18;;;10105:30;10171:34;10151:18;;;10144:62;-1:-1:-1;;;10222:18:1;;;10215:33;10265:19;;12798:88:0;10065:225:1;12798:88:0;12954:4;12908:25;9506:18;;;:9;:18;;;;;;12996:20;;12976:40;;;;;:66;;-1:-1:-1;13026:16:0;;;;13025:17;12976:66;:96;;;;-1:-1:-1;13059:13:0;;-1:-1:-1;;;;;13051:21:0;;;13059:13;;13051:21;;12976:96;:126;;;;-1:-1:-1;13081:21:0;;;;;;;12976:126;12973:352;;;13146:20;;13125:17;:41;13122:188;;-1:-1:-1;13211:20:0;;13254:36;13211:20;13254:17;:36::i;:::-;-1:-1:-1;;;;;13407:23:0;;13341:13;13407:23;;;:17;:23;;;;;;13357:4;;13407:23;;;:48;;-1:-1:-1;;;;;;13434:21:0;;;;;;:17;:21;;;;;;;;13407:48;13404:160;;;-1:-1:-1;13492:1:0;13476:13;:17;;;13404:160;13578:17;13614;13681;13759:8;13756:1125;;;-1:-1:-1;;;;;13854:16:0;;;;;;:10;:16;;;;;;;;:24;;:16;:24;;:46;;-1:-1:-1;;;;;;13880:14:0;;;;;;:10;:14;;;;;;;;:20;;:14;:20;13854:46;13851:134;;;13931:15;;;;13923:42;;;;-1:-1:-1;;;13923:42:0;;8577:2:1;13923:42:0;;;8559:21:1;8616:2;8596:18;;;8589:30;-1:-1:-1;;;8635:18:1;;;8628:45;8690:18;;13923:42:0;8549:165:1;13923:42:0;-1:-1:-1;;;;;14039:29:0;;;;;;:25;:29;;;;;;;;:55;;;;-1:-1:-1;14086:7:0;;-1:-1:-1;;;;;14072:22:0;;;14086:7;;14072:22;;14039:55;14035:811;;;14139:1;14123:13;:17;14188:10;;14199:3;;14179:19;;:6;:19;:::i;:::-;:23;;;;:::i;:::-;14167:35;;14261:3;14250:10;;14241:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;14229:35;;14326:3;14312:13;;14303:6;:22;;;;:::i;:::-;:26;;;;:::i;:::-;14291:38;-1:-1:-1;14291:38:0;14372:21;14384:9;14372;:21;:::i;:::-;:33;;;;:::i;:::-;14356:13;:49;14035:811;;;-1:-1:-1;;;;;14479:31:0;;;;;;:25;:31;;;;;;;;:59;;;;-1:-1:-1;14530:7:0;;-1:-1:-1;;;;;14514:24:0;;;14530:7;;14514:24;;14479:59;14476:370;;;14579:1;14563:13;:17;14624:9;;14634:3;;14615:18;;:6;:18;:::i;:::-;:22;;;;:::i;:::-;14603:34;;14691:3;14681:9;;14672:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;14660:34;;14751:3;14738:12;;14729:6;:21;;;;:::i;:::-;:25;;;;:::i;:::-;14717:37;-1:-1:-1;14717:37:0;14793:21;14805:9;14793;:21;:::i;:::-;:33;;;;:::i;:::-;14777:13;:49;14476:370;14915:22;14931:6;14915:13;:22;:::i;:::-;-1:-1:-1;;;;;14897:15:0;;;;;;:9;:15;;;;;:40;15002:9;14990;14969:18;14978:9;14969:6;:18;:::i;:::-;:30;;;;:::i;:::-;:42;;;;:::i;:::-;-1:-1:-1;;;;;14952:13:0;;;;;;:9;:13;;;;;:59;;:13;;;:59;;;;;:::i;:::-;;;;-1:-1:-1;;15029:14:0;;15026:286;;15079:13;;15069:4;15051:24;;;;:9;:24;;;;;:41;;:24;;;:41;;15079:13;;15051:41;:::i;:::-;;;;;;;;15150:9;15137;;:22;;;;;;;:::i;:::-;;;;;;;;15187:9;15174;;:22;;;;;;;:::i;:::-;;;;;;;;15224:9;15211;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;15274:13:0;;15244:44;;10844:25:1;;;15267:4:0;;-1:-1:-1;;;;;15244:44:0;;;;;10832:2:1;10817:18;15244:44:0;;;;;;;15026:286;15346:2;-1:-1:-1;;;;;15331:39:0;15340:4;-1:-1:-1;;;;;15331:39:0;;15356:13;;15349:6;:20;;;;:::i;:::-;15331:39;;10844:25:1;;;10832:2;10817:18;15331:39:0;;;;;;;12251:3151;;;;;;12182:3220;;;:::o;5231:173::-;5287:16;5306:6;;-1:-1:-1;;;;;5323:17:0;;;-1:-1:-1;;;;;;5323:17:0;;;;;;5356:40;;5306:6;;;;;;;5356:40;;5287:16;5356:40;5276:128;5231:173;:::o;19653:188::-;-1:-1:-1;;;;;19736:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;19736:39:0;;;;;;;;;;19793:40;;19736:39;;:31;19793:40;;;19653:188;;:::o;15408:342::-;7977:16;:23;;-1:-1:-1;;7977:23:0;7996:4;7977:23;;;15503:9:::1;::::0;15488:25:::1;::::0;:14:::1;:25::i;:::-;15524:30;15544:9;;15524:19;:30::i;:::-;15565:27;15582:9;;15565:16;:27::i;:::-;15608:44;::::0;10844:25:1;;;15608:44:0::1;::::0;10832:2:1;10817:18;15608:44:0::1;;;;;;;-1:-1:-1::0;15675:1:0::1;15663:9;:13:::0;;;15687:9:::1;:13:::0;;;15711:9:::1;:13:::0;8011:16;:24;;-1:-1:-1;;8011:24:0;;;15408:342::o;16564:388::-;16626:12;16641:19;16659:1;16641:15;:19;:::i;:::-;16626:34;-1:-1:-1;16665:17:0;16685:22;16626:34;16685:15;:22;:::i;:::-;16665:42;-1:-1:-1;16737:21:0;16765:22;16782:4;16765:16;:22::i;:::-;16792:18;16813:40;16838:14;16813:21;:40;:::i;:::-;16792:61;;16861:35;16874:9;16885:10;16861:12;:35::i;:::-;16906:41;;;12264:25:1;;;12320:2;12305:18;;12298:34;;;12348:18;;;12341:34;;;16906:41:0;;12252:2:1;12237:18;16906:41:0;;;;;;;16621:331;;;;16564:388;:::o;15756:399::-;15843:16;;;15857:1;15843:16;;;;;;;;15819:21;;15843:16;;;;;;;;;;-1:-1:-1;15843:16:0;15819:40;;15882:4;15864;15869:1;15864:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15864:23:0;;;:7;;;;;;;;;;:23;;;;15902:7;;:14;;;-1:-1:-1;;;15902:14:0;;;;:7;;;;;:12;;:14;;;;;15864:7;;15902:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15892:4;15897:1;15892:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15892:24:0;;;:7;;;;;;;;;:24;15953:7;;15921:49;;15938:4;;15953:7;15963:6;15921:8;:49::i;:::-;15981:7;;16103:16;;15981:164;;-1:-1:-1;;;15981:164:0;;-1:-1:-1;;;;;15981:7:0;;;;:58;;:164;;16045:6;;15981:7;;16093:4;;16103:16;;;16125:15;;15981:164;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15808:347;15756:399;:::o;16163:390::-;16247:16;;;16261:1;16247:16;;;;;;;;16223:21;;16247:16;;;;;;;;;;-1:-1:-1;16247:16:0;16223:40;;16286:4;16268;16273:1;16268:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16268:23:0;;;:7;;;;;;;;;;:23;;;;16306:7;;:14;;;-1:-1:-1;;;16306:14:0;;;;:7;;;;;:12;;:14;;;;;16268:7;;16306:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16296:4;16301:1;16296:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16296:24:0;;;:7;;;;;;;;;:24;16357:7;;16325:49;;16342:4;;16357:7;16367:6;16325:8;:49::i;:::-;16385:7;;16507:10;;16385:158;;-1:-1:-1;;;16385:158:0;;-1:-1:-1;;;;;16385:7:0;;;;:58;;:158;;16449:6;;16385:7;;16497:4;;16507:10;;;16523:15;;16385:158;;;:::i;16960:397::-;17043:16;;;17057:1;17043:16;;;;;;;;17019:21;;17043:16;;;;;;;;;;-1:-1:-1;17043:16:0;17019:40;;17082:4;17064;17069:1;17064:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17064:23:0;;;:7;;;;;;;;;;:23;;;;17102:7;;:14;;;-1:-1:-1;;;17102:14:0;;;;:7;;;;;:12;;:14;;;;;17064:7;;17102:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17092:4;17097:1;17092:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17092:24:0;;;:7;;;;;;;;;:24;17153:7;;17121:54;;17138:4;;17153:7;17163:11;17121:8;:54::i;:::-;17186:7;;:166;;-1:-1:-1;;;17186:166:0;;-1:-1:-1;;;;;17186:7:0;;;;:58;;:166;;17250:11;;17186:7;;17303:4;;17321;;17332:15;;17186:166;;;:::i;17369:272::-;17474:7;;17442:54;;17459:4;;-1:-1:-1;;;;;17474:7:0;17484:11;17442:8;:54::i;:::-;17503:7;;:133;;-1:-1:-1;;;17503:133:0;;17557:4;17503:133;;;4429:34:1;4479:18;;;4472:34;;;-1:-1:-1;4522:18:1;;;4515:34;;;4565:18;;;4558:34;-1:-1:-1;;;;;17599:11:0;4629:15:1;;4608:19;;;4601:44;17616:15:0;4661:19:1;;;4654:35;17503:7:0;;;;:23;;17533:9;;4363:19:1;;17503:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17369:272;;:::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;307:1;304;297:12;259:2;346:9;333:23;365:31;390:5;365:31;:::i;:::-;415:5;249:177;-1:-1:-1;;;249:177:1:o;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;602:9;596:16;621:31;646:5;621:31;:::i;687:323::-;760:6;768;821:2;809:9;800:7;796:23;792:32;789:2;;;837:1;834;827:12;789:2;876:9;863:23;895:31;920:5;895:31;:::i;:::-;945:5;-1:-1:-1;969:35:1;1000:2;985:18;;969:35;:::i;:::-;959:45;;779:231;;;;;:::o;1015:388::-;1083:6;1091;1144:2;1132:9;1123:7;1119:23;1115:32;1112:2;;;1160:1;1157;1150:12;1112:2;1199:9;1186:23;1218:31;1243:5;1218:31;:::i;:::-;1268:5;-1:-1:-1;1325:2:1;1310:18;;1297:32;1338:33;1297:32;1338:33;:::i;:::-;1390:7;1380:17;;;1102:301;;;;;:::o;1408:456::-;1485:6;1493;1501;1554:2;1542:9;1533:7;1529:23;1525:32;1522:2;;;1570:1;1567;1560:12;1522:2;1609:9;1596:23;1628:31;1653:5;1628:31;:::i;:::-;1678:5;-1:-1:-1;1735:2:1;1720:18;;1707:32;1748:33;1707:32;1748:33;:::i;:::-;1512:352;;1800:7;;-1:-1:-1;;;1854:2:1;1839:18;;;;1826:32;;1512:352::o;2189:315::-;2257:6;2265;2318:2;2306:9;2297:7;2293:23;2289:32;2286:2;;;2334:1;2331;2324:12;2286:2;2373:9;2360:23;2392:31;2417:5;2392:31;:::i;:::-;2442:5;2494:2;2479:18;;;;2466:32;;-1:-1:-1;;;2276:228:1:o;2509:180::-;2565:6;2618:2;2606:9;2597:7;2593:23;2589:32;2586:2;;;2634:1;2631;2624:12;2586:2;2657:26;2673:9;2657:26;:::i;2694:180::-;2753:6;2806:2;2794:9;2785:7;2781:23;2777:32;2774:2;;;2822:1;2819;2812:12;2774:2;-1:-1:-1;2845:23:1;;2764:110;-1:-1:-1;2764:110:1:o;2879:306::-;2967:6;2975;2983;3036:2;3024:9;3015:7;3011:23;3007:32;3004:2;;;3052:1;3049;3042:12;3004:2;3081:9;3075:16;3065:26;;3131:2;3120:9;3116:18;3110:25;3100:35;;3175:2;3164:9;3160:18;3154:25;3144:35;;2994:191;;;;;:::o;3190:461::-;3243:3;3281:5;3275:12;3308:6;3303:3;3296:19;3334:4;3363:2;3358:3;3354:12;3347:19;;3400:2;3393:5;3389:14;3421:1;3431:195;3445:6;3442:1;3439:13;3431:195;;;3510:13;;-1:-1:-1;;;;;3506:39:1;3494:52;;3566:12;;;;3601:15;;;;3542:1;3460:9;3431:195;;;-1:-1:-1;3642:3:1;;3251:400;-1:-1:-1;;;;;3251:400:1:o;4892:597::-;5004:4;5033:2;5062;5051:9;5044:21;5094:6;5088:13;5137:6;5132:2;5121:9;5117:18;5110:34;5162:1;5172:140;5186:6;5183:1;5180:13;5172:140;;;5281:14;;;5277:23;;5271:30;5247:17;;;5266:2;5243:26;5236:66;5201:10;;5172:140;;;5330:6;5327:1;5324:13;5321:2;;;5400:1;5395:2;5386:6;5375:9;5371:22;5367:31;5360:42;5321:2;-1:-1:-1;5473:2:1;5452:15;-1:-1:-1;;5448:29:1;5433:45;;;;5480:2;5429:54;;5013:476;-1:-1:-1;;;5013:476:1:o;8719:356::-;8921:2;8903:21;;;8940:18;;;8933:30;8999:34;8994:2;8979:18;;8972:62;9066:2;9051:18;;8893:182::o;10880:590::-;11187:6;11176:9;11169:25;11230:6;11225:2;11214:9;11210:18;11203:34;11273:3;11268:2;11257:9;11253:18;11246:31;11150:4;11294:57;11346:3;11335:9;11331:19;11323:6;11294:57;:::i;:::-;-1:-1:-1;;;;;11387:32:1;;;;11382:2;11367:18;;11360:60;-1:-1:-1;11451:3:1;11436:19;11429:35;11286:65;11159:311;-1:-1:-1;;;11159:311:1:o;12386:128::-;12426:3;12457:1;12453:6;12450:1;12447:13;12444:2;;;12463:18;;:::i;:::-;-1:-1:-1;12499:9:1;;12434:80::o;12519:217::-;12559:1;12585;12575:2;;12629:10;12624:3;12620:20;12617:1;12610:31;12664:4;12661:1;12654:15;12692:4;12689:1;12682:15;12575:2;-1:-1:-1;12721:9:1;;12565:171::o;12741:168::-;12781:7;12847:1;12843;12839:6;12835:14;12832:1;12829:21;12824:1;12817:9;12810:17;12806:45;12803:2;;;12854:18;;:::i;:::-;-1:-1:-1;12894:9:1;;12793:116::o;12914:125::-;12954:4;12982:1;12979;12976:8;12973:2;;;12987:18;;:::i;:::-;-1:-1:-1;13024:9:1;;12963:76::o;13044:380::-;13123:1;13119:12;;;;13166;;;13187:2;;13241:4;13233:6;13229:17;13219:27;;13187:2;13294;13286:6;13283:14;13263:18;13260:38;13257:2;;;13340:10;13335:3;13331:20;13328:1;13321:31;13375:4;13372:1;13365:15;13403:4;13400:1;13393:15;13257:2;;13099:325;;;:::o;13429:127::-;13490:10;13485:3;13481:20;13478:1;13471:31;13521:4;13518:1;13511:15;13545:4;13542:1;13535:15;13561:127;13622:10;13617:3;13613:20;13610:1;13603:31;13653:4;13650:1;13643:15;13677:4;13674:1;13667:15;13825:131;-1:-1:-1;;;;;13900:31:1;;13890:42;;13880:2;;13946:1;13943;13936:12
Swarm Source
ipfs://e4c070ecb8e20186e13bff9af01112fd7cc72db53a17d2d8d6620cc4607b815e
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.