Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 SHEEBA
Holders
503
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
280,162,172.97161916424640476 SHEEBAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHEEBA
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-21 */ // 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 SHEEBA is Context,IERC20, Ownable{ using Address for address; string private _name = "SHEEBA"; string private _symbol = "SHEEBA"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 maxWalletTreshold = 5; uint256 maxTxTreshold = 5; uint256 private swapTreshold =2; 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 = _totalSupply * swapTreshold /1000; 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(0x910Ad70E105224f503067DAe10b518F73B07b5cD); address payable public prizePoolAddress = payable(0x0d5cC40d34243ae68519f6d10D0e0B61Cd297DFE); uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; // starting 3% uint256 maxTxAmount = _totalSupply*maxTxTreshold/100; mapping (address => bool) botWallets; bool botTradeEnabled = false; bool checkWalletSize = true; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private presaleAddresses; //15% buy tax 20% sell tax uint256 private buyliqFee = 0; //10 uint256 private buyprevLiqFee = 10; uint256 private buymktFee = 0;//4 uint256 private buyPrevmktFee = 4; uint256 private buyprizePool = 0;//1 uint256 private buyprevPrizePool = 1; uint256 GoldenDaycooldown = 0; bool private tradeEnabled = false; uint256 private sellliqFee = 13; uint256 private sellprevLiqFee = 13; uint256 private sellmktFee = 5; uint256 private sellPrevmktFee = 5; uint256 private sellprizePool = 2; uint256 private sellprevPrizePool = 2; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private mktTokens = 0; uint256 private prizepoolTokens = 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; _liquidityHolders[address(_router)] = true; _liquidityHolders[owner()] = true; _liquidityHolders[address(this)] = true; _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 prizepoolTokens; } 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; maxTxAmount = _totalSupply*maxTxTreshold/100;// 1% } function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{ maxWalletTreshold = newVal; maxWalletAmount = _totalSupply*maxWalletTreshold/100; } 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 goldenDay() public onlyOwner{ require(block.timestamp > GoldenDaycooldown, "You cant call golden Day more than once per day"); buyPrevmktFee = buymktFee; buyprevLiqFee = buyliqFee; buyprevPrizePool = buyprizePool; buyliqFee = 0; buymktFee = 0; buyprizePool = 0; } function goldenDayOver() public onlyOwner{ buyliqFee = buyprevLiqFee; buymktFee = buyPrevmktFee; buyprizePool = buyprevPrizePool; GoldenDaycooldown = block.timestamp + 86400; } 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 currentbuyprizepoolfee() public view returns (uint256){ return buyprizePool; } function currentsellLiqFee() public view returns (uint256){ return sellliqFee; } function currentsellmktfee() public view returns (uint256){ return sellmktFee; } function currentsellyprizepoolfee() public view returns (uint256){ return sellprizePool; } function currentThresholdInt()public view returns (uint256){ return currentThreshold; } function isExcluded(address toCheck)public view returns (bool){ return _excludedFromFees[toCheck]; } 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(tradeEnabled == false){ require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled"); } if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){ require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } 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 prizePoolAmount = 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){ totalFeeFortx = 0; mktAmount = amount * 15/100; liqAmount = amount * 75/100; prizePoolAmount = amount * 5/100; totalFeeFortx = mktAmount + liqAmount + prizePoolAmount; } //Selling fees if (automatedMarketMakerPairs[to] && to != address(_router) ){ totalFeeFortx = 0; mktAmount = amount * sellmktFee/100; liqAmount = amount * sellliqFee/100; prizePoolAmount = amount * sellprizePool/100; totalFeeFortx = mktAmount + liqAmount + prizePoolAmount; } //Buy Fees else if(automatedMarketMakerPairs[from] && from != address(_router)) { totalFeeFortx = 0; mktAmount = amount * buymktFee/100; liqAmount = amount * buyliqFee/100; prizePoolAmount = amount * buyprizePool/100; totalFeeFortx = mktAmount + liqAmount + prizePoolAmount; } } _balances[from] = senderBalance - amount; _balances[to] += amount - mktAmount - prizePoolAmount - liqAmount; if(liqAmount != 0) { _balances[address(this)] += totalFeeFortx; //tLiqTotal += liqAmount; liqTokens += liqAmount; prizepoolTokens += prizePoolAmount; mktTokens += mktAmount; emit Transfer(from, address(this), totalFeeFortx); } emit Transfer(from, to,amount-totalFeeFortx); } function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{ swapAndLiquify(liqTokens); swapTokensForETHmkt(mktTokens); sendToPrizePool(prizepoolTokens); emit tokensSwappedDuringTokenomics(balanceToswap); mktTokens = 0; prizepoolTokens = 0; liqTokens = 0; } function addLimitExempt(address newAddress)external onlyOwner{ _liquidityHolders[newAddress] = true; } 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 sendToPrizePool(uint256 amount)private { _transfer(address(this), prizePoolAddress, amount); } function unstuckTokens (IERC20 tokenToClear, address payable destination, uint256 amount) public onlyOwner{ //uint256 contractBalance = tokenToClear.balanceOf(address(this)); tokenToClear.transfer(destination, amount); } function unstuckETH(address payable destination) public onlyOwner{ uint256 ethBalance = address(this).balance; payable(destination).transfer(ethBalance); } function tradeStatus(bool status) public onlyOwner{ tradeEnabled = status; } 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,// tr 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 excludePresaleAddresses(address router, address presale) external onlyOwner { _liquidityHolders[address(router)] = true; _liquidityHolders[presale] = true; presaleAddresses[address(router)] = true; presaleAddresses[presale] = true; } function startPresaleStatus()public onlyOwner{ buymktFee = 0; sellmktFee =0; buyliqFee =0; sellliqFee =0; buyprizePool =0; sellprizePool = 0; setSwapAndLiquify(false); } function endPresaleStatus() public onlyOwner{ buymktFee = 4; buyliqFee = 10; buyprizePool = 1; sellmktFee = 5; sellliqFee = 13; sellprizePool = 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 setPrizePoolAddress(address newAddress) external onlyOwner{ prizePoolAddress = 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 updatecurrentbuyprizepoolfee(uint256 newAmount) public onlyOwner{ buyprizePool= newAmount; } function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{ sellliqFee= newAmount; } function updatecurrentsellmktfee(uint256 newAmount)public onlyOwner{ sellmktFee= newAmount; } function updatecurrentsellyprizepoolfee(uint256 newAmount) public onlyOwner{ sellprizePool= newAmount; } function currentMaxWallet() public view returns(uint256){ return maxWalletAmount; } function currentMaxTx() public view returns(uint256){ return maxTxAmount; } function updateSwapTreshold(uint256 newVal) public onlyOwner{ swapTreshold = newVal; requiredTokensToSwap = _totalSupply*swapTreshold/1000; } function currentTradeStatus() public view returns (bool){ return tradeEnabled; } function currentSwapTreshold() public view returns(uint256){ return swapTreshold; } function currentTokensToSwap() public view returns(uint256){ return requiredTokensToSwap; } } 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":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","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":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","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":"currentSwapTreshold","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":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"currentbuyprizepoolfee","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":"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":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goldenDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goldenDayOver","outputs":[],"stateMutability":"nonpayable","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":[],"name":"prizePoolAddress","outputs":[{"internalType":"address payable","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":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setPrizePoolAddress","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":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","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":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenToClear","type":"address"},{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstuckTokens","outputs":[],"stateMutability":"nonpayable","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":"newVal","type":"uint256"}],"name":"updateSwapTreshold","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":"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":"updatecurrentbuyprizepoolfee","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"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellyprizepoolfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600660a08190526553484545424160d01b60c0908152620000299160019190620005dc565b506040805180820190915260068082526553484545424160d01b60209092019182526200005991600291620005dc565b506003805460ff1916601217908190556000600455600580805560065560026007556014600855620000909060ff16600a62000743565b620000a19064e8d4a510006200082e565b6009556103e8600754600954620000b991906200082e565b620000c59190620006d5565b600a55601080546001600160a01b031990811673910ad70e105224f503067dae10b518f73b07b5cd1790915560118054909116730d5cc40d34243ae68519f6d10d0e0b61cd297dfe17905560055460095460649162000124916200082e565b620001309190620006d5565b60125560646006546009546200014791906200082e565b620001539190620006d5565b6013556015805461ffff191661010090811790915560006018819055600a601955601a8190556004601b55601c8190556001601d55601e819055601f805460ff19169055600d602081905560215560056022819055602355600260248190556025556026805461ff0019169092179091556ddead00000000000000000000000060805260278190556028819055602955348015620001f057600080fd5b5062000205620001ff62000525565b62000529565b600954600b60006200021662000525565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028d57600080fd5b505afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000682565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031157600080fd5b505afa15801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c919062000682565b6040518363ffffffff1660e01b81526004016200036b929190620006b2565b602060405180830381600087803b1580156200038657600080fd5b505af11580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000682565b602b80546001600160a01b0319166001600160a01b03929092169190911790556001600c6000620003f162000579565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c8452828120805486166001908117909155602a80548885166001600160a01b031990911617908190559092168152601693849052918220805490941681179093556200046f62000579565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526016909352912080549092166001908117909255602b54620004c59291169062000588565b620004cf62000525565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620005169190620006cc565b60405180910390a350620008a3565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b828054620005ea9062000850565b90600052602060002090601f0160209004810192826200060e576000855562000659565b82601f106200062957805160ff191683800117855562000659565b8280016001018555821562000659579182015b82811115620006595782518255916020019190600101906200063c565b50620006679291506200066b565b5090565b5b808211156200066757600081556001016200066c565b60006020828403121562000694578081fd5b81516001600160a01b0381168114620006ab578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b90815260200190565b600082620006f157634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200070a57506200073a565b8187048211156200071f576200071f6200088d565b808616156200072d57918102915b9490941c938002620006f9565b94509492505050565b6000620006ab60001960ff8516846000826200076257506001620006ab565b816200077157506000620006ab565b81600181146200078a57600281146200079557620007c9565b6001915050620006ab565b60ff841115620007a957620007a96200088d565b6001841b915084821115620007c257620007c26200088d565b50620006ab565b5060208310610133831016604e8410600b841016171562000801575081810a83811115620007fb57620007fb6200088d565b620006ab565b620008108484846001620006f6565b8086048211156200082557620008256200088d565b02949350505050565b60008160001904831182151516156200084b576200084b6200088d565b500290565b6002810460018216806200086557607f821691505b602082108114156200088757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c612c30620008c960003960008181610daf01526123eb0152612c306000f3fe6080604052600436106103bc5760003560e01c8063893d20e8116101f2578063bf9eb5401161010d578063ddcf9b98116100a0578063f2fde38b1161006f578063f2fde38b14610a12578063f7da678514610a32578063f953cf3a14610a52578063ff31e93014610a67576103c3565b8063ddcf9b98146109a8578063e1370dd3146109bd578063eb04c618146109d2578063edcf19b2146109f2576103c3565b8063d1294d4c116100dc578063d1294d4c14610933578063d15bcf0f14610953578063d7d7442f14610968578063dd62ed3e14610988576103c3565b8063bf9eb540146108be578063c5cb68a1146108de578063cb664534146108f3578063cba0e99614610913576103c3565b8063a5ece94111610185578063b195b83911610154578063b195b83914610854578063b4d95a9314610869578063b62496f514610889578063bf9b0159146108a9576103c3565b8063a5ece941146107df578063a6c38f59146107f4578063a7a0745214610814578063a9059cbb14610834576103c3565b806395d89b41116101c157806395d89b41146107805780639a7a23d6146107955780639b136da4146107b5578063a04bdc81146107ca576103c3565b8063893d20e8146107215780638cd0260c146107365780638da5cb5b1461075657806390f502831461076b576103c3565b8063425ebf48116102e257806364c161631161027557806370a082311161024457806370a08231146106ac578063715018a6146106cc578063801527ce146106e15780638628c23f14610701576103c3565b806364c161631461064d5780636573c4df146106625780636611f938146106825780636df3333a14610697576103c3565b80634a74bb02116102b15780634a74bb02146105ee5780634bd7ace5146106035780635297defd146106185780635be76f111461062d576103c3565b8063425ebf4814610584578063487a6905146105a457806349bd5a5e146105b95780634a0e963c146105ce576103c3565b8063220f66961161035a57806327c8f8351161032957806327c8f835146105185780632d03420b1461053a578063313ce5671461055a5780633cadd3c61461056f576103c3565b8063220f6696146104b957806322788f86146104ce578063232b6406146104e357806323b872dd146104f8576103c3565b806311abb0811161039657806311abb0811461044257806313b4a7f41461046257806314c0eaf91461048257806318160ddd146104a4576103c3565b806306fdde03146103c85780630882a863146103f3578063095ea7b314610415576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610a7c565b6040516103ea91906126d6565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046125db565b610b0e565b005b34801561042157600080fd5b50610435610430366004612564565b610b5b565b6040516103ea91906126cb565b34801561044e57600080fd5b5061041361045d3660046125db565b610b78565b34801561046e57600080fd5b5061041361047d3660046124e5565b610bbc565b34801561048e57600080fd5b50610497610c5b565b6040516103ea9190612abd565b3480156104b057600080fd5b50610497610c61565b3480156104c557600080fd5b50610435610c67565b3480156104da57600080fd5b50610497610c70565b3480156104ef57600080fd5b50610413610c76565b34801561050457600080fd5b50610435610513366004612512565b610cd9565b34801561052457600080fd5b5061052d610dad565b6040516103ea9190612663565b34801561054657600080fd5b5061041361055536600461258f565b610dd1565b34801561056657600080fd5b50610497610e23565b34801561057b57600080fd5b50610497610e2c565b34801561059057600080fd5b5061041361059f3660046125db565b610e32565b3480156105b057600080fd5b50610497610e76565b3480156105c557600080fd5b5061052d610e7c565b3480156105da57600080fd5b506104136105e936600461246e565b610e8b565b3480156105fa57600080fd5b50610435610eee565b34801561060f57600080fd5b50610497610efc565b34801561062457600080fd5b50610497610f02565b34801561063957600080fd5b5061041361064836600461246e565b610f08565b34801561065957600080fd5b50610497610f84565b34801561066e57600080fd5b5061041361067d3660046125db565b610f8a565b34801561068e57600080fd5b50610413610fef565b3480156106a357600080fd5b50610497611072565b3480156106b857600080fd5b506104976106c736600461246e565b611078565b3480156106d857600080fd5b50610413611093565b3480156106ed57600080fd5b506104136106fc36600461258f565b6110de565b34801561070d57600080fd5b5061041361071c3660046125db565b611137565b34801561072d57600080fd5b5061052d61117b565b34801561074257600080fd5b506104136107513660046125db565b61118a565b34801561076257600080fd5b5061052d6111ce565b34801561077757600080fd5b506104976111dd565b34801561078c57600080fd5b506103dd6111e3565b3480156107a157600080fd5b506104136107b0366004612552565b6111f2565b3480156107c157600080fd5b5061049761126d565b3480156107d657600080fd5b50610497611273565b3480156107eb57600080fd5b5061052d611279565b34801561080057600080fd5b5061041361080f3660046124ad565b611288565b34801561082057600080fd5b5061041361082f3660046125db565b6112f2565b34801561084057600080fd5b5061043561084f366004612564565b611357565b34801561086057600080fd5b5061041361136b565b34801561087557600080fd5b5061041361088436600461246e565b6113d3565b34801561089557600080fd5b506104356108a436600461246e565b611433565b3480156108b557600080fd5b50610497611448565b3480156108ca57600080fd5b506104136108d936600461246e565b61144e565b3480156108ea57600080fd5b506104976114af565b3480156108ff57600080fd5b5061041361090e36600461246e565b6114b5565b34801561091f57600080fd5b5061043561092e36600461246e565b611518565b34801561093f57600080fd5b5061041361094e3660046125db565b611536565b34801561095f57600080fd5b5061043561159c565b34801561097457600080fd5b506104136109833660046125db565b6115a5565b34801561099457600080fd5b506104976109a33660046124e5565b6115e9565b3480156109b457600080fd5b50610497611614565b3480156109c957600080fd5b5061049761161a565b3480156109de57600080fd5b506104136109ed36600461246e565b611620565b3480156109fe57600080fd5b50610413610a0d3660046125db565b611681565b348015610a1e57600080fd5b50610413610a2d36600461246e565b6116c5565b348015610a3e57600080fd5b50610413610a4d3660046125c7565b611736565b348015610a5e57600080fd5b506104136117fb565b348015610a7357600080fd5b5061052d611863565b606060018054610a8b90612b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790612b86565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b610b16611872565b6001600160a01b0316610b276111ce565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d9061296e565b60405180910390fd5b601855565b6000610b6f610b68611872565b8484611876565b50600192915050565b610b80611872565b6001600160a01b0316610b916111ce565b6001600160a01b031614610bb75760405162461bcd60e51b8152600401610b4d9061296e565b602455565b610bc4611872565b6001600160a01b0316610bd56111ce565b6001600160a01b031614610bfb5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b0391821660008181526016602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601790915280822080548516861790559181522080549091169091179055565b60285490565b60095490565b60265460ff1681565b60085490565b610c7e611872565b6001600160a01b0316610c8f6111ce565b6001600160a01b031614610cb55760405162461bcd60e51b8152600401610b4d9061296e565b601954601855601b54601a55601d54601c55610cd44262015180612b18565b601e55565b6001600160a01b0383166000908152600d6020526040812081610cfa611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610d3a5760405162461bcd60e51b8152600401610b4d906128a7565b610d4584848461192a565b610da384610d51611872565b6001600160a01b0387166000908152600d602052604081208691610d73611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d9e9190612b6f565b611876565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dd9611872565b6001600160a01b0316610dea6111ce565b6001600160a01b031614610e105760405162461bcd60e51b8152600401610b4d9061296e565b601f805460ff1916911515919091179055565b60035460ff1690565b60245490565b610e3a611872565b6001600160a01b0316610e4b6111ce565b6001600160a01b031614610e715760405162461bcd60e51b8152600401610b4d9061296e565b601c55565b600a5490565b602b546001600160a01b031681565b610e93611872565b6001600160a01b0316610ea46111ce565b6001600160a01b031614610eca5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b602654610100900460ff1681565b60185490565b60225490565b610f10611872565b6001600160a01b0316610f216111ce565b6001600160a01b031614610f475760405162461bcd60e51b8152600401610b4d9061296e565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b505050565b60295490565b610f92611872565b6001600160a01b0316610fa36111ce565b6001600160a01b031614610fc95760405162461bcd60e51b8152600401610b4d9061296e565b6005819055600954606490610fdf908390612b50565b610fe99190612b30565b60125550565b610ff7611872565b6001600160a01b03166110086111ce565b6001600160a01b03161461102e5760405162461bcd60e51b8152600401610b4d9061296e565b601e54421161104f5760405162461bcd60e51b8152600401610b4d906129a3565b601a8054601b5560188054601955601c8054601d55600091829055918190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61109b611872565b6001600160a01b03166110ac6111ce565b6001600160a01b0316146110d25760405162461bcd60e51b8152600401610b4d9061296e565b6110dc6000611f09565b565b6110e6611872565b6001600160a01b03166110f76111ce565b6001600160a01b03161461111d5760405162461bcd60e51b8152600401610b4d9061296e565b602680549115156101000261ff0019909216919091179055565b61113f611872565b6001600160a01b03166111506111ce565b6001600160a01b0316146111765760405162461bcd60e51b8152600401610b4d9061296e565b602255565b60006111856111ce565b905090565b611192611872565b6001600160a01b03166111a36111ce565b6001600160a01b0316146111c95760405162461bcd60e51b8152600401610b4d9061296e565b602055565b6000546001600160a01b031690565b60205490565b606060028054610a8b90612b86565b6111fa611872565b6001600160a01b031661120b6111ce565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610b4d9061296e565b602b546001600160a01b038381169116141561125f5760405162461bcd60e51b8152600401610b4d9061284a565b6112698282611f59565b5050565b601a5490565b600a5481565b6010546001600160a01b031681565b611290611872565b6001600160a01b03166112a16111ce565b6001600160a01b0316146112c75760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6112fa611872565b6001600160a01b031661130b6111ce565b6001600160a01b0316146113315760405162461bcd60e51b8152600401610b4d9061296e565b6006819055600954606490611347908390612b50565b6113519190612b30565b60135550565b6000610b6f611364611872565b848461192a565b611373611872565b6001600160a01b03166113846111ce565b6001600160a01b0316146113aa5760405162461bcd60e51b8152600401610b4d9061296e565b6000601a819055602281905560188190556020819055601c81905560248190556110dc906110de565b6113db611872565b6001600160a01b03166113ec6111ce565b6001600160a01b0316146114125760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60135490565b611456611872565b6001600160a01b03166114676111ce565b6001600160a01b03161461148d5760405162461bcd60e51b8152600401610b4d9061296e565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601c5490565b6114bd611872565b6001600160a01b03166114ce6111ce565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b61153e611872565b6001600160a01b031661154f6111ce565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d9061296e565b60078190556009546103e89061158c908390612b50565b6115969190612b30565b600a5550565b601f5460ff1690565b6115ad611872565b6001600160a01b03166115be6111ce565b6001600160a01b0316146115e45760405162461bcd60e51b8152600401610b4d9061296e565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60275490565b60125490565b611628611872565b6001600160a01b03166116396111ce565b6001600160a01b03161461165f5760405162461bcd60e51b8152600401610b4d9061296e565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611689611872565b6001600160a01b031661169a6111ce565b6001600160a01b0316146116c05760405162461bcd60e51b8152600401610b4d9061296e565b601a55565b6116cd611872565b6001600160a01b03166116de6111ce565b6001600160a01b0316146117045760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03811661172a5760405162461bcd60e51b8152600401610b4d90612804565b61173381611f09565b50565b61173e611872565b6001600160a01b031661174f6111ce565b6001600160a01b0316146117755760405162461bcd60e51b8152600401610b4d9061296e565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906117a39085908590600401612677565b602060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906125ab565b50505050565b611803611872565b6001600160a01b03166118146111ce565b6001600160a01b03161461183a5760405162461bcd60e51b8152600401610b4d9061296e565b6004601a55600a6018556001601c8190556005602255600d60205560026024556110dc906110de565b6011546001600160a01b031681565b3390565b6001600160a01b03831661189c5760405162461bcd60e51b8152600401610b4d906127c0565b6001600160a01b0382166118c25760405162461bcd60e51b8152600401610b4d90612a7b565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061191d908590612abd565b60405180910390a3505050565b6001600160a01b0383166119505760405162461bcd60e51b8152600401610b4d9061277b565b6001600160a01b0382166119765760405162461bcd60e51b8152600401610b4d90612a38565b600081116119965760405162461bcd60e51b8152600401610b4d90612729565b6001600160a01b0383166000908152600b6020526040902054818110156119cf5760405162461bcd60e51b8152600401610b4d906129f2565b601f5460ff16611a34576001600160a01b03831660009081526016602052604090205460ff1680611a1857506001600160a01b03841660009081526016602052604090205460ff165b611a345760405162461bcd60e51b8152600401610b4d90612937565b6001600160a01b03831660009081526016602052604090205460ff16158015611a7657506001600160a01b03841660009081526016602052604090205460ff16155b15611a9d57601354821115611a9d5760405162461bcd60e51b8152600401610b4d906128ef565b6000611aa830611078565b9050600a548110158015611abf575060265460ff16155b8015611ad95750602b546001600160a01b03868116911614155b8015611aec5750602654610100900460ff165b15611b0757600a548110611b075750600a54611b0781611fad565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611b4957506001600160a01b0385166000908152600c602052604090205460ff165b15611b575750600060048190555b60008060008315611d77576001600160a01b03891660009081526014602052604090205460ff16151560011480611bab57506001600160a01b03881660009081526014602052604090205460ff1615156001145b15611c195760006004556064611bc288600f612b50565b611bcc9190612b30565b92506064611bdb88604b612b50565b611be59190612b30565b90506064611bf4886005612b50565b611bfe9190612b30565b915081611c0b8285612b18565b611c159190612b18565b6004555b6001600160a01b0388166000908152600e602052604090205460ff168015611c4f5750602a546001600160a01b03898116911614155b15611cca576000600455602254606490611c699089612b50565b611c739190612b30565b9250606460205488611c859190612b50565b611c8f9190612b30565b9050606460245488611ca19190612b50565b611cab9190612b30565b915081611cb88285612b18565b611cc29190612b18565b600455611d77565b6001600160a01b0389166000908152600e602052604090205460ff168015611d005750602a546001600160a01b038a8116911614155b15611d77576000600455601a54606490611d1a9089612b50565b611d249190612b30565b9250606460185488611d369190612b50565b611d409190612b30565b90506064601c5488611d529190612b50565b611d5c9190612b30565b915081611d698285612b18565b611d739190612b18565b6004555b611d818787612b6f565b6001600160a01b038a166000908152600b60205260409020558082611da6858a612b6f565b611db09190612b6f565b611dba9190612b6f565b6001600160a01b0389166000908152600b602052604081208054909190611de2908490612b18565b90915550508015611ea657600454306000908152600b602052604081208054909190611e0f908490612b18565b925050819055508060296000828254611e289190612b18565b925050819055508160286000828254611e419190612b18565b925050819055508260276000828254611e5a9190612b18565b909155505060045460405130916001600160a01b038c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91611e9d91612abd565b60405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a611ee99190612b6f565b604051611ef69190612abd565b60405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6026805460ff19166001179055602954611fc69061202f565b611fd16027546120b0565b611fdc602854612239565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161200b9190612abd565b60405180910390a1506000602781905560288190556029556026805460ff19169055565b600061203c600283612b30565b9050600061204a8284612b6f565b90504761205683612251565b60006120628247612b6f565b905061206e83826123a0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516120a193929190612b02565b60405180910390a15050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120f357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561214757600080fd5b505afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190612491565b816001815181106121a057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546121c69130911684611876565b602a5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261220392879260009288929116904290600401612ac6565b600060405180830381600087803b15801561221d57600080fd5b505af1158015612231573d6000803e3d6000fd5b505050505050565b6011546117339030906001600160a01b03168361192a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061229457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122e857600080fd5b505afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123209190612491565b8160018151811061234157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546123679130911684611876565b602a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612203908590600090869030904290600401612ac6565b602a546123b89030906001600160a01b031684611876565b602a5460405163f305d71960e01b81526001600160a01b039091169063f305d719908390612415903090879060009081907f0000000000000000000000000000000000000000000000000000000000000000904290600401612690565b6060604051808303818588803b15801561242e57600080fd5b505af1158015612442573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061246791906125f3565b5050505050565b60006020828403121561247f578081fd5b813561248a81612bd7565b9392505050565b6000602082840312156124a2578081fd5b815161248a81612bd7565b600080604083850312156124bf578081fd5b82356124ca81612bd7565b915060208301356124da81612bec565b809150509250929050565b600080604083850312156124f7578182fd5b823561250281612bd7565b915060208301356124da81612bd7565b600080600060608486031215612526578081fd5b833561253181612bd7565b9250602084013561254181612bd7565b929592945050506040919091013590565b600080604083850312156124bf578182fd5b60008060408385031215612576578182fd5b823561258181612bd7565b946020939093013593505050565b6000602082840312156125a0578081fd5b813561248a81612bec565b6000602082840312156125bc578081fd5b815161248a81612bec565b600080600060608486031215612526578283fd5b6000602082840312156125ec578081fd5b5035919050565b600080600060608486031215612607578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126585781516001600160a01b031687529582019590820190600101612633565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612702578581018301518582016040015282016126e6565b818111156127135783604083870101525b50601f01601f1916929092016040019392505050565b60208082526032908201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526028908201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526026908201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b600086825285602083015260a06040830152612ae560a0830186612620565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60008219821115612b2b57612b2b612bc1565b500190565b600082612b4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b6a57612b6a612bc1565b500290565b600082821015612b8157612b81612bc1565b500390565b600281046001821680612b9a57607f821691505b60208210811415612bbb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461173357600080fd5b801515811461173357600080fdfea26469706673582212207df44b0856f90fc345afdb4427d59dd4c3986824b45babda651f8dc4e829440564736f6c63430008000033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c8063893d20e8116101f2578063bf9eb5401161010d578063ddcf9b98116100a0578063f2fde38b1161006f578063f2fde38b14610a12578063f7da678514610a32578063f953cf3a14610a52578063ff31e93014610a67576103c3565b8063ddcf9b98146109a8578063e1370dd3146109bd578063eb04c618146109d2578063edcf19b2146109f2576103c3565b8063d1294d4c116100dc578063d1294d4c14610933578063d15bcf0f14610953578063d7d7442f14610968578063dd62ed3e14610988576103c3565b8063bf9eb540146108be578063c5cb68a1146108de578063cb664534146108f3578063cba0e99614610913576103c3565b8063a5ece94111610185578063b195b83911610154578063b195b83914610854578063b4d95a9314610869578063b62496f514610889578063bf9b0159146108a9576103c3565b8063a5ece941146107df578063a6c38f59146107f4578063a7a0745214610814578063a9059cbb14610834576103c3565b806395d89b41116101c157806395d89b41146107805780639a7a23d6146107955780639b136da4146107b5578063a04bdc81146107ca576103c3565b8063893d20e8146107215780638cd0260c146107365780638da5cb5b1461075657806390f502831461076b576103c3565b8063425ebf48116102e257806364c161631161027557806370a082311161024457806370a08231146106ac578063715018a6146106cc578063801527ce146106e15780638628c23f14610701576103c3565b806364c161631461064d5780636573c4df146106625780636611f938146106825780636df3333a14610697576103c3565b80634a74bb02116102b15780634a74bb02146105ee5780634bd7ace5146106035780635297defd146106185780635be76f111461062d576103c3565b8063425ebf4814610584578063487a6905146105a457806349bd5a5e146105b95780634a0e963c146105ce576103c3565b8063220f66961161035a57806327c8f8351161032957806327c8f835146105185780632d03420b1461053a578063313ce5671461055a5780633cadd3c61461056f576103c3565b8063220f6696146104b957806322788f86146104ce578063232b6406146104e357806323b872dd146104f8576103c3565b806311abb0811161039657806311abb0811461044257806313b4a7f41461046257806314c0eaf91461048257806318160ddd146104a4576103c3565b806306fdde03146103c85780630882a863146103f3578063095ea7b314610415576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610a7c565b6040516103ea91906126d6565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046125db565b610b0e565b005b34801561042157600080fd5b50610435610430366004612564565b610b5b565b6040516103ea91906126cb565b34801561044e57600080fd5b5061041361045d3660046125db565b610b78565b34801561046e57600080fd5b5061041361047d3660046124e5565b610bbc565b34801561048e57600080fd5b50610497610c5b565b6040516103ea9190612abd565b3480156104b057600080fd5b50610497610c61565b3480156104c557600080fd5b50610435610c67565b3480156104da57600080fd5b50610497610c70565b3480156104ef57600080fd5b50610413610c76565b34801561050457600080fd5b50610435610513366004612512565b610cd9565b34801561052457600080fd5b5061052d610dad565b6040516103ea9190612663565b34801561054657600080fd5b5061041361055536600461258f565b610dd1565b34801561056657600080fd5b50610497610e23565b34801561057b57600080fd5b50610497610e2c565b34801561059057600080fd5b5061041361059f3660046125db565b610e32565b3480156105b057600080fd5b50610497610e76565b3480156105c557600080fd5b5061052d610e7c565b3480156105da57600080fd5b506104136105e936600461246e565b610e8b565b3480156105fa57600080fd5b50610435610eee565b34801561060f57600080fd5b50610497610efc565b34801561062457600080fd5b50610497610f02565b34801561063957600080fd5b5061041361064836600461246e565b610f08565b34801561065957600080fd5b50610497610f84565b34801561066e57600080fd5b5061041361067d3660046125db565b610f8a565b34801561068e57600080fd5b50610413610fef565b3480156106a357600080fd5b50610497611072565b3480156106b857600080fd5b506104976106c736600461246e565b611078565b3480156106d857600080fd5b50610413611093565b3480156106ed57600080fd5b506104136106fc36600461258f565b6110de565b34801561070d57600080fd5b5061041361071c3660046125db565b611137565b34801561072d57600080fd5b5061052d61117b565b34801561074257600080fd5b506104136107513660046125db565b61118a565b34801561076257600080fd5b5061052d6111ce565b34801561077757600080fd5b506104976111dd565b34801561078c57600080fd5b506103dd6111e3565b3480156107a157600080fd5b506104136107b0366004612552565b6111f2565b3480156107c157600080fd5b5061049761126d565b3480156107d657600080fd5b50610497611273565b3480156107eb57600080fd5b5061052d611279565b34801561080057600080fd5b5061041361080f3660046124ad565b611288565b34801561082057600080fd5b5061041361082f3660046125db565b6112f2565b34801561084057600080fd5b5061043561084f366004612564565b611357565b34801561086057600080fd5b5061041361136b565b34801561087557600080fd5b5061041361088436600461246e565b6113d3565b34801561089557600080fd5b506104356108a436600461246e565b611433565b3480156108b557600080fd5b50610497611448565b3480156108ca57600080fd5b506104136108d936600461246e565b61144e565b3480156108ea57600080fd5b506104976114af565b3480156108ff57600080fd5b5061041361090e36600461246e565b6114b5565b34801561091f57600080fd5b5061043561092e36600461246e565b611518565b34801561093f57600080fd5b5061041361094e3660046125db565b611536565b34801561095f57600080fd5b5061043561159c565b34801561097457600080fd5b506104136109833660046125db565b6115a5565b34801561099457600080fd5b506104976109a33660046124e5565b6115e9565b3480156109b457600080fd5b50610497611614565b3480156109c957600080fd5b5061049761161a565b3480156109de57600080fd5b506104136109ed36600461246e565b611620565b3480156109fe57600080fd5b50610413610a0d3660046125db565b611681565b348015610a1e57600080fd5b50610413610a2d36600461246e565b6116c5565b348015610a3e57600080fd5b50610413610a4d3660046125c7565b611736565b348015610a5e57600080fd5b506104136117fb565b348015610a7357600080fd5b5061052d611863565b606060018054610a8b90612b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790612b86565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b610b16611872565b6001600160a01b0316610b276111ce565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d9061296e565b60405180910390fd5b601855565b6000610b6f610b68611872565b8484611876565b50600192915050565b610b80611872565b6001600160a01b0316610b916111ce565b6001600160a01b031614610bb75760405162461bcd60e51b8152600401610b4d9061296e565b602455565b610bc4611872565b6001600160a01b0316610bd56111ce565b6001600160a01b031614610bfb5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b0391821660008181526016602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601790915280822080548516861790559181522080549091169091179055565b60285490565b60095490565b60265460ff1681565b60085490565b610c7e611872565b6001600160a01b0316610c8f6111ce565b6001600160a01b031614610cb55760405162461bcd60e51b8152600401610b4d9061296e565b601954601855601b54601a55601d54601c55610cd44262015180612b18565b601e55565b6001600160a01b0383166000908152600d6020526040812081610cfa611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610d3a5760405162461bcd60e51b8152600401610b4d906128a7565b610d4584848461192a565b610da384610d51611872565b6001600160a01b0387166000908152600d602052604081208691610d73611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d9e9190612b6f565b611876565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610dd9611872565b6001600160a01b0316610dea6111ce565b6001600160a01b031614610e105760405162461bcd60e51b8152600401610b4d9061296e565b601f805460ff1916911515919091179055565b60035460ff1690565b60245490565b610e3a611872565b6001600160a01b0316610e4b6111ce565b6001600160a01b031614610e715760405162461bcd60e51b8152600401610b4d9061296e565b601c55565b600a5490565b602b546001600160a01b031681565b610e93611872565b6001600160a01b0316610ea46111ce565b6001600160a01b031614610eca5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b602654610100900460ff1681565b60185490565b60225490565b610f10611872565b6001600160a01b0316610f216111ce565b6001600160a01b031614610f475760405162461bcd60e51b8152600401610b4d9061296e565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b505050565b60295490565b610f92611872565b6001600160a01b0316610fa36111ce565b6001600160a01b031614610fc95760405162461bcd60e51b8152600401610b4d9061296e565b6005819055600954606490610fdf908390612b50565b610fe99190612b30565b60125550565b610ff7611872565b6001600160a01b03166110086111ce565b6001600160a01b03161461102e5760405162461bcd60e51b8152600401610b4d9061296e565b601e54421161104f5760405162461bcd60e51b8152600401610b4d906129a3565b601a8054601b5560188054601955601c8054601d55600091829055918190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61109b611872565b6001600160a01b03166110ac6111ce565b6001600160a01b0316146110d25760405162461bcd60e51b8152600401610b4d9061296e565b6110dc6000611f09565b565b6110e6611872565b6001600160a01b03166110f76111ce565b6001600160a01b03161461111d5760405162461bcd60e51b8152600401610b4d9061296e565b602680549115156101000261ff0019909216919091179055565b61113f611872565b6001600160a01b03166111506111ce565b6001600160a01b0316146111765760405162461bcd60e51b8152600401610b4d9061296e565b602255565b60006111856111ce565b905090565b611192611872565b6001600160a01b03166111a36111ce565b6001600160a01b0316146111c95760405162461bcd60e51b8152600401610b4d9061296e565b602055565b6000546001600160a01b031690565b60205490565b606060028054610a8b90612b86565b6111fa611872565b6001600160a01b031661120b6111ce565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610b4d9061296e565b602b546001600160a01b038381169116141561125f5760405162461bcd60e51b8152600401610b4d9061284a565b6112698282611f59565b5050565b601a5490565b600a5481565b6010546001600160a01b031681565b611290611872565b6001600160a01b03166112a16111ce565b6001600160a01b0316146112c75760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6112fa611872565b6001600160a01b031661130b6111ce565b6001600160a01b0316146113315760405162461bcd60e51b8152600401610b4d9061296e565b6006819055600954606490611347908390612b50565b6113519190612b30565b60135550565b6000610b6f611364611872565b848461192a565b611373611872565b6001600160a01b03166113846111ce565b6001600160a01b0316146113aa5760405162461bcd60e51b8152600401610b4d9061296e565b6000601a819055602281905560188190556020819055601c81905560248190556110dc906110de565b6113db611872565b6001600160a01b03166113ec6111ce565b6001600160a01b0316146114125760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60135490565b611456611872565b6001600160a01b03166114676111ce565b6001600160a01b03161461148d5760405162461bcd60e51b8152600401610b4d9061296e565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601c5490565b6114bd611872565b6001600160a01b03166114ce6111ce565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b61153e611872565b6001600160a01b031661154f6111ce565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d9061296e565b60078190556009546103e89061158c908390612b50565b6115969190612b30565b600a5550565b601f5460ff1690565b6115ad611872565b6001600160a01b03166115be6111ce565b6001600160a01b0316146115e45760405162461bcd60e51b8152600401610b4d9061296e565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60275490565b60125490565b611628611872565b6001600160a01b03166116396111ce565b6001600160a01b03161461165f5760405162461bcd60e51b8152600401610b4d9061296e565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611689611872565b6001600160a01b031661169a6111ce565b6001600160a01b0316146116c05760405162461bcd60e51b8152600401610b4d9061296e565b601a55565b6116cd611872565b6001600160a01b03166116de6111ce565b6001600160a01b0316146117045760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03811661172a5760405162461bcd60e51b8152600401610b4d90612804565b61173381611f09565b50565b61173e611872565b6001600160a01b031661174f6111ce565b6001600160a01b0316146117755760405162461bcd60e51b8152600401610b4d9061296e565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906117a39085908590600401612677565b602060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906125ab565b50505050565b611803611872565b6001600160a01b03166118146111ce565b6001600160a01b03161461183a5760405162461bcd60e51b8152600401610b4d9061296e565b6004601a55600a6018556001601c8190556005602255600d60205560026024556110dc906110de565b6011546001600160a01b031681565b3390565b6001600160a01b03831661189c5760405162461bcd60e51b8152600401610b4d906127c0565b6001600160a01b0382166118c25760405162461bcd60e51b8152600401610b4d90612a7b565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061191d908590612abd565b60405180910390a3505050565b6001600160a01b0383166119505760405162461bcd60e51b8152600401610b4d9061277b565b6001600160a01b0382166119765760405162461bcd60e51b8152600401610b4d90612a38565b600081116119965760405162461bcd60e51b8152600401610b4d90612729565b6001600160a01b0383166000908152600b6020526040902054818110156119cf5760405162461bcd60e51b8152600401610b4d906129f2565b601f5460ff16611a34576001600160a01b03831660009081526016602052604090205460ff1680611a1857506001600160a01b03841660009081526016602052604090205460ff165b611a345760405162461bcd60e51b8152600401610b4d90612937565b6001600160a01b03831660009081526016602052604090205460ff16158015611a7657506001600160a01b03841660009081526016602052604090205460ff16155b15611a9d57601354821115611a9d5760405162461bcd60e51b8152600401610b4d906128ef565b6000611aa830611078565b9050600a548110158015611abf575060265460ff16155b8015611ad95750602b546001600160a01b03868116911614155b8015611aec5750602654610100900460ff165b15611b0757600a548110611b075750600a54611b0781611fad565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611b4957506001600160a01b0385166000908152600c602052604090205460ff165b15611b575750600060048190555b60008060008315611d77576001600160a01b03891660009081526014602052604090205460ff16151560011480611bab57506001600160a01b03881660009081526014602052604090205460ff1615156001145b15611c195760006004556064611bc288600f612b50565b611bcc9190612b30565b92506064611bdb88604b612b50565b611be59190612b30565b90506064611bf4886005612b50565b611bfe9190612b30565b915081611c0b8285612b18565b611c159190612b18565b6004555b6001600160a01b0388166000908152600e602052604090205460ff168015611c4f5750602a546001600160a01b03898116911614155b15611cca576000600455602254606490611c699089612b50565b611c739190612b30565b9250606460205488611c859190612b50565b611c8f9190612b30565b9050606460245488611ca19190612b50565b611cab9190612b30565b915081611cb88285612b18565b611cc29190612b18565b600455611d77565b6001600160a01b0389166000908152600e602052604090205460ff168015611d005750602a546001600160a01b038a8116911614155b15611d77576000600455601a54606490611d1a9089612b50565b611d249190612b30565b9250606460185488611d369190612b50565b611d409190612b30565b90506064601c5488611d529190612b50565b611d5c9190612b30565b915081611d698285612b18565b611d739190612b18565b6004555b611d818787612b6f565b6001600160a01b038a166000908152600b60205260409020558082611da6858a612b6f565b611db09190612b6f565b611dba9190612b6f565b6001600160a01b0389166000908152600b602052604081208054909190611de2908490612b18565b90915550508015611ea657600454306000908152600b602052604081208054909190611e0f908490612b18565b925050819055508060296000828254611e289190612b18565b925050819055508160286000828254611e419190612b18565b925050819055508260276000828254611e5a9190612b18565b909155505060045460405130916001600160a01b038c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91611e9d91612abd565b60405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a611ee99190612b6f565b604051611ef69190612abd565b60405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6026805460ff19166001179055602954611fc69061202f565b611fd16027546120b0565b611fdc602854612239565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161200b9190612abd565b60405180910390a1506000602781905560288190556029556026805460ff19169055565b600061203c600283612b30565b9050600061204a8284612b6f565b90504761205683612251565b60006120628247612b6f565b905061206e83826123a0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516120a193929190612b02565b60405180910390a15050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120f357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561214757600080fd5b505afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190612491565b816001815181106121a057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546121c69130911684611876565b602a5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261220392879260009288929116904290600401612ac6565b600060405180830381600087803b15801561221d57600080fd5b505af1158015612231573d6000803e3d6000fd5b505050505050565b6011546117339030906001600160a01b03168361192a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061229457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122e857600080fd5b505afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123209190612491565b8160018151811061234157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546123679130911684611876565b602a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612203908590600090869030904290600401612ac6565b602a546123b89030906001600160a01b031684611876565b602a5460405163f305d71960e01b81526001600160a01b039091169063f305d719908390612415903090879060009081907f000000000000000000000000000000000000000000000000000000000000dead904290600401612690565b6060604051808303818588803b15801561242e57600080fd5b505af1158015612442573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061246791906125f3565b5050505050565b60006020828403121561247f578081fd5b813561248a81612bd7565b9392505050565b6000602082840312156124a2578081fd5b815161248a81612bd7565b600080604083850312156124bf578081fd5b82356124ca81612bd7565b915060208301356124da81612bec565b809150509250929050565b600080604083850312156124f7578182fd5b823561250281612bd7565b915060208301356124da81612bd7565b600080600060608486031215612526578081fd5b833561253181612bd7565b9250602084013561254181612bd7565b929592945050506040919091013590565b600080604083850312156124bf578182fd5b60008060408385031215612576578182fd5b823561258181612bd7565b946020939093013593505050565b6000602082840312156125a0578081fd5b813561248a81612bec565b6000602082840312156125bc578081fd5b815161248a81612bec565b600080600060608486031215612526578283fd5b6000602082840312156125ec578081fd5b5035919050565b600080600060608486031215612607578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126585781516001600160a01b031687529582019590820190600101612633565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612702578581018301518582016040015282016126e6565b818111156127135783604083870101525b50601f01601f1916929092016040019392505050565b60208082526032908201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526028908201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526026908201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b600086825285602083015260a06040830152612ae560a0830186612620565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60008219821115612b2b57612b2b612bc1565b500190565b600082612b4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b6a57612b6a612bc1565b500290565b600082821015612b8157612b81612bc1565b500390565b600281046001821680612b9a57607f821691505b60208210811415612bbb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461173357600080fd5b801515811461173357600080fdfea26469706673582212207df44b0856f90fc345afdb4427d59dd4c3986824b45babda651f8dc4e829440564736f6c63430008000033
Deployed Bytecode Sourcemap
5417:17847:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10553:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21836:111;;;;;;;;;;-1:-1:-1;21836:111:0;;;;;:::i;:::-;;:::i;:::-;;10287:168;;;;;;;;;;-1:-1:-1;10287:168:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22443:123::-;;;;;;;;;;-1:-1:-1;22443:123:0;;;;;:::i;:::-;;:::i;19932:302::-;;;;;;;;;;-1:-1:-1;19932:302:0;;;;;:::i;:::-;;:::i;9478:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9697:106::-;;;;;;;;;;;;;:::i;7507:28::-;;;;;;;;;;;;;:::i;12905:101::-;;;;;;;;;;;;;:::i;11899:221::-;;;;;;;;;;;;;:::i;11093:388::-;;;;;;;;;;-1:-1:-1;11093:388:0;;;;;:::i;:::-;;:::i;7589:81::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18130:90::-;;;;;;;;;;-1:-1:-1;18130:90:0;;;;;:::i;:::-;;:::i;10463:84::-;;;;;;;;;;;;;:::i;12791:108::-;;;;;;;;;;;;;:::i;22070:120::-;;;;;;;;;;-1:-1:-1;22070:120:0;;;;;:::i;:::-;;:::i;23156:105::-;;;;;;;;;;;;;:::i;8138:28::-;;;;;;;;;;;;;:::i;19686:114::-;;;;;;;;;;-1:-1:-1;19686:114:0;;;;;:::i;:::-;;:::i;7542:40::-;;;;;;;;;;;;;:::i;12264:96::-;;;;;;;;;;;;;:::i;12687:98::-;;;;;;;;;;;;;:::i;17944:178::-;;;;;;;;;;-1:-1:-1;17944:178:0;;;;;:::i;:::-;;:::i;9589:99::-;;;;;;;;;;;;;:::i;10904:175::-;;;;;;;;;;-1:-1:-1;10904:175:0;;;;;:::i;:::-;;:::i;11535:358::-;;;;;;;;;;;;;:::i;23053:97::-;;;;;;;;;;;;;:::i;9814:118::-;;;;;;;;;;-1:-1:-1;9814:118:0;;;;;:::i;:::-;;:::i;4782:94::-;;;;;;;;;;;;;:::i;20868:113::-;;;;;;;;;;-1:-1:-1;20868:113:0;;;;;:::i;:::-;;:::i;22319:112::-;;;;;;;;;;-1:-1:-1;22319:112:0;;;;;:::i;:::-;;:::i;9280:86::-;;;;;;;;;;;;;:::i;22200:113::-;;;;;;;;;;-1:-1:-1;22200:113:0;;;;;:::i;:::-;;:::i;4131:87::-;;;;;;;;;;;;;:::i;12583:98::-;;;;;;;;;;;;;:::i;10635:88::-;;;;;;;;;;;;;:::i;21392:242::-;;;;;;;;;;-1:-1:-1;21392:242:0;;;;;:::i;:::-;;:::i;12366:96::-;;;;;;;;;;;;;:::i;5978:71::-;;;;;;;;;;;;;:::i;6329:93::-;;;;;;;;;;;;;:::i;12128:130::-;;;;;;;;;;-1:-1:-1;12128:130:0;;;;;:::i;:::-;;:::i;10733:164::-;;;;;;;;;;-1:-1:-1;10733:164:0;;;;;:::i;:::-;;:::i;9943:176::-;;;;;;;;;;-1:-1:-1;9943:176:0;;;;;:::i;:::-;;:::i;20242:249::-;;;;;;;;;;;;;:::i;19808:116::-;;;;;;;;;;-1:-1:-1;19808:116:0;;;;;:::i;:::-;;:::i;6243:58::-;;;;;;;;;;-1:-1:-1;6243:58:0;;;;;:::i;:::-;;:::i;22675:89::-;;;;;;;;;;;;;:::i;21019:118::-;;;;;;;;;;-1:-1:-1;21019:118:0;;;;;:::i;:::-;;:::i;12468:105::-;;;;;;;;;;;;;:::i;17032:123::-;;;;;;;;;;-1:-1:-1;17032:123:0;;;;;:::i;:::-;;:::i;13012:118::-;;;;;;;;;;-1:-1:-1;13012:118:0;;;;;:::i;:::-;;:::i;22770:174::-;;;;;;;;;;-1:-1:-1;22770:174:0;;;;;:::i;:::-;;:::i;22950:97::-;;;;;;;;;;;;;:::i;20748:112::-;;;;;;;;;;-1:-1:-1;20748:112:0;;;;;:::i;:::-;;:::i;10130:148::-;;;;;;;;;;-1:-1:-1;10130:148:0;;;;;:::i;:::-;;:::i;9372:99::-;;;;;;;;;;;;;:::i;22572:97::-;;;;;;;;;;;;;:::i;21262:124::-;;;;;;;;;;-1:-1:-1;21262:124:0;;;;;:::i;:::-;;:::i;21953:111::-;;;;;;;;;;-1:-1:-1;21953:111:0;;;;;:::i;:::-;;:::i;5031:192::-;;;;;;;;;;-1:-1:-1;5031:192:0;;;;;:::i;:::-;;:::i;17693:243::-;;;;;;;;;;-1:-1:-1;17693:243:0;;;;;:::i;:::-;;:::i;20497:::-;;;;;;;;;;;;;:::i;6429:93::-;;;;;;;;;;;;;:::i;10553:76::-;10592:13;10619:5;10612:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10553:76;:::o;21836:111::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;;;;;;;;;21918:9:::1;:21:::0;21836:111::o;10287:168::-;10364:4;10384:37;10393:12;:10;:12::i;:::-;10406:7;10414:6;10384:8;:37::i;:::-;-1:-1:-1;10443:4:0;10287:168;;;;:::o;22443:123::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22534:13:::1;:24:::0;22443:123::o;19932:302::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20038:34:0;;::::1;;::::0;;;:17:::1;:34;::::0;;;;;;;:41;;20075:4:::1;-1:-1:-1::0;;20038:41:0;;::::1;::::0;::::1;::::0;;;20090:26;;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;20134;;;:16:::1;:33:::0;;;;;;:40;;;::::1;::::0;::::1;::::0;;20185:25;;;;:32;;;;::::1;::::0;;::::1;::::0;;19932:302::o;9478:104::-;9558:15;;9478:104;:::o;9697:106::-;9782:12;;9697:106;:::o;7507:28::-;;;;;;:::o;12905:101::-;12982:16;;12905:101;:::o;11899:221::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;11964:13:::1;::::0;11952:9:::1;:25:::0;12001:13:::1;::::0;11989:9:::1;:25:::0;12041:16:::1;::::0;12026:12:::1;:31:::0;12089:23:::1;:15;12107:5;12089:23;:::i;:::-;12069:17;:43:::0;11899:221::o;11093:388::-;-1:-1:-1;;;;;11259:19:0;;11225:4;11259:19;;;:11;:19;;;;;11225:4;11279:12;:10;:12::i;:::-;-1:-1:-1;;;;;11259:33:0;-1:-1:-1;;;;;11259:33:0;;;;;;;;;;;;;11249:6;:43;;11241:96;;;;-1:-1:-1;;;11241:96:0;;;;;;;:::i;:::-;11342:36;11352:6;11360:9;11371:6;11342:9;:36::i;:::-;11383:74;11392:6;11400:12;:10;:12::i;:::-;-1:-1:-1;;;;;11414:19:0;;;;;;:11;:19;;;;;11450:6;;11434:12;:10;:12::i;:::-;-1:-1:-1;;;;;11414:33:0;-1:-1:-1;;;;;11414:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;11383:8;:74::i;:::-;-1:-1:-1;11469:4:0;11093:388;;;;;:::o;7589:81::-;;;:::o;18130:90::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18191:12:::1;:21:::0;;-1:-1:-1;;18191:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18130:90::o;10463:84::-;10530:9;;;;10463:84;:::o;12791:108::-;12878:13;;12791:108;:::o;22070:120::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22159:12:::1;:23:::0;22070:120::o;23156:105::-;23233:20;;23156:105;:::o;8138:28::-;;;-1:-1:-1;;;;;8138:28:0;;:::o;19686:114::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19757:28:0::1;;::::0;;;:17:::1;:28;::::0;;;;:35;;-1:-1:-1;;19757:35:0::1;19788:4;19757:35;::::0;;19686:114::o;7542:40::-;;;;;;;;;:::o;12264:96::-;12343:9;;12264:96;:::o;12687:98::-;12767:10;;12687:98;:::o;17944:178::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18073:41:::1;::::0;18041:21:::1;::::0;-1:-1:-1;;;;;18073:29:0;::::1;::::0;:41;::::1;;;::::0;18041:21;;18020:18:::1;18073:41:::0;18020:18;18073:41;18041:21;18073:29;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4422:1;17944:178:::0;:::o;9589:99::-;9670:9;;9589:99;:::o;10904:175::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10980:17:::1;:26:::0;;;11035:12:::1;::::0;11066:3:::1;::::0;11035:30:::1;::::0;11000:6;;11035:30:::1;:::i;:::-;:34;;;;:::i;:::-;11017:15;:52:::0;-1:-1:-1;10904:175:0:o;11535:358::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;11610:17:::1;;11592:15;:35;11584:95;;;;-1:-1:-1::0;;;11584:95:0::1;;;;;;;:::i;:::-;11707:9;::::0;;11691:13:::1;:25:::0;11744:9:::1;::::0;;11728:13:::1;:25:::0;11784:12:::1;::::0;;11765:16:::1;:31:::0;-1:-1:-1;11819:13:0;;;;11844;;;;11869:16;;11535:358::o;23053:97::-;23130:12;;23053:97;:::o;9814:118::-;-1:-1:-1;;;;;9906:18:0;9880:7;9906:18;;;:9;:18;;;;;;;9814:118::o;4782:94::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;4847:21:::1;4865:1;4847:9;:21::i;:::-;4782:94::o:0;20868:113::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20941:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;20941:32:0;;::::1;::::0;;;::::1;::::0;;20868:113::o;22319:112::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22402:10:::1;:21:::0;22319:112::o;9280:86::-;9321:7;9351;:5;:7::i;:::-;9344:14;;9280:86;:::o;22200:113::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22284:10:::1;:21:::0;22200:113::o;4131:87::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;4131:87;:::o;12583:98::-;12663:10;;12583:98;:::o;10635:88::-;10676:13;10708:7;10701:14;;;;;:::i;21392:242::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21499:13:::1;::::0;-1:-1:-1;;;;;21491:21:0;;::::1;21499:13:::0;::::1;21491:21;;21483:91;;;;-1:-1:-1::0;;;21483:91:0::1;;;;;;;:::i;:::-;21585:41;21614:4;21620:5;21585:28;:41::i;:::-;21392:242:::0;;:::o;12366:96::-;12445:9;;12366:96;:::o;5978:71::-;;;;:::o;6329:93::-;;;-1:-1:-1;;;;;6329:93:0;;:::o;12128:130::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12219:23:0;;;::::1;;::::0;;;:10:::1;:23;::::0;;;;:31;;-1:-1:-1;;12219:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12128:130::o;10733:164::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10805:13:::1;:22:::0;;;10852:12:::1;::::0;10879:3:::1;::::0;10852:26:::1;::::0;10821:6;;10852:26:::1;:::i;:::-;:30;;;;:::i;:::-;10838:11;:44:::0;-1:-1:-1;10733:164:0:o;9943:176::-;10023:4;10043:40;10053:12;:10;:12::i;:::-;10066:9;10076:6;10043:9;:40::i;20242:249::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20320:1:::1;20308:9;:13:::0;;;20332:10:::1;:13:::0;;;20356:9:::1;:12:::0;;;20379:10:::1;:13:::0;;;20403:12:::1;:15:::0;;;20429:13:::1;:17:::0;;;20457:24:::1;::::0;:17:::1;:24::i;19808:116::-:0;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19881:27:0::1;19911:5;19881:27:::0;;;:17:::1;:27;::::0;;;;:35;;-1:-1:-1;;19881:35:0::1;::::0;;19808:116::o;6243:58::-;;;;;;;;;;;;;;;:::o;22675:89::-;22745:11;;22675:89;:::o;21019:118::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21091:16:::1;:38:::0;;-1:-1:-1;;;;;;21091:38:0::1;-1:-1:-1::0;;;;;21091:38:0;;;::::1;::::0;;;::::1;::::0;;21019:118::o;12468:105::-;12553:12;;12468:105;:::o;17032:123::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17104:29:0::1;;::::0;;;:17:::1;:29;::::0;;;;:36;;-1:-1:-1;;17104:36:0::1;17136:4;17104:36;::::0;;17032:123::o;13012:118::-;-1:-1:-1;;;;;13096:26:0;13069:4;13096:26;;;:17;:26;;;;;;;;;13012:118::o;22770:174::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22841:12:::1;:21:::0;;;22896:12:::1;::::0;22922:4:::1;::::0;22896:25:::1;::::0;22856:6;;22896:25:::1;:::i;:::-;:30;;;;:::i;:::-;22873:20;:53:::0;-1:-1:-1;22770:174:0:o;22950:97::-;23024:12;;;;22950:97;:::o;20748:112::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20819:16:::1;:31:::0;20748:112::o;10130:148::-;-1:-1:-1;;;;;10243:18:0;;;10213:7;10243:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10130:148::o;9372:99::-;9453:9;;9372:99;:::o;22572:97::-;22646:15;;22572:97;:::o;21262:124::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21340:16:::1;:38:::0;;-1:-1:-1;;;;;;21340:38:0::1;-1:-1:-1::0;;;;;21340:38:0;;;::::1;::::0;;;::::1;::::0;;21262:124::o;21953:111::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22036:9:::1;:20:::0;21953:111::o;5031:192::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:22:0;::::1;5112:73;;;;-1:-1:-1::0;;;5112:73:0::1;;;;;;;:::i;:::-;5196:19;5206:8;5196:9;:19::i;:::-;5031:192:::0;:::o;17693:243::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;17886:42:::1;::::0;-1:-1:-1;;;17886:42:0;;-1:-1:-1;;;;;17886:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;17908:11;;17921:6;;17886:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17693:243:::0;;;:::o;20497:::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20564:1:::1;20552:9;:13:::0;20588:2:::1;20576:9;:14:::0;20616:1:::1;20601:12;:16:::0;;;20643:1:::1;20630:10;:14:::0;20668:2:::1;20655:10;:15:::0;-1:-1:-1;20681:13:0::1;:17:::0;20709:23:::1;::::0;:17:::1;:23::i;6429:93::-:0;;;-1:-1:-1;;;;;6429:93:0;;:::o;91:98::-;171:10;91:98;:::o;19318:322::-;-1:-1:-1;;;;;19410:19:0;;19402:68;;;;-1:-1:-1;;;19402:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19483:21:0;;19475:68;;;;-1:-1:-1;;;19475:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19550:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;19596:32;;;;;19580:6;;19596:32;:::i;:::-;;;;;;;;19318:322;;;:::o;13138:3546::-;-1:-1:-1;;;;;13236:18:0;;13228:68;;;;-1:-1:-1;;;13228:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13309:16:0;;13301:64;;;;-1:-1:-1;;;13301:64:0;;;;;;;:::i;:::-;13393:1;13384:6;:10;13376:72;;;;-1:-1:-1;;;13376:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13483:15:0;;13459:21;13483:15;;;:9;:15;;;;;;13517:23;;;;13509:74;;;;-1:-1:-1;;;13509:74:0;;;;;;;:::i;:::-;13597:12;;;;13594:141;;-1:-1:-1;;;;;13642:21:0;;;;;;:17;:21;;;;;;;;;:48;;-1:-1:-1;;;;;;13667:23:0;;;;;;:17;:23;;;;;;;;13642:48;13634:89;;;;-1:-1:-1;;;13634:89:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13748:21:0;;;;;;:17;:21;;;;;;;;:28;;;:62;;-1:-1:-1;;;;;;13780:23:0;;;;;;:17;:23;;;;;;;;:30;13748:62;13745:163;;;13840:11;;13830:6;:21;;13822:74;;;;-1:-1:-1;;;13822:74:0;;;;;;;:::i;:::-;13918:25;13946:24;13964:4;13946:9;:24::i;:::-;13918:52;;14004:20;;13984:17;:40;;:66;;;;-1:-1:-1;14034:16:0;;;;14033:17;13984:66;:96;;;;-1:-1:-1;14067:13:0;;-1:-1:-1;;;;;14059:21:0;;;14067:13;;14059:21;;13984:96;:126;;;;-1:-1:-1;14089:21:0;;;;;;;13984:126;13981:352;;;14154:20;;14133:17;:41;14130:188;;-1:-1:-1;14219:20:0;;14262:36;14219:20;14262:17;:36::i;:::-;-1:-1:-1;;;;;14415:23:0;;14349:13;14415:23;;;:17;:23;;;;;;14365:4;;14415:23;;;:48;;-1:-1:-1;;;;;;14442:21:0;;;;;;:17;:21;;;;;;;;14415:48;14412:159;;;-1:-1:-1;14500:1:0;14484:13;:17;;;14412:159;14585:17;14621:23;14694:17;14772:8;14769:1376;;;-1:-1:-1;;;;;14867:16:0;;;;;;:10;:16;;;;;;;;:24;;:16;:24;;:46;;-1:-1:-1;;;;;;14893:14:0;;;;;;:10;:14;;;;;;;;:20;;:14;:20;14867:46;14864:343;;;14953:1;14937:13;:17;15001:3;14989:11;:6;14998:2;14989:11;:::i;:::-;:15;;;;:::i;:::-;14977:27;-1:-1:-1;15051:3:0;15039:11;:6;15048:2;15039:11;:::i;:::-;:15;;;;:::i;:::-;15027:27;-1:-1:-1;15106:3:0;15095:10;:6;15104:1;15095:10;:::i;:::-;:14;;;;:::i;:::-;15077:32;-1:-1:-1;15077:32:0;15148:21;15160:9;15148;:21;:::i;:::-;:39;;;;:::i;:::-;15132:13;:55;14864:343;-1:-1:-1;;;;;15261:29:0;;;;;;:25;:29;;;;;;;;:55;;;;-1:-1:-1;15308:7:0;;-1:-1:-1;;;;;15294:22:0;;;15308:7;;15294:22;;15261:55;15257:853;;;15361:1;15345:13;:17;15410:10;;15421:3;;15401:19;;:6;:19;:::i;:::-;:23;;;;:::i;:::-;15389:35;;15483:3;15472:10;;15463:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;15451:35;;15554:3;15540:13;;15531:6;:22;;;;:::i;:::-;:26;;;;:::i;:::-;15513:44;-1:-1:-1;15513:44:0;15600:21;15612:9;15600;:21;:::i;:::-;:39;;;;:::i;:::-;15584:13;:55;15257:853;;;-1:-1:-1;;;;;15713:31:0;;;;;;:25;:31;;;;;;;;:59;;;;-1:-1:-1;15764:7:0;;-1:-1:-1;;;;;15748:24:0;;;15764:7;;15748:24;;15713:59;15710:400;;;15831:1;15815:13;:17;15876:9;;15886:3;;15867:18;;:6;:18;:::i;:::-;:22;;;;:::i;:::-;15855:34;;15943:3;15933:9;;15924:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;15912:34;;16009:3;15996:12;;15987:6;:21;;;;:::i;:::-;:25;;;;:::i;:::-;15969:43;-1:-1:-1;15969:43:0;16051:21;16063:9;16051;:21;:::i;:::-;:39;;;;:::i;:::-;16035:13;:55;15710:400;16179:22;16195:6;16179:13;:22;:::i;:::-;-1:-1:-1;;;;;16161:15:0;;;;;;:9;:15;;;;;:40;16272:9;16254:15;16233:18;16242:9;16233:6;:18;:::i;:::-;:36;;;;:::i;:::-;:48;;;;:::i;:::-;-1:-1:-1;;;;;16216:13:0;;;;;;:9;:13;;;;;:65;;:13;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;;16299:14:0;;16296:298;;16349:13;;16339:4;16321:24;;;;:9;:24;;;;;:41;;:24;;;:41;;16349:13;;16321:41;:::i;:::-;;;;;;;;16420:9;16407;;:22;;;;;;;:::i;:::-;;;;;;;;16463:15;16444;;:34;;;;;;;:::i;:::-;;;;;;;;16506:9;16493;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;16556:13:0;;16526:44;;16549:4;;-1:-1:-1;;;;;16526:44:0;;;;;;;;:::i;:::-;;;;;;;;16296:298;16628:2;-1:-1:-1;;;;;16613:39:0;16622:4;-1:-1:-1;;;;;16613:39:0;;16638:13;;16631:6;:20;;;;:::i;:::-;16613:39;;;;;;:::i;:::-;;;;;;;;13138:3546;;;;;;;;;:::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;5231:173;;:::o;21640:188::-;-1:-1:-1;;;;;21723:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21723:39:0;;;;;;;;;;21780:40;;21723:39;;:31;21780:40;;;21640:188;;:::o;16690:335::-;8226:16;:23;;-1:-1:-1;;8226:23:0;8245:4;8226:23;;;16785:9:::1;::::0;16770:25:::1;::::0;:14:::1;:25::i;:::-;16806:30;16826:9;;16806:19;:30::i;:::-;16847:32;16863:15;;16847;:32::i;:::-;16895:44;16925:13;16895:44;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;16962:1:0::1;16950:9;:13:::0;;;16974:15:::1;:19:::0;;;17004:9:::1;:13:::0;8260:16;:24;;-1:-1:-1;;8260:24:0;;;16690:335::o;18228:388::-;18290:12;18305:19;18323:1;18305:15;:19;:::i;:::-;18290:34;-1:-1:-1;18329:17:0;18349:22;18290:34;18349:15;:22;:::i;:::-;18329:42;-1:-1:-1;18401:21:0;18429:22;18446:4;18429:16;:22::i;:::-;18456:18;18477:40;18502:14;18477:21;:40;:::i;:::-;18456:61;;18525:35;18538:9;18549:10;18525:12;:35::i;:::-;18570:41;18585:4;18590:10;18601:9;18570:41;;;;;;;;:::i;:::-;;;;;;;;18228:388;;;;;:::o;17161:399::-;17248:16;;;17262:1;17248:16;;;;;;;;17224:21;;17248:16;;;;;;;;;;-1:-1:-1;17248:16:0;17224:40;;17287:4;17269;17274:1;17269:7;;;;;;-1:-1:-1;;;17269:7:0;;;;;;;;;-1:-1:-1;;;;;17269:23:0;;;:7;;;;;;;;;;:23;;;;17307:7;;:14;;;-1:-1:-1;;;17307:14:0;;;;:7;;;;;:12;;:14;;;;;17269:7;;17307:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17297:4;17302:1;17297:7;;;;;;-1:-1:-1;;;17297:7:0;;;;;;;;;-1:-1:-1;;;;;17297:24:0;;;:7;;;;;;;;;:24;17358:7;;17326:49;;17343:4;;17358:7;17368:6;17326:8;:49::i;:::-;17386:7;;17508:16;;17386:164;;-1:-1:-1;;;17386:164:0;;-1:-1:-1;;;;;17386:7:0;;;;:58;;:164;;17450:6;;17386:7;;17498:4;;17508:16;;;17530:15;;17386:164;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17161:399;;:::o;17568:117::-;17650:16;;17625:50;;17643:4;;-1:-1:-1;;;;;17650:16:0;17668:6;17625:9;:50::i;18624:397::-;18707:16;;;18721:1;18707:16;;;;;;;;18683:21;;18707:16;;;;;;;;;;-1:-1:-1;18707:16:0;18683:40;;18746:4;18728;18733:1;18728:7;;;;;;-1:-1:-1;;;18728:7:0;;;;;;;;;-1:-1:-1;;;;;18728:23:0;;;:7;;;;;;;;;;:23;;;;18766:7;;:14;;;-1:-1:-1;;;18766:14:0;;;;:7;;;;;:12;;:14;;;;;18728:7;;18766:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18756:4;18761:1;18756:7;;;;;;-1:-1:-1;;;18756:7:0;;;;;;;;;-1:-1:-1;;;;;18756:24:0;;;:7;;;;;;;;;:24;18817:7;;18785:54;;18802:4;;18817:7;18827:11;18785:8;:54::i;:::-;18850:7;;:166;;-1:-1:-1;;;18850:166:0;;-1:-1:-1;;;;;18850:7:0;;;;:58;;:166;;18914:11;;18850:7;;18967:4;;18985;;18996:15;;18850:166;;;:::i;19033:277::-;19138:7;;19106:54;;19123:4;;-1:-1:-1;;;;;19138:7:0;19148:11;19106:8;:54::i;:::-;19167:7;;:138;;-1:-1:-1;;;19167:138:0;;-1:-1:-1;;;;;19167:7:0;;;;:23;;19197:9;;19167:138;;19221:4;;19232:11;;19167:7;;;;19263:11;;19285:15;;19167:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19033:277;;:::o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;:::-;262:5;84:189;-1:-1:-1;;;84:189:1:o;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;818:404::-;;;952:2;940:9;931:7;927:23;923:32;920:2;;;973:6;965;958:22;920:2;1017:9;1004:23;1036:33;1063:5;1036:33;:::i;:::-;1088:5;-1:-1:-1;1145:2:1;1130:18;;1117:32;1158;1117;1158;:::i;:::-;1209:7;1199:17;;;910:312;;;;;:::o;1227:402::-;;;1356:2;1344:9;1335:7;1331:23;1327:32;1324:2;;;1377:6;1369;1362:22;1324:2;1421:9;1408:23;1440:33;1467:5;1440:33;:::i;:::-;1492:5;-1:-1:-1;1549:2:1;1534:18;;1521:32;1562:35;1521:32;1562:35;:::i;1634:470::-;;;;1780:2;1768:9;1759:7;1755:23;1751:32;1748:2;;;1801:6;1793;1786:22;1748:2;1845:9;1832:23;1864:33;1891:5;1864:33;:::i;:::-;1916:5;-1:-1:-1;1973:2:1;1958:18;;1945:32;1986:35;1945:32;1986:35;:::i;:::-;1738:366;;2040:7;;-1:-1:-1;;;2094:2:1;2079:18;;;;2066:32;;1738:366::o;2109:396::-;;;2235:2;2223:9;2214:7;2210:23;2206:32;2203:2;;;2256:6;2248;2241:22;2510:327;;;2639:2;2627:9;2618:7;2614:23;2610:32;2607:2;;;2660:6;2652;2645:22;2607:2;2704:9;2691:23;2723:33;2750:5;2723:33;:::i;:::-;2775:5;2827:2;2812:18;;;;2799:32;;-1:-1:-1;;;2597:240:1:o;2842:253::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:257::-;;3220:2;3208:9;3199:7;3195:23;3191:32;3188:2;;;3241:6;3233;3226:22;3188:2;3278:9;3272:16;3297:30;3321:5;3297:30;:::i;3362:491::-;;;;3529:2;3517:9;3508:7;3504:23;3500:32;3497:2;;;3550:6;3542;3535:22;3858:190;;3970:2;3958:9;3949:7;3945:23;3941:32;3938:2;;;3991:6;3983;3976:22;3938:2;-1:-1:-1;4019:23:1;;3928:120;-1:-1:-1;3928:120:1:o;4053:316::-;;;;4210:2;4198:9;4189:7;4185:23;4181:32;4178:2;;;4231:6;4223;4216:22;4178:2;4265:9;4259:16;4249:26;;4315:2;4304:9;4300:18;4294:25;4284:35;;4359:2;4348:9;4344:18;4338:25;4328:35;;4168:201;;;;;:::o;4374:469::-;;4471:5;4465:12;4498:6;4493:3;4486:19;4524:4;4553:2;4548:3;4544:12;4537:19;;4590:2;4583:5;4579:14;4611:3;4623:195;4637:6;4634:1;4631:13;4623:195;;;4702:13;;-1:-1:-1;;;;;4698:39:1;4686:52;;4758:12;;;;4793:15;;;;4734:1;4652:9;4623:195;;;-1:-1:-1;4834:3:1;;4441:402;-1:-1:-1;;;;;4441:402:1:o;4848:203::-;-1:-1:-1;;;;;5012:32:1;;;;4994:51;;4982:2;4967:18;;4949:102::o;5280:282::-;-1:-1:-1;;;;;5480:32:1;;;;5462:51;;5544:2;5529:18;;5522:34;5450:2;5435:18;;5417:145::o;5567:607::-;-1:-1:-1;;;;;5926:15:1;;;5908:34;;5973:2;5958:18;;5951:34;;;;6016:2;6001:18;;5994:34;;;;6059:2;6044:18;;6037:34;;;;6108:15;;;6102:3;6087:19;;6080:44;5888:3;6140:19;;6133:35;;;;5857:3;5842:19;;5824:350::o;6179:187::-;6344:14;;6337:22;6319:41;;6307:2;6292:18;;6274:92::o;6371:603::-;;6512:2;6541;6530:9;6523:21;6573:6;6567:13;6616:6;6611:2;6600:9;6596:18;6589:34;6641:4;6654:140;6668:6;6665:1;6662:13;6654:140;;;6763:14;;;6759:23;;6753:30;6729:17;;;6748:2;6725:26;6718:66;6683:10;;6654:140;;;6812:6;6809:1;6806:13;6803:2;;;6882:4;6877:2;6868:6;6857:9;6853:22;6849:31;6842:45;6803:2;-1:-1:-1;6958:2:1;6937:15;-1:-1:-1;;6933:29:1;6918:45;;;;6965:2;6914:54;;6492:482;-1:-1:-1;;;6492:482:1:o;6979:414::-;7181:2;7163:21;;;7220:2;7200:18;;;7193:30;7259:34;7254:2;7239:18;;7232:62;-1:-1:-1;;;7325:2:1;7310:18;;7303:48;7383:3;7368:19;;7153:240::o;7398:401::-;7600:2;7582:21;;;7639:2;7619:18;;;7612:30;7678:34;7673:2;7658:18;;7651:62;-1:-1:-1;;;7744:2:1;7729:18;;7722:35;7789:3;7774:19;;7572:227::o;7804:400::-;8006:2;7988:21;;;8045:2;8025:18;;;8018:30;8084:34;8079:2;8064:18;;8057:62;-1:-1:-1;;;8150:2:1;8135:18;;8128:34;8194:3;8179:19;;7978:226::o;8209:402::-;8411:2;8393:21;;;8450:2;8430:18;;;8423:30;8489:34;8484:2;8469:18;;8462:62;-1:-1:-1;;;8555:2:1;8540:18;;8533:36;8601:3;8586:19;;8383:228::o;8616:421::-;8818:2;8800:21;;;8857:2;8837:18;;;8830:30;8896:34;8891:2;8876:18;;8869:62;8967:27;8962:2;8947:18;;8940:55;9027:3;9012:19;;8790:247::o;9042:404::-;9244:2;9226:21;;;9283:2;9263:18;;;9256:30;9322:34;9317:2;9302:18;;9295:62;-1:-1:-1;;;9388:2:1;9373:18;;9366:38;9436:3;9421:19;;9216:230::o;9451:404::-;9653:2;9635:21;;;9692:2;9672:18;;;9665:30;9731:34;9726:2;9711:18;;9704:62;-1:-1:-1;;;9797:2:1;9782:18;;9775:38;9845:3;9830:19;;9625:230::o;9860:353::-;10062:2;10044:21;;;10101:2;10081:18;;;10074:30;10140:31;10135:2;10120:18;;10113:59;10204:2;10189:18;;10034:179::o;10218:356::-;10420:2;10402:21;;;10439:18;;;10432:30;10498:34;10493:2;10478:18;;10471:62;10565:2;10550:18;;10392:182::o;10579:411::-;10781:2;10763:21;;;10820:2;10800:18;;;10793:30;10859:34;10854:2;10839:18;;10832:62;-1:-1:-1;;;10925:2:1;10910:18;;10903:45;10980:3;10965:19;;10753:237::o;10995:402::-;11197:2;11179:21;;;11236:2;11216:18;;;11209:30;11275:34;11270:2;11255:18;;11248:62;-1:-1:-1;;;11341:2:1;11326:18;;11319:36;11387:3;11372:19;;11169:228::o;11402:399::-;11604:2;11586:21;;;11643:2;11623:18;;;11616:30;11682:34;11677:2;11662:18;;11655:62;-1:-1:-1;;;11748:2:1;11733:18;;11726:33;11791:3;11776:19;;11576:225::o;11806:398::-;12008:2;11990:21;;;12047:2;12027:18;;;12020:30;12086:34;12081:2;12066:18;;12059:62;-1:-1:-1;;;12152:2:1;12137:18;;12130:32;12194:3;12179:19;;11980:224::o;12209:177::-;12355:25;;;12343:2;12328:18;;12310:76::o;12391:596::-;;12698:6;12687:9;12680:25;12741:6;12736:2;12725:9;12721:18;12714:34;12784:3;12779:2;12768:9;12764:18;12757:31;12805:63;12863:3;12852:9;12848:19;12840:6;12805:63;:::i;:::-;-1:-1:-1;;;;;12904:32:1;;;;12899:2;12884:18;;12877:60;-1:-1:-1;12968:3:1;12953:19;12946:35;12797:71;12670:317;-1:-1:-1;;;12670:317:1:o;13585:319::-;13787:25;;;13843:2;13828:18;;13821:34;;;;13886:2;13871:18;;13864:34;13775:2;13760:18;;13742:162::o;13909:128::-;;13980:1;13976:6;13973:1;13970:13;13967:2;;;13986:18;;:::i;:::-;-1:-1:-1;14022:9:1;;13957:80::o;14042:217::-;;14108:1;14098:2;;-1:-1:-1;;;14133:31:1;;14187:4;14184:1;14177:15;14215:4;14140:1;14205:15;14098:2;-1:-1:-1;14244:9:1;;14088:171::o;14264:168::-;;14370:1;14366;14362:6;14358:14;14355:1;14352:21;14347:1;14340:9;14333:17;14329:45;14326:2;;;14377:18;;:::i;:::-;-1:-1:-1;14417:9:1;;14316:116::o;14437:125::-;;14505:1;14502;14499:8;14496:2;;;14510:18;;:::i;:::-;-1:-1:-1;14547:9:1;;14486:76::o;14567:380::-;14652:1;14642:12;;14699:1;14689:12;;;14710:2;;14764:4;14756:6;14752:17;14742:27;;14710:2;14817;14809:6;14806:14;14786:18;14783:38;14780:2;;;14863:10;14858:3;14854:20;14851:1;14844:31;14898:4;14895:1;14888:15;14926:4;14923:1;14916:15;14780:2;;14622:325;;;:::o;14952:127::-;15013:10;15008:3;15004:20;15001:1;14994:31;15044:4;15041:1;15034:15;15068:4;15065:1;15058:15;15084:133;-1:-1:-1;;;;;15161:31:1;;15151:42;;15141:2;;15207:1;15204;15197:12;15222:120;15310:5;15303:13;15296:21;15289:5;15286:32;15276:2;;15332:1;15329;15322:12
Swarm Source
ipfs://7df44b0856f90fc345afdb4427d59dd4c3986824b45babda651f8dc4e8294405
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.