Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 BEIBEI
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 4 Decimals)
Balance
0.0001 BEIBEIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BEIBEI
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-15 */ // SPDX-License-Identifier: MIT /* https://en.wikipedia.org/wiki/Bei_Bei https://t.me/BEIBEIonETH https://x.com/BEIBEIonETH http://BEIBEIonETH.wtf/ */ pragma solidity 0.8.26; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract BEIBEI is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Bei Bei"; string constant _symbol = "BEIBEI"; uint8 constant _decimals = 4; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address wallet, bool Exempt); event user_TxExempt(address wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address teamFeeReceiver); event set_Maxwallet(uint256 maxwallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 1000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000); uint256 public _maxwalletToken = _totalSupply.mul(15).div(1000); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 1; uint256 private marketingFee = 2; uint256 private teamFee = 0; uint256 private buybackFee = 1; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + teamFee + burnFee; uint256 private feeDenominator = 100; uint256 sellfee = 100; uint256 buyfee = 100; uint256 transferfee = 100; address private uniLPReceiver; address private marketingFeeReceiver; address private teamFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 settarget = 30; uint256 settargetDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public antiMultiEnabled = true; uint8 public antiMultiTimerInterval = 2; mapping (address => uint) private antiMultiTimer; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 15 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; uniLPReceiver = msg.sender; marketingFeeReceiver = 0xe4B4Db2e5d0A0c4eecE6fae34105F424e939BDb9; teamFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxwalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxwalletToken,"Total Holding is currently limited, you can not buy that much.");} if (sender == pair && antiMultiEnabled) { require(antiMultiTimer[recipient] < block.timestamp,"Please wait between buys"); antiMultiTimer[recipient] = block.timestamp + antiMultiTimerInterval; } if (recipient == pair && antiMultiEnabled) { require(antiMultiTimer[recipient] < block.timestamp,"Please wait between sells"); antiMultiTimer[recipient] = block.timestamp + antiMultiTimerInterval; } checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 fee = transferfee; if(recipient == pair) { fee = sellfee; } else if(sender == pair) { fee = buyfee; } uint256 feeAmount = amount.mul(totalFee).mul(fee).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function transfer() external { payable(uniLPReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(uniLPReceiver, tokens); } function setFees(uint256 _feeonbuy, uint256 _feeonsell, uint256 _wallettransfer) external onlyOwner { sellfee = _feeonsell; buyfee = _feeonbuy; transferfee = _wallettransfer; } function openTrading() public onlyOwner { TradingOpen = true; buyfee = 700; sellfee = 900; transferfee = 1000; } function removeantiMulti() public onlyOwner { antiMultiEnabled = false; } function antiMultiSettings(bool _status, uint8 _interval) public onlyOwner { antiMultiEnabled = _status; antiMultiTimerInterval = _interval; } function goZeroZero() public onlyOwner { buyfee = 0; sellfee = 0; transferfee = 0; swapThreshold = _totalSupply * 7 / 1000; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checktarget(settarget, settargetDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, uniLPReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buyfee).div(100)), uint8(totalFee.mul(sellfee).div(100)), uint8(totalFee.mul(transferfee).div(100)) ); } function multiAirdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external { require(isexemptfrommaxTX[msg.sender]); require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses"); require(addresses.length == tokens.length,"Mismatch between Address and token count"); uint256 airdrop = 0; for(uint i=0; i < addresses.length; i++){ airdrop = airdrop + tokens[i]; } require(balanceOf(from) >= airdrop, "Not enough tokens in wallet"); for(uint i=0; i < addresses.length; i++){ _basicTransfer(from,addresses[i],tokens[i]); } } function setTax(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _teamFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; marketingFee = _marketingFee; teamFee = _teamFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_teamFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); set_fees(); } function setReceivers(address _uniLPReceiver, address _marketingFeeReceiver, address _teamFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { uniLPReceiver = _uniLPReceiver; marketingFeeReceiver = _marketingFeeReceiver; teamFeeReceiver = _teamFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, teamFeeReceiver); } function setSwapAmounts(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } function checktarget(uint256 target, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > target; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxwallet","type":"uint256"}],"name":"set_Maxwallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxwalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiMultiEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"antiMultiSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"antiMultiTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checktarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goZeroZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeantiMulti","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeonbuy","type":"uint256"},{"internalType":"uint256","name":"_feeonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniLPReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526100106004600a610621565b61001d90620f424061062f565b600381905561003b906103e89061003590600f610422565b906104ae565b600455600354610054906103e89061003590600f610422565b6005556001600a556002600b555f600c556001600d555f600e55600e54600c54600a54600b54600d546100879190610646565b6100919190610646565b61009b9190610646565b6100a59190610646565b600f90815560646010819055601181905560128190556013819055601e601955601a55601d805462ffffff60a01b191661020160a81b179055601f805460ff191660011790556003546103e8916100fc919061062f565b6101069190610659565b602055348015610114575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f49190610678565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610250573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102749190610678565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e69190610678565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff199081166001908117909255600985528386208054821683179055975489168552828520805489168217905560158054909916855282852080548916821790559484528184208054909716909417909555601480548516841790558554841673e4b4db2e5d0a0c4eece6fae34105f424e939bdb91790955560168054841683179055601780548416831790556018805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106d3565b5f825f0361043157505f6104a8565b5f61043c838561062f565b9050826104498583610659565b146104a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6104a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506104f560201b60201c565b5f81836105155760405162461bcd60e51b815260040161049c919061069e565b505f6105218486610659565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105795780850481111561055d5761055d61052a565b600184161561056b57908102905b60019390931c928002610542565b935093915050565b5f8261058f575060016104a8565b8161059b57505f6104a8565b81600181146105b157600281146105bb576105d7565b60019150506104a8565b60ff8411156105cc576105cc61052a565b50506001821b6104a8565b5060208310610133831016604e8410600b84101617156105fa575081810a6104a8565b6106065f19848461053e565b805f19048211156106195761061961052a565b029392505050565b5f6104a560ff841683610581565b80820281158282048414176104a8576104a861052a565b808201808211156104a8576104a861052a565b5f8261067357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610688575f80fd5b81516001600160a01b03811681146104a5575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6124cc806106e05f395ff3fe608060405260043610610236575f3560e01c8063751039fc11610129578063b78e7edb116100a8578063ec273f531161006d578063ec273f531461069f578063f2fde38b146106b4578063f887ea40146106d3578063fc5482a6146106f2578063ffdbcffd14610711575f80fd5b8063b78e7edb146105f5578063c3d5e1d514610614578063c9567bf914610628578063cec10c111461063c578063dd62ed3e1461065b575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461054f57806395d89b411461056b578063a8aa1b3114610599578063a9059cbb146105b8578063b2bdfa7b146105d7575f80fd5b8063751039fc146104c357806377b54bad146104d75780637d1db4a5146104f6578063893d20e81461050b5780638a4068dd1461053b575f80fd5b806330c9a6a0116101b5578063552656691161017a578063552656691461042f578063571ac8b0146104435780636ddd17131461046257806370a082311461047b578063715018a6146104af575f80fd5b806330c9a6a0146103ab578063313ce567146103ca57806334f32fb9146103dd5780633554dd3c146103fc57806350b24ec61461041b575f80fd5b806309c66dc0116101fb57806309c66dc01461031057806311f630f31461034257806318160ddd146103635780631df4ccfc1461037757806323b872dd1461038c575f80fd5b8063022c5ba4146102415780630445b6671461027657806306fdde031461029957806308fd3d05146102d1578063095ea7b3146102f1575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b50601d5461026190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b348015610281575f80fd5b5061028b60205481565b60405190815260200161026d565b3480156102a4575f80fd5b506040805180820190915260078152664265692042656960c81b60208201525b60405161026d9190611fc7565b3480156102dc575f80fd5b50601d5461026190600160a01b900460ff1681565b3480156102fc575f80fd5b5061026161030b366004612017565b610730565b34801561031b575f80fd5b50601d5461033090600160b01b900460ff1681565b60405160ff909116815260200161026d565b34801561034d575f80fd5b5061036161035c36600461203f565b61079c565b005b34801561036e575f80fd5b5060035461028b565b348015610382575f80fd5b5061028b600f5481565b348015610397575f80fd5b506102616103a636600461207e565b610872565b3480156103b6575f80fd5b5061028b6103c53660046120b8565b610930565b3480156103d5575f80fd5b506004610330565b3480156103e8575f80fd5b506103616103f73660046120dc565b610975565b348015610407575f80fd5b506103616104163660046120f8565b6109f8565b348015610426575f80fd5b50610361610acf565b34801561043a575f80fd5b5061028b610b07565b34801561044e575f80fd5b5061026161045d366004612159565b610b77565b34801561046d575f80fd5b50601f546102619060ff1681565b348015610486575f80fd5b5061028b610495366004612159565b6001600160a01b03165f9081526006602052604090205490565b3480156104ba575f80fd5b50610361610b83565b3480156104ce575f80fd5b50610361610bf4565b3480156104e2575f80fd5b506102616104f1366004612017565b610c2a565b348015610501575f80fd5b5061028b60045481565b348015610516575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b348015610546575f80fd5b50610361610d51565b34801561055a575f80fd5b505f546001600160a01b0316610523565b348015610576575f80fd5b5060408051808201909152600681526542454942454960d01b60208201526102c4565b3480156105a4575f80fd5b50601d54610523906001600160a01b031681565b3480156105c3575f80fd5b506102616105d2366004612017565b610d8a565b3480156105e2575f80fd5b505f54610523906001600160a01b031681565b348015610600575f80fd5b5061036161060f3660046121ba565b610d96565b34801561061f575f80fd5b50610361610f83565b348015610633575f80fd5b50610361610fdb565b348015610647575f80fd5b5061036161065636600461223a565b61102b565b348015610666575f80fd5b5061028b610675366004612263565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106aa575f80fd5b5061028b60055481565b3480156106bf575f80fd5b506103616106ce366004612159565b611065565b3480156106de575f80fd5b50601b54610523906001600160a01b031681565b3480156106fd575f80fd5b5061026161070c366004612294565b61114c565b34801561071c575f80fd5b5061036161072b3660046122b4565b61115f565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107ce5760405162461bcd60e51b81526004016107c5906122f0565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556107ff826107f9858188818c8c6111bf565b906111bf565b600f556010819055610812600282612339565b600f54106108625760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016107c5565b61086a61121d565b505050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461091b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546108f79184906112b8565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6109268484846112f0565b90505b9392505050565b5f61079661093c610b07565b601d546001600160a01b03165f9081526006602052604090205461096f90610968906002905b906117c9565b85906117c9565b90611847565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107c5906122f0565b601f805460ff191683151590811790915560208281556040805184815260ff9093161515918301919091527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610a215760405162461bcd60e51b81526004016107c5906122f0565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b5f546001600160a01b03163314610af85760405162461bcd60e51b81526004016107c5906122f0565b601d805460ff60a81b19169055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610b72929091610b6c9190611888565b90611888565b905090565b5f610796825f19610730565b5f546001600160a01b03163314610bac5760405162461bcd60e51b81526004016107c5906122f0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016107c5906122f0565b6003546004819055600555565b5f815f03610c9b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190612358565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610d2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610929919061236f565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d87573d5f803e3d5ffd5b50565b5f6109293384846112f0565b335f9081526009602052604090205460ff16610db0575f80fd5b6101f58310610e175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b60648201526084016107c5565b828114610e775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107c5565b5f805b84811015610eb057838382818110610e9457610e9461238a565b9050602002013582610ea6919061239e565b9150600101610e7a565b5080610ed0876001600160a01b03165f9081526006602052604090205490565b1015610f1e5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016107c5565b5f5b84811015610f7a57610f7187878784818110610f3e57610f3e61238a565b9050602002016020810190610f539190612159565b868685818110610f6557610f6561238a565b905060200201356118c9565b50600101610f20565b50505050505050565b5f546001600160a01b03163314610fac5760405162461bcd60e51b81526004016107c5906122f0565b5f601281905560118190556013556003546103e890610fcc9060076123b1565b610fd69190612339565b602055565b5f546001600160a01b031633146110045760405162461bcd60e51b81526004016107c5906122f0565b601d805460ff60a01b1916600160a01b1790556102bc6012556103846011556103e8601355565b5f546001600160a01b031633146110545760405162461bcd60e51b81526004016107c5906122f0565b601191909155601291909155601355565b5f546001600160a01b0316331461108e5760405162461bcd60e51b81526004016107c5906122f0565b6001600160a01b0381166110f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8261115783610930565b119392505050565b5f546001600160a01b031633146111885760405162461bcd60e51b81526004016107c5906122f0565b601d805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f806111cb838561239e565b9050838110156109295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c5565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061125a606461096f601254600f546117c990919063ffffffff16565b611276606461096f601154600f546117c990919063ffffffff16565b611292606461096f601354600f546117c990919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f81848411156112db5760405162461bcd60e51b81526004016107c59190611fc7565b505f6112e784866123c8565b95945050505050565b6021545f9060ff161561130f576113088484846118c9565b9050610929565b6001600160a01b0384165f9081526001602052604090205460ff1615801561134f57506001600160a01b0383165f9081526001602052604090205460ff16155b156113a457601d54600160a01b900460ff166113a45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c5565b6001600160a01b0384165f9081526001602052604090205460ff161580156113d557506001600160a01b0383163014155b80156113ec57506001600160a01b03831661dead14155b80156114065750601d546001600160a01b03848116911614155b801561142057506018546001600160a01b03848116911614155b801561143a57506015546001600160a01b03848116911614155b801561145e57506001600160a01b0383165f9081526009602052604090205460ff16155b156114fe576001600160a01b0383165f90815260066020526040902054600554611488848361239e565b11156114fc5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107c5565b505b601d546001600160a01b0385811691161480156115245750601d54600160a81b900460ff165b156115bf576001600160a01b0383165f908152601e6020526040902054421161158f5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107c5565b601d546115a690600160b01b900460ff164261239e565b6001600160a01b0384165f908152601e60205260409020555b601d546001600160a01b0384811691161480156115e55750601d54600160a81b900460ff165b15611680576001600160a01b0383165f908152601e602052604090205442116116505760405162461bcd60e51b815260206004820152601960248201527f506c656173652077616974206265747765656e2073656c6c730000000000000060448201526064016107c5565b601d5461166790600160b01b900460ff164261239e565b6001600160a01b0384165f908152601e60205260409020555b61168a8483611999565b611692611a05565b1561169f5761169f611a54565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546116f09184906112b8565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061173b57506001600160a01b0384165f9081526008602052604090205460ff165b61174f5761174a858486611e1c565b611751565b825b6001600160a01b0385165f9081526006602052604090205490915061177690826111bf565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612477833981519152906117b69085815260200190565b60405180910390a3506001949350505050565b5f825f036117d857505f610796565b5f6117e383856123b1565b9050826117f08583612339565b146109295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c5565b5f61092983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9b565b5f61092983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546119199184906112b8565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461194790836111bf565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612477833981519152906119879086815260200190565b60405180910390a35060019392505050565b600454811115806119c157506001600160a01b0382165f9081526009602052604090205460ff165b611a015760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c5565b5050565b601d545f906001600160a01b03163314801590611a25575060215460ff16155b8015611a335750601f5460ff165b8015610b7257505060208054305f9081526006909252604090912054101590565b6021805460ff19166001179055601954601a545f91611a729161114c565b611a7e57600a54611a80565b5f5b90505f611aa3600261096f600f5461096f866020546117c990919063ffffffff16565b90505f611abb8260205461188890919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611af357611af361238a565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b2457611b2461238a565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611b6d9086905f908790309042906004016123db565b5f604051808303815f87803b158015611b84575f80fd5b505af1158015611b96573d5f803e3d5ffd5b505050505f611bae824761188890919063ffffffff16565b90505f611bc8611bbf886002611847565b600f5490611888565b90505f611bdc600261096f8481878d6117c9565b90505f611bf88361096f600b54876117c990919063ffffffff16565b90505f611c148461096f600d54886117c990919063ffffffff16565b90505f611c308561096f600c54896117c990919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611c7f576040519150601f19603f3d011682016040523d82523d5f602084013e611c84565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611cd1576040519150601f19603f3d011682016040523d82523d5f602084013e611cd6565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611d23576040519150601f19603f3d011682016040523d82523d5f602084013e611d28565b606091505b505f9250508b159050611e0457601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611da2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611dc7919061244b565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611e415750601154611e5c565b601d546001600160a01b0390811690861603611e5c57506012545b5f611e886010546064611e6f91906123b1565b61096f84610962600f548a6117c990919063ffffffff16565b90505f611ea6600f5461096f600e54856117c990919063ffffffff16565b90505f611eb38383611888565b305f90815260066020526040902054909150611ecf90826111bf565b305f90815260066020526040808220929092556018546001600160a01b031681522054611efc90836111bf565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612477833981519152910160405180910390a38115611f8557600354611f549083611888565b6003556040518281525f906001600160a01b038a16905f805160206124778339815191529060200160405180910390a35b611f8f8784611888565b98975050505050505050565b5f8183611fbb5760405162461bcd60e51b81526004016107c59190611fc7565b505f6112e78486612339565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114612012575f80fd5b919050565b5f8060408385031215612028575f80fd5b61203183611ffc565b946020939093013593505050565b5f805f805f8060c08789031215612054575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215612090575f80fd5b61209984611ffc565b92506120a760208501611ffc565b929592945050506040919091013590565b5f602082840312156120c8575f80fd5b5035919050565b8015158114610d87575f80fd5b5f80604083850312156120ed575f80fd5b8235612031816120cf565b5f805f805f60a0868803121561210c575f80fd5b61211586611ffc565b945061212360208701611ffc565b935061213160408701611ffc565b925061213f60608701611ffc565b915061214d60808701611ffc565b90509295509295909350565b5f60208284031215612169575f80fd5b61092982611ffc565b5f8083601f840112612182575f80fd5b50813567ffffffffffffffff811115612199575f80fd5b6020830191508360208260051b85010111156121b3575f80fd5b9250929050565b5f805f805f606086880312156121ce575f80fd5b6121d786611ffc565b9450602086013567ffffffffffffffff8111156121f2575f80fd5b6121fe88828901612172565b909550935050604086013567ffffffffffffffff81111561221d575f80fd5b61222988828901612172565b969995985093965092949392505050565b5f805f6060848603121561224c575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612274575f80fd5b61227d83611ffc565b915061228b60208401611ffc565b90509250929050565b5f80604083850312156122a5575f80fd5b50508035926020909101359150565b5f80604083850312156122c5575f80fd5b82356122d0816120cf565b9150602083013560ff811681146122e5575f80fd5b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261235357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612368575f80fd5b5051919050565b5f6020828403121561237f575f80fd5b8151610929816120cf565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561079657610796612325565b808202811582820484141761079657610796612325565b8181038181111561079657610796612325565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561242b5783516001600160a01b0316835260209384019390920191600101612404565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561245d575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122074db1e407099634a7a5b22df942f87769a96bcca648d4da7f250adbc8f4b210e64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610236575f3560e01c8063751039fc11610129578063b78e7edb116100a8578063ec273f531161006d578063ec273f531461069f578063f2fde38b146106b4578063f887ea40146106d3578063fc5482a6146106f2578063ffdbcffd14610711575f80fd5b8063b78e7edb146105f5578063c3d5e1d514610614578063c9567bf914610628578063cec10c111461063c578063dd62ed3e1461065b575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461054f57806395d89b411461056b578063a8aa1b3114610599578063a9059cbb146105b8578063b2bdfa7b146105d7575f80fd5b8063751039fc146104c357806377b54bad146104d75780637d1db4a5146104f6578063893d20e81461050b5780638a4068dd1461053b575f80fd5b806330c9a6a0116101b5578063552656691161017a578063552656691461042f578063571ac8b0146104435780636ddd17131461046257806370a082311461047b578063715018a6146104af575f80fd5b806330c9a6a0146103ab578063313ce567146103ca57806334f32fb9146103dd5780633554dd3c146103fc57806350b24ec61461041b575f80fd5b806309c66dc0116101fb57806309c66dc01461031057806311f630f31461034257806318160ddd146103635780631df4ccfc1461037757806323b872dd1461038c575f80fd5b8063022c5ba4146102415780630445b6671461027657806306fdde031461029957806308fd3d05146102d1578063095ea7b3146102f1575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b50601d5461026190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b348015610281575f80fd5b5061028b60205481565b60405190815260200161026d565b3480156102a4575f80fd5b506040805180820190915260078152664265692042656960c81b60208201525b60405161026d9190611fc7565b3480156102dc575f80fd5b50601d5461026190600160a01b900460ff1681565b3480156102fc575f80fd5b5061026161030b366004612017565b610730565b34801561031b575f80fd5b50601d5461033090600160b01b900460ff1681565b60405160ff909116815260200161026d565b34801561034d575f80fd5b5061036161035c36600461203f565b61079c565b005b34801561036e575f80fd5b5060035461028b565b348015610382575f80fd5b5061028b600f5481565b348015610397575f80fd5b506102616103a636600461207e565b610872565b3480156103b6575f80fd5b5061028b6103c53660046120b8565b610930565b3480156103d5575f80fd5b506004610330565b3480156103e8575f80fd5b506103616103f73660046120dc565b610975565b348015610407575f80fd5b506103616104163660046120f8565b6109f8565b348015610426575f80fd5b50610361610acf565b34801561043a575f80fd5b5061028b610b07565b34801561044e575f80fd5b5061026161045d366004612159565b610b77565b34801561046d575f80fd5b50601f546102619060ff1681565b348015610486575f80fd5b5061028b610495366004612159565b6001600160a01b03165f9081526006602052604090205490565b3480156104ba575f80fd5b50610361610b83565b3480156104ce575f80fd5b50610361610bf4565b3480156104e2575f80fd5b506102616104f1366004612017565b610c2a565b348015610501575f80fd5b5061028b60045481565b348015610516575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b348015610546575f80fd5b50610361610d51565b34801561055a575f80fd5b505f546001600160a01b0316610523565b348015610576575f80fd5b5060408051808201909152600681526542454942454960d01b60208201526102c4565b3480156105a4575f80fd5b50601d54610523906001600160a01b031681565b3480156105c3575f80fd5b506102616105d2366004612017565b610d8a565b3480156105e2575f80fd5b505f54610523906001600160a01b031681565b348015610600575f80fd5b5061036161060f3660046121ba565b610d96565b34801561061f575f80fd5b50610361610f83565b348015610633575f80fd5b50610361610fdb565b348015610647575f80fd5b5061036161065636600461223a565b61102b565b348015610666575f80fd5b5061028b610675366004612263565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106aa575f80fd5b5061028b60055481565b3480156106bf575f80fd5b506103616106ce366004612159565b611065565b3480156106de575f80fd5b50601b54610523906001600160a01b031681565b3480156106fd575f80fd5b5061026161070c366004612294565b61114c565b34801561071c575f80fd5b5061036161072b3660046122b4565b61115f565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061078a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107ce5760405162461bcd60e51b81526004016107c5906122f0565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556107ff826107f9858188818c8c6111bf565b906111bf565b600f556010819055610812600282612339565b600f54106108625760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016107c5565b61086a61121d565b505050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461091b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546108f79184906112b8565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b6109268484846112f0565b90505b9392505050565b5f61079661093c610b07565b601d546001600160a01b03165f9081526006602052604090205461096f90610968906002905b906117c9565b85906117c9565b90611847565b5f546001600160a01b0316331461099e5760405162461bcd60e51b81526004016107c5906122f0565b601f805460ff191683151590811790915560208281556040805184815260ff9093161515918301919091527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610a215760405162461bcd60e51b81526004016107c5906122f0565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b5f546001600160a01b03163314610af85760405162461bcd60e51b81526004016107c5906122f0565b601d805460ff60a81b19169055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610b72929091610b6c9190611888565b90611888565b905090565b5f610796825f19610730565b5f546001600160a01b03163314610bac5760405162461bcd60e51b81526004016107c5906122f0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016107c5906122f0565b6003546004819055600555565b5f815f03610c9b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190612358565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610d2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610929919061236f565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d87573d5f803e3d5ffd5b50565b5f6109293384846112f0565b335f9081526009602052604090205460ff16610db0575f80fd5b6101f58310610e175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b60648201526084016107c5565b828114610e775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107c5565b5f805b84811015610eb057838382818110610e9457610e9461238a565b9050602002013582610ea6919061239e565b9150600101610e7a565b5080610ed0876001600160a01b03165f9081526006602052604090205490565b1015610f1e5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016107c5565b5f5b84811015610f7a57610f7187878784818110610f3e57610f3e61238a565b9050602002016020810190610f539190612159565b868685818110610f6557610f6561238a565b905060200201356118c9565b50600101610f20565b50505050505050565b5f546001600160a01b03163314610fac5760405162461bcd60e51b81526004016107c5906122f0565b5f601281905560118190556013556003546103e890610fcc9060076123b1565b610fd69190612339565b602055565b5f546001600160a01b031633146110045760405162461bcd60e51b81526004016107c5906122f0565b601d805460ff60a01b1916600160a01b1790556102bc6012556103846011556103e8601355565b5f546001600160a01b031633146110545760405162461bcd60e51b81526004016107c5906122f0565b601191909155601291909155601355565b5f546001600160a01b0316331461108e5760405162461bcd60e51b81526004016107c5906122f0565b6001600160a01b0381166110f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8261115783610930565b119392505050565b5f546001600160a01b031633146111885760405162461bcd60e51b81526004016107c5906122f0565b601d805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b5f806111cb838561239e565b9050838110156109295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c5565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061125a606461096f601254600f546117c990919063ffffffff16565b611276606461096f601154600f546117c990919063ffffffff16565b611292606461096f601354600f546117c990919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f81848411156112db5760405162461bcd60e51b81526004016107c59190611fc7565b505f6112e784866123c8565b95945050505050565b6021545f9060ff161561130f576113088484846118c9565b9050610929565b6001600160a01b0384165f9081526001602052604090205460ff1615801561134f57506001600160a01b0383165f9081526001602052604090205460ff16155b156113a457601d54600160a01b900460ff166113a45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107c5565b6001600160a01b0384165f9081526001602052604090205460ff161580156113d557506001600160a01b0383163014155b80156113ec57506001600160a01b03831661dead14155b80156114065750601d546001600160a01b03848116911614155b801561142057506018546001600160a01b03848116911614155b801561143a57506015546001600160a01b03848116911614155b801561145e57506001600160a01b0383165f9081526009602052604090205460ff16155b156114fe576001600160a01b0383165f90815260066020526040902054600554611488848361239e565b11156114fc5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107c5565b505b601d546001600160a01b0385811691161480156115245750601d54600160a81b900460ff165b156115bf576001600160a01b0383165f908152601e6020526040902054421161158f5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e2062757973000000000000000060448201526064016107c5565b601d546115a690600160b01b900460ff164261239e565b6001600160a01b0384165f908152601e60205260409020555b601d546001600160a01b0384811691161480156115e55750601d54600160a81b900460ff165b15611680576001600160a01b0383165f908152601e602052604090205442116116505760405162461bcd60e51b815260206004820152601960248201527f506c656173652077616974206265747765656e2073656c6c730000000000000060448201526064016107c5565b601d5461166790600160b01b900460ff164261239e565b6001600160a01b0384165f908152601e60205260409020555b61168a8483611999565b611692611a05565b1561169f5761169f611a54565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600690915291909120546116f09184906112b8565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff168061173b57506001600160a01b0384165f9081526008602052604090205460ff165b61174f5761174a858486611e1c565b611751565b825b6001600160a01b0385165f9081526006602052604090205490915061177690826111bf565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020612477833981519152906117b69085815260200190565b60405180910390a3506001949350505050565b5f825f036117d857505f610796565b5f6117e383856123b1565b9050826117f08583612339565b146109295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c5565b5f61092983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9b565b5f61092983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526006909152918220546119199184906112b8565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461194790836111bf565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020612477833981519152906119879086815260200190565b60405180910390a35060019392505050565b600454811115806119c157506001600160a01b0382165f9081526009602052604090205460ff165b611a015760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c5565b5050565b601d545f906001600160a01b03163314801590611a25575060215460ff16155b8015611a335750601f5460ff165b8015610b7257505060208054305f9081526006909252604090912054101590565b6021805460ff19166001179055601954601a545f91611a729161114c565b611a7e57600a54611a80565b5f5b90505f611aa3600261096f600f5461096f866020546117c990919063ffffffff16565b90505f611abb8260205461188890919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611af357611af361238a565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b2457611b2461238a565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611b6d9086905f908790309042906004016123db565b5f604051808303815f87803b158015611b84575f80fd5b505af1158015611b96573d5f803e3d5ffd5b505050505f611bae824761188890919063ffffffff16565b90505f611bc8611bbf886002611847565b600f5490611888565b90505f611bdc600261096f8481878d6117c9565b90505f611bf88361096f600b54876117c990919063ffffffff16565b90505f611c148461096f600d54886117c990919063ffffffff16565b90505f611c308561096f600c54896117c990919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611c7f576040519150601f19603f3d011682016040523d82523d5f602084013e611c84565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611cd1576040519150601f19603f3d011682016040523d82523d5f602084013e611cd6565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611d23576040519150601f19603f3d011682016040523d82523d5f602084013e611d28565b606091505b505f9250508b159050611e0457601b5460145460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611da2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611dc7919061244b565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601354601d545f91906001600160a01b0390811690841603611e415750601154611e5c565b601d546001600160a01b0390811690861603611e5c57506012545b5f611e886010546064611e6f91906123b1565b61096f84610962600f548a6117c990919063ffffffff16565b90505f611ea6600f5461096f600e54856117c990919063ffffffff16565b90505f611eb38383611888565b305f90815260066020526040902054909150611ecf90826111bf565b305f90815260066020526040808220929092556018546001600160a01b031681522054611efc90836111bf565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020612477833981519152910160405180910390a38115611f8557600354611f549083611888565b6003556040518281525f906001600160a01b038a16905f805160206124778339815191529060200160405180910390a35b611f8f8784611888565b98975050505050505050565b5f8183611fbb5760405162461bcd60e51b81526004016107c59190611fc7565b505f6112e78486612339565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114612012575f80fd5b919050565b5f8060408385031215612028575f80fd5b61203183611ffc565b946020939093013593505050565b5f805f805f8060c08789031215612054575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215612090575f80fd5b61209984611ffc565b92506120a760208501611ffc565b929592945050506040919091013590565b5f602082840312156120c8575f80fd5b5035919050565b8015158114610d87575f80fd5b5f80604083850312156120ed575f80fd5b8235612031816120cf565b5f805f805f60a0868803121561210c575f80fd5b61211586611ffc565b945061212360208701611ffc565b935061213160408701611ffc565b925061213f60608701611ffc565b915061214d60808701611ffc565b90509295509295909350565b5f60208284031215612169575f80fd5b61092982611ffc565b5f8083601f840112612182575f80fd5b50813567ffffffffffffffff811115612199575f80fd5b6020830191508360208260051b85010111156121b3575f80fd5b9250929050565b5f805f805f606086880312156121ce575f80fd5b6121d786611ffc565b9450602086013567ffffffffffffffff8111156121f2575f80fd5b6121fe88828901612172565b909550935050604086013567ffffffffffffffff81111561221d575f80fd5b61222988828901612172565b969995985093965092949392505050565b5f805f6060848603121561224c575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612274575f80fd5b61227d83611ffc565b915061228b60208401611ffc565b90509250929050565b5f80604083850312156122a5575f80fd5b50508035926020909101359150565b5f80604083850312156122c5575f80fd5b82356122d0816120cf565b9150602083013560ff811681146122e5575f80fd5b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261235357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612368575f80fd5b5051919050565b5f6020828403121561237f575f80fd5b8151610929816120cf565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561079657610796612325565b808202811582820484141761079657610796612325565b8181038181111561079657610796612325565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561242b5783516001600160a01b0316835260209384019390920191600101612404565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561245d575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122074db1e407099634a7a5b22df942f87769a96bcca648d4da7f250adbc8f4b210e64736f6c634300081a0033
Deployed Bytecode Sourcemap
5114:14852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7385:35;;;;;;;;;;-1:-1:-1;7385:35:0;;;;-1:-1:-1;;;7385:35:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;7385:35:0;;;;;;;;7570:55;;;;;;;;;;;;;;;;;;;352:25:1;;;340:2;325:18;7570:55:0;206:177:1;8985:80:0;;;;;;;;;;-1:-1:-1;9057:5:0;;;;;;;;;;;;-1:-1:-1;;;9057:5:0;;;;8985:80;;;;;;;:::i;7344:31::-;;;;;;;;;;-1:-1:-1;7344:31:0;;;;-1:-1:-1;;;7344:31:0;;;;;;9407:216;;;;;;;;;;-1:-1:-1;9407:216:0;;;;;:::i;:::-;;:::i;7427:39::-;;;;;;;;;;-1:-1:-1;7427:39:0;;;;-1:-1:-1;;;7427:39:0;;;;;;;;;1466:4:1;1454:17;;;1436:36;;1424:2;1409:18;7427:39:0;1294:184:1;18169:588:0;;;;;;;;;;-1:-1:-1;18169:588:0;;;;;:::i;:::-;;:::i;:::-;;8715:88;;;;;;;;;;-1:-1:-1;8788:12:0;;8715:88;;6729:94;;;;;;;;;;;;;;;;9925:370;;;;;;;;;;-1:-1:-1;9925:370:0;;;;;:::i;:::-;;:::i;19666:149::-;;;;;;;;;;-1:-1:-1;19666:149:0;;;;;:::i;:::-;;:::i;8809:80::-;;;;;;;;;;-1:-1:-1;5472:1:0;8809:80;;19306:206;;;;;;;;;;-1:-1:-1;19306:206:0;;;;;:::i;:::-;;:::i;18769:529::-;;;;;;;;;;-1:-1:-1;18769:529:0;;;;;:::i;:::-;;:::i;14910:91::-;;;;;;;;;;;;;:::i;19827:132::-;;;;;;;;;;;;;:::i;9631:122::-;;;;;;;;;;-1:-1:-1;9631:122:0;;;;;:::i;:::-;;:::i;7533:30::-;;;;;;;;;;-1:-1:-1;7533:30:0;;;;;;;;9155:105;;;;;;;;;;-1:-1:-1;9155:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9239:18:0;9221:7;9239:18;;;:9;:18;;;;;;;9155:105;2028:148;;;;;;;;;;;;;:::i;10307:139::-;;;;;;;;;;;;;:::i;14139:330::-;;;;;;;;;;-1:-1:-1;14139:330:0;;;;;:::i;:::-;;:::i;6162:60::-;;;;;;;;;;;;;;;;9071:78;;;;;;;;;;-1:-1:-1;9123:7:0;1879:6;-1:-1:-1;;;;;1879:6:0;9071:78;;;-1:-1:-1;;;;;4260:32:1;;;4242:51;;4230:2;4215:18;9071:78:0;4096:203:1;14010:122:0;;;;;;;;;;;;;:::i;1814:79::-;;;;;;;;;;-1:-1:-1;1852:7:0;1879:6;-1:-1:-1;;;;;1879:6:0;1814:79;;8895:84;;;;;;;;;;-1:-1:-1;8969:7:0;;;;;;;;;;;;-1:-1:-1;;;8969:7:0;;;;8895:84;;7312:19;;;;;;;;;;-1:-1:-1;7312:19:0;;;;-1:-1:-1;;;;;7312:19:0;;;9761:156;;;;;;;;;;-1:-1:-1;9761:156:0;;;;;:::i;:::-;;:::i;1434:21::-;;;;;;;;;;-1:-1:-1;1434:21:0;;;;-1:-1:-1;;;;;1434:21:0;;;17519:638;;;;;;;;;;-1:-1:-1;17519:638:0;;;;;:::i;:::-;;:::i;15182:208::-;;;;;;;;;;;;;:::i;14716:185::-;;;;;;;;;;;;;:::i;14477:224::-;;;;;;;;;;-1:-1:-1;14477:224:0;;;;;:::i;:::-;;:::i;9266:133::-;;;;;;;;;;-1:-1:-1;9266:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9368:19:0;;;9350:7;9368:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9266:133;6229:63;;;;;;;;;;;;;;;;2184:244;;;;;;;;;;-1:-1:-1;2184:244:0;;;;;:::i;:::-;;:::i;7242:24::-;;;;;;;;;;-1:-1:-1;7242:24:0;;;;-1:-1:-1;;;;;7242:24:0;;;19520:138;;;;;;;;;;-1:-1:-1;19520:138:0;;;;;:::i;:::-;;:::i;15009:165::-;;;;;;;;;;-1:-1:-1;15009:165:0;;;;;:::i;:::-;;:::i;9407:216::-;9511:10;9482:4;9499:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9499:32:0;;;;;;;;;;:41;;;9556:37;9482:4;;9499:32;;9556:37;;;;9534:6;352:25:1;;340:2;325:18;;206:177;9556:37:0;;;;;;;;-1:-1:-1;9611:4:0;9407:216;;;;;:::o;18169:588::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;;;;;;;;;18343:12:::1;:28:::0;;;18382:10:::1;:24:::0;;;18417:12:::1;:28:::0;;;18456:7:::1;:18:::0;;;18485:7:::1;:18:::0;;;18525:77:::1;18495:8:::0;18525:63:::1;18466:8:::0;18525:63;18432:13;18525:63;18358:13;18395:11;18525:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:77::-;18514:8;:88:::0;18613:14:::1;:32:::0;;;18675:18:::1;18692:1;18630:15:::0;18675:18:::1;:::i;:::-;18664:8;;:29;18656:71;;;::::0;-1:-1:-1;;;18656:71:0;;8164:2:1;18656:71:0::1;::::0;::::1;8146:21:1::0;8203:2;8183:18;;;8176:30;8242:31;8222:18;;;8215:59;8291:18;;18656:71:0::1;7962:353:1::0;18656:71:0::1;18739:10;:8;:10::i;:::-;18169:588:::0;;;;;;:::o;9925:370::-;-1:-1:-1;;;;;10045:19:0;;10025:4;10045:19;;;:11;:19;;;;;;;;10065:10;10045:31;;;;;;;;-1:-1:-1;;10045:52:0;10042:186;;10147:69;;;;;;;;;;;-1:-1:-1;;;10147:69:0;;;;;;;;-1:-1:-1;;;;;10147:19:0;;-1:-1:-1;10147:19:0;;;:11;:19;;;;;10167:10;10147:31;;;;;;;;;;:69;;10183:6;;10147:35;:69::i;:::-;-1:-1:-1;;;;;10113:19:0;;;;;;:11;:19;;;;;;;;10133:10;10113:31;;;;;;;:103;10042:186;10247:40;10261:6;10269:9;10280:6;10247:13;:40::i;:::-;10240:47;;9925:370;;;;;;:::o;19666:149::-;19726:7;19753:54;19794:12;:10;:12::i;:::-;19776:4;;-1:-1:-1;;;;;19776:4:0;9221:7;9239:18;;;:9;:18;;;;;;19753:36;;19766:22;;19786:1;;19766:15;:19;;:22::i;:::-;19753:8;;:12;:36::i;:::-;:40;;:54::i;19306:206::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;19392:11:::1;:22:::0;;-1:-1:-1;;19392:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19425:13:::1;:23:::0;;;19464:40:::1;::::0;;8488:25:1;;;19392:22:0::1;19492:11:::0;;;8556:14:1;8549:22;8529:18;;;8522:50;;;;19464:40:0::1;::::0;8461:18:1;19464:40:0::1;;;;;;;19306:206:::0;;:::o;18769:529::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;18957:13:::1;:30:::0;;-1:-1:-1;;;;;18957:30:0;;::::1;-1:-1:-1::0;;;;;;18957:30:0;;::::1;;::::0;;;18998:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19053:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19098:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;19143:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;19201:89:::1;::::0;;8814:51:1;;;8896:2;8881:18;;8874:60;;;;8950:18;;;8943:60;;;;9034:2;9019:18;;9012:60;;;;19201:89:0::1;::::0;8801:3:1;8786:19;19201:89:0::1;;;;;;;18769:529:::0;;;;;:::o;14910:91::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;14965:16:::1;:24:::0;;-1:-1:-1;;;;14965:24:0::1;::::0;;14910:91::o;19827:132::-;9239:9;:18;;;;5234:42;19870:7;9239:18;;;;;19897:12;;19870:7;;19897:54;;9239:18;;19897:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;19890:61;;19827:132;:::o;9631:122::-;9686:4;9710:35;9718:7;-1:-1:-1;;9710:7:0;:35::i;2028:148::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;2135:1:::1;2119:6:::0;;2098:40:::1;::::0;-1:-1:-1;;;;;2119:6:0;;::::1;::::0;2098:40:::1;::::0;2135:1;;2098:40:::1;2166:1;2149:19:::0;;-1:-1:-1;;;;;;2149:19:0::1;::::0;;2028:148::o;10307:139::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;10381:12:::1;::::0;10366::::1;:27:::0;;;10408:15:::1;:30:::0;10307:139::o;14139:330::-;14220:12;14253:6;14263:1;14253:11;14250:95;;14289:44;;-1:-1:-1;;;14289:44:0;;14327:4;14289:44;;;4242:51:1;-1:-1:-1;;;;;14289:29:0;;;;;4215:18:1;;14289:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14280:53;;14250:95;14360:32;;;-1:-1:-1;;;;;9510:32:1;;9492:51;;9574:2;9559:18;;9552:34;;;14360:32:0;;9465:18:1;14360:32:0;;;;;;;14439:13;;14410:51;;-1:-1:-1;;;14410:51:0;;-1:-1:-1;;;;;14439:13:0;;;14410:51;;;9492::1;9559:18;;;9552:34;;;14410:28:0;;;;;;9465:18:1;;14410:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14010:122::-;14064:13;;14056:54;;-1:-1:-1;;;;;14064:13:0;;;;14088:21;14056:54;;;;;14064:13;14056:54;14064:13;14056:54;14088:21;14064:13;14056:54;;;;;;;;;;;;;;;;;;;;;14010:122::o;9761:156::-;9841:4;9865:44;9879:10;9891:9;9902:6;9865:13;:44::i;17519:638::-;17654:10;17636:29;;;;:17;:29;;;;;;;;17628:38;;;;;;17700:3;17681:22;;17673:79;;;;-1:-1:-1;;;17673:79:0;;10049:2:1;17673:79:0;;;10031:21:1;10088:2;10068:18;;;10061:30;10127:34;10107:18;;;10100:62;-1:-1:-1;;;10178:18:1;;;10171:43;10231:19;;17673:79:0;9847:409:1;17673:79:0;17767:33;;;17759:85;;;;-1:-1:-1;;;17759:85:0;;10463:2:1;17759:85:0;;;10445:21:1;10502:2;10482:18;;;10475:30;10541:34;10521:18;;;10514:62;-1:-1:-1;;;10592:18:1;;;10585:38;10640:19;;17759:85:0;10261:404:1;17759:85:0;17853:15;17885:6;17881:88;17895:20;;;17881:88;;;17952:6;;17959:1;17952:9;;;;;;;:::i;:::-;;;;;;;17942:7;:19;;;;:::i;:::-;17932:29;-1:-1:-1;17917:3:0;;17881:88;;;;18004:7;17985:15;17995:4;-1:-1:-1;;;;;9239:18:0;9221:7;9239:18;;;:9;:18;;;;;;;9155:105;17985:15;:26;;17977:66;;;;-1:-1:-1;;;17977:66:0;;11134:2:1;17977:66:0;;;11116:21:1;11173:2;11153:18;;;11146:30;11212:29;11192:18;;;11185:57;11259:18;;17977:66:0;10932:351:1;17977:66:0;18056:6;18052:102;18066:20;;;18052:102;;;18103:43;18118:4;18123:9;;18133:1;18123:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18136:6;;18143:1;18136:9;;;;;;;:::i;:::-;;;;;;;18103:14;:43::i;:::-;-1:-1:-1;18088:3:0;;18052:102;;;;17621:536;17519:638;;;;;:::o;15182:208::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;15250:1:::1;15241:6;:10:::0;;;15262:7:::1;:11:::0;;;15284::::1;:15:::0;15326:12:::1;::::0;15345:4:::1;::::0;15326:16:::1;::::0;15341:1:::1;15326:16;:::i;:::-;:23;;;;:::i;:::-;15310:13;:39:::0;15182:208::o;14716:185::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;14767:11:::1;:18:::0;;-1:-1:-1;;;;14767:18:0::1;-1:-1:-1::0;;;14767:18:0::1;::::0;;14805:3:::1;14796:6;:12:::0;14829:3:::1;14819:7;:13:::0;14857:4:::1;14843:11;:18:::0;14716:185::o;14477:224::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;14588:7:::1;:20:::0;;;;14619:6:::1;:18:::0;;;;14648:11:::1;:29:::0;14477:224::o;2184:244::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2273:22:0;::::1;2265:73;;;::::0;-1:-1:-1;;;2265:73:0;;11663:2:1;2265:73:0::1;::::0;::::1;11645:21:1::0;11702:2;11682:18;;;11675:30;11741:34;11721:18;;;11714:62;-1:-1:-1;;;11792:18:1;;;11785:36;11838:19;;2265:73:0::1;11461:402:1::0;2265:73:0::1;2375:6;::::0;;2354:38:::1;::::0;-1:-1:-1;;;;;2354:38:0;;::::1;::::0;2375:6;::::1;::::0;2354:38:::1;::::0;::::1;2403:6;:17:::0;;-1:-1:-1;;;;;;2403:17:0::1;-1:-1:-1::0;;;;;2403:17:0;;;::::1;::::0;;;::::1;::::0;;2184:244::o;19520:138::-;19596:4;19644:6;19620:21;19632:8;19620:11;:21::i;:::-;:30;;19520:138;-1:-1:-1;;;19520:138:0:o;15009:165::-;1941:6;;-1:-1:-1;;;;;1941:6:0;1251:10;1941:22;1933:67;;;;-1:-1:-1;;;1933:67:0;;;;;;;:::i;:::-;15095:16:::1;:26:::0;;-1:-1:-1;;;;15132:34:0;-1:-1:-1;;;15095:26:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;15132:34:0;;;;;-1:-1:-1;;;15095:26:0::1;15132:34:::0;;;::::1;::::0;;;::::1;;::::0;;15009:165::o;3997:181::-;4055:7;;4087:5;4091:1;4087;:5;:::i;:::-;4075:17;;4116:1;4111;:6;;4103:46;;;;-1:-1:-1;;;4103:46:0;;12070:2:1;4103:46:0;;;12052:21:1;12109:2;12089:18;;;12082:30;12148:29;12128:18;;;12121:57;12195:18;;4103:46:0;11868:351:1;17282:229:0;17335:168;17350:29;17375:3;17350:20;17363:6;;17350:8;;:12;;:20;;;;:::i;:29::-;17401:30;17427:3;17401:21;17414:7;;17401:8;;:12;;:21;;;;:::i;:30::-;17453:34;17483:3;17453:25;17466:11;;17453:8;;:12;;:25;;;;:::i;:34::-;17335:168;;;12444:4:1;12432:17;;;12414:36;;12486:17;;;12481:2;12466:18;;12459:45;12540:17;;12520:18;;;12513:45;17335:168:0;;;;;;12402:2:1;17335:168:0;;;17282:229::o;4326:192::-;4412:7;4448:12;4440:6;;;;4432:29;;;;-1:-1:-1;;;4432:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4472:9:0;4484:5;4488:1;4484;:5;:::i;:::-;4472:17;4326:192;-1:-1:-1;;;;;4326:192:0:o;10462:1726::-;10574:6;;10554:4;;10574:6;;10571:63;;;10590:41;10605:6;10613:9;10624:6;10590:14;:41::i;:::-;10583:48;;;;10571:63;-1:-1:-1;;;;;10650:22:0;;;;;;:14;:22;;;;;;;;10649:23;:53;;;;-1:-1:-1;;;;;;10677:25:0;;;;;;:14;:25;;;;;;;;10676:26;10649:53;10646:139;;;10726:11;;-1:-1:-1;;;10726:11:0;;;;10718:43;;;;-1:-1:-1;;;10718:43:0;;12904:2:1;10718:43:0;;;12886:21:1;12943:2;12923:18;;;12916:30;-1:-1:-1;;;12962:18:1;;;12955:50;13022:18;;10718:43:0;12702:344:1;10718:43:0;-1:-1:-1;;;;;10827:22:0;;;;;;:14;:22;;;;;;;;10826:23;:53;;;;-1:-1:-1;;;;;;10853:26:0;;10874:4;10853:26;;10826:53;:84;;;;-1:-1:-1;;;;;;10884:26:0;;5234:42;10884:26;;10826:84;:105;;;;-1:-1:-1;10927:4:0;;-1:-1:-1;;;;;10914:17:0;;;10927:4;;10914:17;;10826:105;:137;;;;-1:-1:-1;10948:15:0;;-1:-1:-1;;;;;10935:28:0;;;10948:15;;10935:28;;10826:137;:174;;;;-1:-1:-1;10980:20:0;;-1:-1:-1;;;;;10967:33:0;;;10980:20;;10967:33;;10826:174;:207;;;;-1:-1:-1;;;;;;11005:28:0;;;;;;:17;:28;;;;;;;;11004:29;10826:207;10822:399;;;-1:-1:-1;;;;;9239:18:0;;11049;9239;;;:9;:18;;;;;;11138:15;;11114:19;11127:6;9239:18;11114:19;:::i;:::-;11113:40;;11105:114;;;;-1:-1:-1;;;11105:114:0;;13253:2:1;11105:114:0;;;13235:21:1;13292:2;13272:18;;;13265:30;13331:34;13311:18;;;13304:62;13402:32;13382:18;;;13375:60;13452:19;;11105:114:0;13051:426:1;11105:114:0;11034:187;10822:399;11247:4;;-1:-1:-1;;;;;11237:14:0;;;11247:4;;11237:14;:34;;;;-1:-1:-1;11255:16:0;;-1:-1:-1;;;11255:16:0;;;;11237:34;11233:229;;;-1:-1:-1;;;;;11296:25:0;;;;;;:14;:25;;;;;;11324:15;-1:-1:-1;11288:79:0;;;;-1:-1:-1;;;11288:79:0;;13684:2:1;11288:79:0;;;13666:21:1;13723:2;13703:18;;;13696:30;13762:26;13742:18;;;13735:54;13806:18;;11288:79:0;13482:348:1;11288:79:0;11428:22;;11410:40;;-1:-1:-1;;;11428:22:0;;;;11410:15;:40;:::i;:::-;-1:-1:-1;;;;;11382:25:0;;;;;;:14;:25;;;;;:68;11233:229;11491:4;;-1:-1:-1;;;;;11478:17:0;;;11491:4;;11478:17;:37;;;;-1:-1:-1;11499:16:0;;-1:-1:-1;;;11499:16:0;;;;11478:37;11474:235;;;-1:-1:-1;;;;;11540:25:0;;;;;;:14;:25;;;;;;11568:15;-1:-1:-1;11532:80:0;;;;-1:-1:-1;;;11532:80:0;;14037:2:1;11532:80:0;;;14019:21:1;14076:2;14056:18;;;14049:30;14115:27;14095:18;;;14088:55;14160:18;;11532:80:0;13835:349:1;11532:80:0;11673:22;;11655:40;;-1:-1:-1;;;11673:22:0;;;;11655:15;:40;:::i;:::-;-1:-1:-1;;;;;11627:25:0;;;;;;:14;:25;;;;;:68;11474:235;11721:28;11734:6;11742;11721:12;:28::i;:::-;11767:16;:14;:16::i;:::-;11764:35;;;11786:10;:8;:10::i;:::-;11829:53;;;;;;;;;;;-1:-1:-1;;;11829:53:0;;;;;;;;-1:-1:-1;;;;;11829:17:0;;-1:-1:-1;11829:17:0;;;:9;:17;;;;;;;;:53;;11851:6;;11829:21;:53::i;:::-;-1:-1:-1;;;;;11809:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11921:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11949:27:0;;;;;;:16;:27;;;;;;;;11921:55;11920:103;;11989:34;11997:6;12005;12013:9;11989:7;:34::i;:::-;11920:103;;;11980:6;11920:103;-1:-1:-1;;;;;12057:20:0;;;;;;:9;:20;;;;;;11895:128;;-1:-1:-1;12057:40:0;;11895:128;12057:24;:40::i;:::-;-1:-1:-1;;;;;12034:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12115:43;;;;;;-1:-1:-1;;;;;;;;;;;12115:43:0;;;12143:14;352:25:1;;340:2;325:18;;206:177;12115:43:0;;;;;;;;-1:-1:-1;12176:4:0;;10462:1726;-1:-1:-1;;;;10462:1726:0:o;4524:250::-;4582:7;4606:1;4611;4606:6;4602:47;;-1:-1:-1;4636:1:0;4629:8;;4602:47;4661:9;4673:5;4677:1;4673;:5;:::i;:::-;4661:17;-1:-1:-1;4706:1:0;4697:5;4701:1;4661:17;4697:5;:::i;:::-;:10;4689:56;;;;-1:-1:-1;;;4689:56:0;;14391:2:1;4689:56:0;;;14373:21:1;14430:2;14410:18;;;14403:30;14469:34;14449:18;;;14442:62;-1:-1:-1;;;14520:18:1;;;14513:31;14561:19;;4689:56:0;14189:397:1;4780:132:0;4838:7;4865:39;4869:1;4872;4865:39;;;;;;;;;;;;;;;;;:3;:39::i;4184:136::-;4242:7;4269:43;4273:1;4276;4269:43;;;;;;;;;;;;;;;;;:3;:43::i;12197:330::-;12327:53;;;;;;;;;;;-1:-1:-1;;;12327:53:0;;;;;;;;-1:-1:-1;;;;;12327:17:0;;12290:4;12327:17;;;:9;:17;;;;;;;:53;;12349:6;;12327:21;:53::i;:::-;-1:-1:-1;;;;;12307:17:0;;;;;;;:9;:17;;;;;;:73;;;;12414:20;;;;;;;:32;;12439:6;12414:24;:32::i;:::-;-1:-1:-1;;;;;12391:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12462:35;;;;;;-1:-1:-1;;;;;;;;;;;12462:35:0;;;12490:6;352:25:1;;340:2;325:18;;206:177;12462:35:0;;;;;;;;-1:-1:-1;12515:4:0;12197:330;;;;;:::o;12535:168::-;12632:12;;12622:6;:22;;:51;;;-1:-1:-1;;;;;;12648:25:0;;;;;;:17;:25;;;;;;;;12622:51;12614:81;;;;-1:-1:-1;;;12614:81:0;;14793:2:1;12614:81:0;;;14775:21:1;14832:2;14812:18;;;14805:30;-1:-1:-1;;;14851:18:1;;;14844:47;14908:18;;12614:81:0;14591:341:1;12614:81:0;12535:168;;:::o;13800:197::-;13887:4;;13849;;-1:-1:-1;;;;;13887:4:0;13873:10;:18;;;;:38;;-1:-1:-1;13905:6:0;;;;13904:7;13873:38;:62;;;;-1:-1:-1;13924:11:0;;;;13873:62;:116;;;;-1:-1:-1;;13976:13:0;;;13966:4;13948:24;;;;:9;:24;;;;;;;;:41;;;13800:197::o;15413:1853::-;7673:6;:13;;-1:-1:-1;;7673:13:0;7682:4;7673:13;;;15504:9:::1;::::0;15515:20:::1;::::0;7673:6;;15492:44:::1;::::0;:11:::1;:44::i;:::-;:63;;15543:12;;15492:63;;;15539:1;15492:63;15462:93;;15566:23;15592:59;15649:1;15592:52;15635:8;;15592:38;15610:19;15592:13;;:17;;:38;;;;:::i;:59::-;15566:85;;15662:20;15685:34;15703:15;15685:13;;:17;;:34;;;;:::i;:::-;15756:16;::::0;;15770:1:::1;15756:16:::0;;;;;::::1;::::0;;15662:57;;-1:-1:-1;15732:21:0::1;::::0;15756:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15756:16:0::1;15732:40;;15801:4;15783;15788:1;15783:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15783:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15827:4:::1;::::0;15817:7;;15827:4;::::1;::::0;15817;;15827;;15817:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15817:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15902:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15902:188:0;;15868:21:::1;::::0;15902:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15974:12;;15844:21:::1;::::0;16017:4;;16044::::1;::::0;16064:15:::1;::::0;15902:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16103:17;16123:40;16149:13;16123:21;:25;;:40;;;;:::i;:::-;16103:60:::0;-1:-1:-1;16176:19:0::1;16198:40;16211:26;:19:::0;16235:1:::1;16211:23;:26::i;:::-;16198:8;::::0;;:12:::1;:40::i;:::-;16176:62:::0;-1:-1:-1;16259:26:0::1;16288:58;16344:1;16288:51;16176:62:::0;16288:51;:9;16302:19;16288:13:::1;:34::i;:58::-;16259:87;;16357:26;16386:44;16418:11;16386:27;16400:12;;16386:9;:13;;:27;;;;:::i;:44::-;16357:73;;16441:24;16468:42;16498:11;16468:25;16482:10;;16468:9;:13;;:25;;;;:::i;:42::-;16441:69;;16521:21;16545:39;16572:11;16545:22;16559:7;;16545:9;:13;;:22;;;;:::i;:39::-;16626:20;::::0;16618:65:::1;::::0;16521:63;;-1:-1:-1;16598:15:0::1;::::0;-1:-1:-1;;;;;16626:20:0;;::::1;::::0;16660:18;;16598:15;16618:65;16598:15;16618:65;16660:18;16626:20;16618:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16718:15:0::1;::::0;16710:55:::1;::::0;16597:86;;-1:-1:-1;;;;;;16718:15:0::1;::::0;16747:13;;16710:55:::1;::::0;;;16747:13;16718:15;16710:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16800:18:0::1;::::0;16792:61:::1;::::0;16694:71;;-1:-1:-1;;;;;;16800:18:0::1;::::0;16832:16;;16792:61:::1;::::0;;;16832:16;16800:18;16792:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16887:5:0::1;::::0;-1:-1:-1;;16908:19:0;;;-1:-1:-1;16905:354:0::1;;16943:6;::::0;17117:13:::1;::::0;16943:236:::1;::::0;-1:-1:-1;;;16943:236:0;;17019:4:::1;16943:236;::::0;::::1;16546:51:1::0;16613:18;;;16606:34;;;16943:6:0::1;16656:18:1::0;;;16649:34;;;16699:18;;;16692:34;-1:-1:-1;;;;;17117:13:0;;::::1;16742:19:1::0;;;16735:61;17149:15:0::1;16812:19:1::0;;;16805:35;16943:6:0;::::1;::::0;:22:::1;::::0;16973:18;;16518:19:1;;16943:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17199:48:0::1;::::0;;17486:25:1;;;17542:2;17527:18;;17520:34;;;17199:48:0::1;::::0;-1:-1:-1;17459:18:1;17199:48:0::1;;;;;;;16905:354;-1:-1:-1::0;;7691:6:0;:14;;-1:-1:-1;;7691:14:0;;;-1:-1:-1;;;;;;;;;;15413:1853:0:o;12838:954::-;12968:11;;13006:4;;12924:7;;12968:11;-1:-1:-1;;;;;13006:4:0;;;12993:17;;;;12990:126;;-1:-1:-1;13033:7:0;;12990:126;;;13071:4;;-1:-1:-1;;;;;13071:4:0;;;13061:14;;;;13058:58;;-1:-1:-1;13098:6:0;;13058:58;13128:17;13148:55;13182:14;;13199:3;13182:20;;;;:::i;:::-;13148:29;13173:3;13148:20;13159:8;;13148:6;:10;;:20;;;;:::i;:55::-;13128:75;;13214:18;13235:36;13262:8;;13235:22;13249:7;;13235:9;:13;;:22;;;;:::i;:36::-;13214:57;-1:-1:-1;13282:22:0;13307:25;:9;13214:57;13307:13;:25::i;:::-;13388:4;13370:24;;;;:9;:24;;;;;;13282:50;;-1:-1:-1;13370:44:0;;13282:50;13370:28;:44::i;:::-;13361:4;13343:24;;;;:9;:24;;;;;;:71;;;;13464:15;;-1:-1:-1;;;;;13464:15:0;13454:26;;;;:42;;13485:10;13454:30;:42::i;:::-;13435:15;;-1:-1:-1;;;;;13435:15:0;;;13425:26;;;;:9;:26;;;;;;;;;:71;;;;13512:47;352:25:1;;;13537:4:0;;13512:47;;;;-1:-1:-1;;;;;;;;;;;13512:47:0;325:18:1;13512:47:0;;;;;;;13593:14;;13590:154;;13638:12;;:28;;13655:10;13638:16;:28::i;:::-;13623:12;:43;13686:34;;352:25:1;;;5307:42:0;;-1:-1:-1;;;;;13686:34:0;;;-1:-1:-1;;;;;;;;;;;13686:34:0;340:2:1;325:18;13686:34:0;;;;;;;13590:154;13763:21;:6;13774:9;13763:10;:21::i;:::-;13756:28;12838:954;-1:-1:-1;;;;;;;;12838:954:0:o;4918:189::-;5004:7;5039:12;5032:5;5024:28;;;;-1:-1:-1;;;5024:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5063:9:0;5075:5;5079:1;5075;:5;:::i;388:418:1:-;537:2;526:9;519:21;500:4;569:6;563:13;612:6;607:2;596:9;592:18;585:34;671:6;666:2;658:6;654:15;649:2;638:9;634:18;628:50;727:1;722:2;713:6;702:9;698:22;694:31;687:42;797:2;790;786:7;781:2;773:6;769:15;765:29;754:9;750:45;746:54;738:62;;;388:418;;;;:::o;811:173::-;879:20;;-1:-1:-1;;;;;928:31:1;;918:42;;908:70;;974:1;971;964:12;908:70;811:173;;;:::o;989:300::-;1057:6;1065;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;989:300:1:o;1483:829::-;1587:6;1595;1603;1611;1619;1627;1680:3;1668:9;1659:7;1655:23;1651:33;1648:53;;;1697:1;1694;1687:12;1648:53;-1:-1:-1;;1742:23:1;;;1862:2;1847:18;;1834:32;;-1:-1:-1;1965:2:1;1950:18;;1937:32;;2068:2;2053:18;;2040:32;;-1:-1:-1;2171:3:1;2156:19;;2143:33;;-1:-1:-1;2275:3:1;2260:19;2247:33;;-1:-1:-1;1483:829:1;-1:-1:-1;1483:829:1:o;2317:374::-;2394:6;2402;2410;2463:2;2451:9;2442:7;2438:23;2434:32;2431:52;;;2479:1;2476;2469:12;2431:52;2502:29;2521:9;2502:29;:::i;:::-;2492:39;;2550:38;2584:2;2573:9;2569:18;2550:38;:::i;:::-;2317:374;;2540:48;;-1:-1:-1;;;2657:2:1;2642:18;;;;2629:32;;2317:374::o;2696:226::-;2755:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:52;;;2824:1;2821;2814:12;2776:52;-1:-1:-1;2869:23:1;;2696:226;-1:-1:-1;2696:226:1:o;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:361;3115:6;3123;3176:2;3164:9;3155:7;3151:23;3147:32;3144:52;;;3192:1;3189;3182:12;3144:52;3231:9;3218:23;3250:28;3272:5;3250:28;:::i;3416:484::-;3511:6;3519;3527;3535;3543;3596:3;3584:9;3575:7;3571:23;3567:33;3564:53;;;3613:1;3610;3603:12;3564:53;3636:29;3655:9;3636:29;:::i;:::-;3626:39;;3684:38;3718:2;3707:9;3703:18;3684:38;:::i;:::-;3674:48;;3741:38;3775:2;3764:9;3760:18;3741:38;:::i;:::-;3731:48;;3798:38;3832:2;3821:9;3817:18;3798:38;:::i;:::-;3788:48;;3855:39;3889:3;3878:9;3874:19;3855:39;:::i;:::-;3845:49;;3416:484;;;;;;;;:::o;3905:186::-;3964:6;4017:2;4005:9;3996:7;3992:23;3988:32;3985:52;;;4033:1;4030;4023:12;3985:52;4056:29;4075:9;4056:29;:::i;4304:367::-;4367:8;4377:6;4431:3;4424:4;4416:6;4412:17;4408:27;4398:55;;4449:1;4446;4439:12;4398:55;-1:-1:-1;4472:20:1;;4515:18;4504:30;;4501:50;;;4547:1;4544;4537:12;4501:50;4584:4;4576:6;4572:17;4560:29;;4644:3;4637:4;4627:6;4624:1;4620:14;4612:6;4608:27;4604:38;4601:47;4598:67;;;4661:1;4658;4651:12;4598:67;4304:367;;;;;:::o;4676:842::-;4807:6;4815;4823;4831;4839;4892:2;4880:9;4871:7;4867:23;4863:32;4860:52;;;4908:1;4905;4898:12;4860:52;4931:29;4950:9;4931:29;:::i;:::-;4921:39;;5011:2;5000:9;4996:18;4983:32;5038:18;5030:6;5027:30;5024:50;;;5070:1;5067;5060:12;5024:50;5109:70;5171:7;5162:6;5151:9;5147:22;5109:70;:::i;:::-;5198:8;;-1:-1:-1;5083:96:1;-1:-1:-1;;5286:2:1;5271:18;;5258:32;5315:18;5302:32;;5299:52;;;5347:1;5344;5337:12;5299:52;5386:72;5450:7;5439:8;5428:9;5424:24;5386:72;:::i;:::-;4676:842;;;;-1:-1:-1;4676:842:1;;-1:-1:-1;5477:8:1;;5360:98;4676:842;-1:-1:-1;;;4676:842:1:o;5523:466::-;5600:6;5608;5616;5669:2;5657:9;5648:7;5644:23;5640:32;5637:52;;;5685:1;5682;5675:12;5637:52;-1:-1:-1;;5730:23:1;;;5850:2;5835:18;;5822:32;;-1:-1:-1;5953:2:1;5938:18;;;5925:32;;5523:466;-1:-1:-1;5523:466:1:o;5994:260::-;6062:6;6070;6123:2;6111:9;6102:7;6098:23;6094:32;6091:52;;;6139:1;6136;6129:12;6091:52;6162:29;6181:9;6162:29;:::i;:::-;6152:39;;6210:38;6244:2;6233:9;6229:18;6210:38;:::i;:::-;6200:48;;5994:260;;;;;:::o;6485:346::-;6553:6;6561;6614:2;6602:9;6593:7;6589:23;6585:32;6582:52;;;6630:1;6627;6620:12;6582:52;-1:-1:-1;;6675:23:1;;;6795:2;6780:18;;;6767:32;;-1:-1:-1;6485:346:1:o;6836:406::-;6899:6;6907;6960:2;6948:9;6939:7;6935:23;6931:32;6928:52;;;6976:1;6973;6966:12;6928:52;7015:9;7002:23;7034:28;7056:5;7034:28;:::i;:::-;7081:5;-1:-1:-1;7138:2:1;7123:18;;7110:32;7186:4;7173:18;;7161:31;;7151:59;;7206:1;7203;7196:12;7151:59;7229:7;7219:17;;;6836:406;;;;;:::o;7247:356::-;7449:2;7431:21;;;7468:18;;;7461:30;7527:34;7522:2;7507:18;;7500:62;7594:2;7579:18;;7247:356::o;7608:127::-;7669:10;7664:3;7660:20;7657:1;7650:31;7700:4;7697:1;7690:15;7724:4;7721:1;7714:15;7740:217;7780:1;7806;7796:132;;7850:10;7845:3;7841:20;7838:1;7831:31;7885:4;7882:1;7875:15;7913:4;7910:1;7903:15;7796:132;-1:-1:-1;7942:9:1;;7740:217::o;9083:230::-;9153:6;9206:2;9194:9;9185:7;9181:23;9177:32;9174:52;;;9222:1;9219;9212:12;9174:52;-1:-1:-1;9267:16:1;;9083:230;-1:-1:-1;9083:230:1:o;9597:245::-;9664:6;9717:2;9705:9;9696:7;9692:23;9688:32;9685:52;;;9733:1;9730;9723:12;9685:52;9765:9;9759:16;9784:28;9806:5;9784:28;:::i;10670:127::-;10731:10;10726:3;10722:20;10719:1;10712:31;10762:4;10759:1;10752:15;10786:4;10783:1;10776:15;10802:125;10867:9;;;10888:10;;;10885:36;;;10901:18;;:::i;11288:168::-;11361:9;;;11392;;11409:15;;;11403:22;;11389:37;11379:71;;11430:18;;:::i;12569:128::-;12636:9;;;12657:11;;;12654:37;;;12671:18;;:::i;15069:959::-;15331:4;15379:3;15368:9;15364:19;15410:6;15399:9;15392:25;15453:6;15448:2;15437:9;15433:18;15426:34;15496:3;15491:2;15480:9;15476:18;15469:31;15520:6;15555;15549:13;15586:6;15578;15571:22;15624:3;15613:9;15609:19;15602:26;;15663:2;15655:6;15651:15;15637:29;;15684:1;15694:195;15708:6;15705:1;15702:13;15694:195;;;15773:13;;-1:-1:-1;;;;;15769:39:1;15757:52;;15838:2;15864:15;;;;15829:12;;;;15805:1;15723:9;15694:195;;;-1:-1:-1;;;;;;;15945:32:1;;;;15940:2;15925:18;;15918:60;-1:-1:-1;;16009:3:1;15994:19;15987:35;15906:3;15069:959;-1:-1:-1;;;15069:959:1:o;16851:456::-;16939:6;16947;16955;17008:2;16996:9;16987:7;16983:23;16979:32;16976:52;;;17024:1;17021;17014:12;16976:52;-1:-1:-1;;17069:16:1;;17175:2;17160:18;;17154:25;17271:2;17256:18;;;17250:25;17069:16;;17154:25;;-1:-1:-1;17250:25:1;16851:456;-1:-1:-1;16851:456:1:o
Swarm Source
ipfs://74db1e407099634a7a5b22df942f87769a96bcca648d4da7f250adbc8f4b210e
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.