ERC-20
Overview
Max Total Supply
1,000,000,000 BPHIL
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000215906406 BPHILValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
babyphil
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-28 */ /* Phil - born of genesis, has awoken! And Baby Phil ($BPHIL) has joined him, rewarding holders its with automatic $PHIL reflections! https://x.com/BabyPhilToken https://t.me/BabyPhilToken https://babyphiltoken.com */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ interface IERC20 { 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface 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 IPhilReflections { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; function gibTokens(address shareholder) external; } contract PhilReflections is IPhilReflections { using SafeMath for uint256; address _token; address public PHIL; IDEXRouter router; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 0 * (10 ** 9); uint256 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor () { _token = msg.sender; router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); PHIL = 0xc328a59E7321747aEBBc49FD28d1b32C1af8d3b2; } receive() external payable { deposit(); } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() public payable override { uint256 balanceBefore = IERC20(PHIL).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(PHIL); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = IERC20(PHIL).balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); IERC20(PHIL).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function gibTokens(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract babyphil is Context, IERC20, Ownable { using SafeMath for uint256; address public PHIL = 0xc328a59E7321747aEBBc49FD28d1b32C1af8d3b2; //PHIL CA string private constant _name = "Baby Phil"; string private constant _symbol = "BPHIL"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping (address => uint256) private cooldown; address private WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; bool public antiBot = true; mapping (address => bool) private bots; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; uint256 public launchedAt; address public lpWallet = DEAD; uint256 public buyFee = 90; uint256 public sellFee = 90; uint256 public toReflections = 50; uint256 public toLiquidity = 0; uint256 public toMarketing = 50; uint256 public allocationSum = 100; IDEXRouter public router; address public pair; address public factory; address private tokenOwner; address public devWallet = payable(0xFCAC0Ab48574E367Ffa7366F7414E53376325DEc); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingOpen = false; PhilReflections public philReflections; uint256 public philReflectionsGas = 0; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } uint256 public maxTx = _totalSupply.div(100); uint256 public maxWallet = _totalSupply.div(50); uint256 public swapThreshold = _totalSupply.div(400); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; philReflections = new PhilReflections(); isFeeExempt[owner()] = true; isFeeExempt[devWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[devWallet] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable { } function setBots(address[] memory bots_) external onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //once enabled, cannot be reversed function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { buyFee = newBuyFee; sellFee = newSellFee; } function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner { toReflections = newRewardFee; toLiquidity = newLpFee; toMarketing = newMarketingFee; } function changeTxLimit(uint256 newLimit) external onlyOwner { maxTx = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { maxWallet = newLimit; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setDevWallet(address payable newDevWallet) external onlyOwner { devWallet = payable(newDevWallet); } function setOwnerWallet(address payable newOwnerWallet) external onlyOwner { tokenOwner = newOwnerWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner { philReflections.setDistributionCriteria(newMinPeriod, newMinDistribution); } function delBot(address notbot) external onlyOwner { bots[notbot] = false; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ philReflections.setShare(holder, 0); }else{ philReflections.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function changePhilReflectionsGas(uint256 newGas) external onlyOwner { philReflectionsGas = newGas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } 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 _transfer(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 _transfer(sender, recipient, amount); } function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) { if (sender!= owner() && recipient!= owner()) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive require(!bots[sender] && !bots[recipient]); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } require(amount <= maxTx || isTxLimitExempt[sender], "tx"); if(!isTxLimitExempt[recipient] && antiBot) { require(_balances[recipient].add(amount) <= maxWallet, "wallet"); } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try philReflections.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try philReflections.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, finalAmount); 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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? sellFee : buyFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); approve(address(this), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, lpWallet, block.timestamp ); } function swapBack() internal lockTheSwap { uint256 tokenBalance = _balances[address(this)]; uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2); uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity); swapTokensForEth(amountToSwap); uint256 totalEthBalance = address(this).balance; uint256 ethForPHIL = totalEthBalance.mul(toReflections).div(100); uint256 ethForDev = totalEthBalance.mul(toMarketing).div(100); uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2); if (totalEthBalance > 0){ payable(devWallet).transfer(ethForDev); } try philReflections.deposit{value: ethForPHIL}() {} catch {} if (tokensForLiquidity > 0){ addLiquidity(tokensForLiquidity, ethForLiquidity); } } function manualSwapBack() external onlyOwner { swapBack(); } function clearStuckEth() external onlyOwner { uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0){ payable(devWallet).transfer(contractETHBalance); } } function manualProcessGas(uint256 manualGas) external onlyOwner { philReflections.process(manualGas); } function checkPendingReflections(address shareholder) external view returns (uint256) { return philReflections.getUnpaidEarnings(shareholder); } function getPHIL() external { philReflections.gibTokens(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"PHIL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changePhilReflectionsGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPHIL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"philReflections","outputs":[{"internalType":"contract PhilReflections","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"philReflectionsGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b03191673c328a59e7321747aebbc49fd28d1b32c1af8d3b2179055620000386012600a62000658565b6200004890633b9aca0062000669565b6002819055600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e80549091169091179055605a600f81905560105560326011819055600060128190556013919091556064601481905560198054600162ffff0160a01b031916750100fcac0ab48574e367ffa7366f7414e53376325dec179055601b91909155620000f89190620014636200049f602090811b91909117901c565b601c556200011860326002546200049f60201b620014631790919060201c565b601d55620001396101906002546200049f60201b620014631790919060201c565b601e553480156200014957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021691906200068b565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b91906200068b565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031391906200068b565b601680546001600160a01b0319166001600160a01b039283161790553060009081526004602090815260408083206015549094168352929052819020600019905551620003609062000537565b604051809103906000f0801580156200037d573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790556000805482168152600a60209081526040808320805460ff199081166001908117909255601980548716865283862080548316841790556016805488168752600c86528487208054841685179055308752848720805484168517905560078054891688528588208054851686179055875489168852600b8752858820805485168617905590548816875284872080548416851790555487168652838620805483168417905554861685528285208054909116909117905560025483548516845260038352818420819055835491519081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000738565b6000620004e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004f260201b60201c565b90505b92915050565b600081836200051f5760405162461bcd60e51b8152600401620005169190620006bd565b60405180910390fd5b5060006200052e848662000715565b95945050505050565b61109d8062002d0983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200059c57816000190482111562000580576200058062000545565b808516156200058e57918102915b93841c939080029062000560565b509250929050565b600082620005b557506001620004ec565b81620005c457506000620004ec565b8160018114620005dd5760028114620005e85762000608565b6001915050620004ec565b60ff841115620005fc57620005fc62000545565b50506001821b620004ec565b5060208310610133831016604e8410600b84101617156200062d575081810a620004ec565b6200063983836200055b565b806000190482111562000650576200065062000545565b029392505050565b6000620004e960ff841683620005a4565b600081600019048311821515161562000686576200068662000545565b500290565b6000602082840312156200069e57600080fd5b81516001600160a01b0381168114620006b657600080fd5b9392505050565b600060208083528351808285015260005b81811015620006ec57858101830151858201604001528201620006ce565b81811115620006ff576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200073357634e487b7160e01b600052601260045260246000fd5b500490565b6125c180620007486000396000f3fe6080604052600436106103905760003560e01c80637dfcbe34116101dc578063bf56b37111610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610a79578063f8b45b0514610a99578063fabe628314610aaf578063ffb54a9914610acf57600080fd5b8063dd62ed3e146109dd578063df6dabbd14610a23578063f2fde38b14610a39578063f708a64f14610a5957600080fd5b8063c8d1293d116100dc578063c8d1293d1461097c578063c9567bf914610992578063caa5581b146109a7578063d920334e146109bd57600080fd5b8063bf56b37114610926578063c45a01551461093c578063c67450b41461095c57600080fd5b806395d89b411161017a578063a8aa1b3111610149578063a8aa1b31146108a6578063a9059cbb146108c6578063b515566a146108e6578063bb542ef01461090657600080fd5b806395d89b41146108185780639674a0e014610846578063a10e4ba514610866578063a3a2e89e1461088657600080fd5b8063893d20e8116101b6578063893d20e8146107aa5780638b42507f146107c85780638da5cb5b146107aa5780638ea5220f146107f857600080fd5b80637dfcbe3414610754578063819340311461077557806389291a8f1461079557600080fd5b80633dab5269116102c15780636303516c1161025f5780637437681e1161022e5780637437681e146106e857806375df1305146106fe57806377359aa7146107145780637db1342c1461073457600080fd5b80636303516c1461065057806366eb37851461068857806370a082311461069d578063715018a6146106d357600080fd5b8063454343771161029b57806345434377146105e357806347062402146105f95780634a74bb021461060f578063571ac8b01461063057600080fd5b80633dab5269146105635780633f4218e0146105835780634355855a146105b357600080fd5b8063273123b71161032e5780632d48e896116103085780632d48e896146104e75780632dbea2e11461050757806330ca34ee14610527578063313ce5671461054757600080fd5b8063273123b71461049c5780632b112e49146104bc5780632b14ca56146104d157600080fd5b8063110c4f5e1161036a578063110c4f5e1461043057806318160ddd146104475780631f53ac021461045c57806323b872dd1461047c57600080fd5b80630445b6671461039c57806306fdde03146103c5578063095ea7b31461040057600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b2601e5481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506040805180820190915260098152681098589e48141a1a5b60ba1b60208201525b6040516103bc91906120ec565b34801561040c57600080fd5b5061042061041b366004612166565b610af0565b60405190151581526020016103bc565b34801561043c57600080fd5b50610445610b5d565b005b34801561045357600080fd5b506002546103b2565b34801561046857600080fd5b50610445610477366004612192565b610bbc565b34801561048857600080fd5b506104206104973660046121af565b610c11565b3480156104a857600080fd5b506104456104b7366004612192565b610cd3565b3480156104c857600080fd5b506103b2610d1e565b3480156104dd57600080fd5b506103b260105481565b3480156104f357600080fd5b506104456105023660046121f0565b610d70565b34801561051357600080fd5b50610445610522366004612212565b610e04565b34801561053357600080fd5b506104456105423660046121f0565b610e3c565b34801561055357600080fd5b50604051601281526020016103bc565b34801561056f57600080fd5b5061044561057e36600461224e565b610e71565b34801561058f57600080fd5b5061042061059e366004612192565b600a6020526000908152604090205460ff1681565b3480156105bf57600080fd5b506104206105ce366004612192565b600c6020526000908152604090205460ff1681565b3480156105ef57600080fd5b506103b260145481565b34801561060557600080fd5b506103b2600f5481565b34801561061b57600080fd5b5060195461042090600160a81b900460ff1681565b34801561063c57600080fd5b5061042061064b366004612192565b610ebd565b34801561065c57600080fd5b50600e54610670906001600160a01b031681565b6040516001600160a01b0390911681526020016103bc565b34801561069457600080fd5b50610445610ecb565b3480156106a957600080fd5b506103b26106b8366004612192565b6001600160a01b031660009081526003602052604090205490565b3480156106df57600080fd5b50610445610eff565b3480156106f457600080fd5b506103b2601c5481565b34801561070a57600080fd5b506103b260135481565b34801561072057600080fd5b506103b261072f366004612192565b610f73565b34801561074057600080fd5b5061044561074f36600461226a565b610fe2565b34801561076057600080fd5b5060085461042090600160a01b900460ff1681565b34801561078157600080fd5b5061044561079036600461226a565b611011565b3480156107a157600080fd5b5061044561109f565b3480156107b657600080fd5b506000546001600160a01b0316610670565b3480156107d457600080fd5b506104206107e3366004612192565b600b6020526000908152604090205460ff1681565b34801561080457600080fd5b50601954610670906001600160a01b031681565b34801561082457600080fd5b50604080518082019091526005815264109412125360da1b60208201526103f3565b34801561085257600080fd5b5061044561086136600461226a565b61110f565b34801561087257600080fd5b50600154610670906001600160a01b031681565b34801561089257600080fd5b506104456108a1366004612283565b61113e565b3480156108b257600080fd5b50601654610670906001600160a01b031681565b3480156108d257600080fd5b506104206108e1366004612166565b611193565b3480156108f257600080fd5b506104456109013660046122ce565b6111a0565b34801561091257600080fd5b50610445610921366004612192565b611232565b34801561093257600080fd5b506103b2600d5481565b34801561094857600080fd5b50601754610670906001600160a01b031681565b34801561096857600080fd5b50601a54610670906001600160a01b031681565b34801561098857600080fd5b506103b260125481565b34801561099e57600080fd5b5061044561127e565b3480156109b357600080fd5b506103b260115481565b3480156109c957600080fd5b506104456109d836600461226a565b6112c1565b3480156109e957600080fd5b506103b26109f8366004612393565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2f57600080fd5b506103b2601b5481565b348015610a4557600080fd5b50610445610a54366004612192565b6112f0565b348015610a6557600080fd5b50610445610a74366004612283565b6113da565b348015610a8557600080fd5b50601554610670906001600160a01b031681565b348015610aa557600080fd5b506103b2601d5481565b348015610abb57600080fd5b50610445610aca366004612283565b61140e565b348015610adb57600080fd5b5060195461042090600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b4b9086815260200190565b60405180910390a35060015b92915050565b601a5460405163bd14ae2760e01b81523360048201526001600160a01b039091169063bd14ae2790602401600060405180830381600087803b158015610ba257600080fd5b505af1158015610bb6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610bef5760405162461bcd60e51b8152600401610be6906123cc565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610cbe576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610c999184906114a5565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cc98484846114df565b90505b9392505050565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d6b906007546001600160a01b0316600090815260036020526040902054610d659060025490611995565b90611995565b905090565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610be6906123cc565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610de857600080fd5b505af1158015610dfc573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e2e5760405162461bcd60e51b8152600401610be6906123cc565b601192909255601255601355565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610be6906123cc565b600f91909155601055565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b8152600401610be6906123cc565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000610b5782600019610af0565b6000546001600160a01b03163314610ef55760405162461bcd60e51b8152600401610be6906123cc565b610efd6119d7565b565b6000546001600160a01b03163314610f295760405162461bcd60e51b8152600401610be6906123cc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b579190612401565b6000546001600160a01b0316331461100c5760405162461bcd60e51b8152600401610be6906123cc565b601d55565b6000546001600160a01b0316331461103b5760405162461bcd60e51b8152600401610be6906123cc565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110c95760405162461bcd60e51b8152600401610be6906123cc565b47801561110c576019546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561110a573d6000803e3d6000fd5b505b50565b6000546001600160a01b031633146111395760405162461bcd60e51b8152600401610be6906123cc565b601b55565b6000546001600160a01b031633146111685760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610ccc3384846114df565b6000546001600160a01b031633146111ca5760405162461bcd60e51b8152600401610be6906123cc565b60005b815181101561110a576001600960008484815181106111ee576111ee61241a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061122a81612446565b9150506111cd565b6000546001600160a01b0316331461125c5760405162461bcd60e51b8152600401610be6906123cc565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112a85760405162461bcd60e51b8152600401610be6906123cc565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112eb5760405162461bcd60e51b8152600401610be6906123cc565b601c55565b6000546001600160a01b0316331461131a5760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03811661137f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114045760405162461bcd60e51b8152600401610be6906123cc565b61110a8282611b65565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610ccc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b600081848411156114c95760405162461bcd60e51b8152600401610be691906120ec565b5060006114d6848661245f565b95945050505050565b600080546001600160a01b0385811691161480159061150c57506000546001600160a01b03848116911614155b1561156a57601954600160b01b900460ff1661156a5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610be6565b6001600160a01b03841660009081526009602052604090205460ff161580156115ac57506001600160a01b03831660009081526009602052604090205460ff16155b6115b557600080fd5b601954600160a01b900460ff16156115d9576115d2848484611ca4565b9050610ccc565b601c548211158061160257506001600160a01b0384166000908152600b602052604090205460ff165b6116335760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610be6565b6001600160a01b0383166000908152600b602052604090205460ff161580156116655750600854600160a01b900460ff165b156116c757601d546001600160a01b0384166000908152600360205260409020546116909084611d8a565b11156116c75760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610be6565b6016546001600160a01b031633148015906116ec5750601954600160a01b900460ff16155b80156117015750601954600160a81b900460ff165b801561171e5750601e543060009081526003602052604090205410155b1561172b5761172b6119d7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461177d9184906114a5565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff161580156117cd57506001600160a01b0384166000908152600a602052604090205460ff16155b6117d757826117e2565b6117e2858585611de9565b6001600160a01b0385166000908152600360205260409020549091506118089082611d8a565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff166118ac57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561189957600080fd5b505af19250505080156118aa575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661193d57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561192a57600080fd5b505af192505050801561193b575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161198291815260200190565b60405180910390a3506001949350505050565b6000610ccc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a5565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611a1d90600290611a179060649082908790611eac565b90611463565b90506000611a2b8383611995565b9050611a3681611f2e565b60004790506000611a576064611a1760115485611eac90919063ffffffff16565b90506000611a756064611a1760135486611eac90919063ffffffff16565b90506000611a986002611a176064611a1760125489611eac90919063ffffffff16565b90508315611adc576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611ada573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b2c57600080fd5b505af193505050508015611b3e575060015b508515611b4f57611b4f8682612057565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b8c57506016546001600160a01b03838116911614155b611b9557600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611c2d57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b5050505061110a565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610dce565b60008183611c975760405162461bcd60e51b8152600401610be691906120ec565b5060006114d68486612476565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611cf59184906114a5565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d249083611d8a565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d789086815260200190565b60405180910390a35060019392505050565b600080611d978385612498565b905083811015610ccc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610be6565b60165460009081906001600160a01b03858116911614611e0b57600f54611e0f565b6010545b90506000611e226064611a178685611eac565b30600090815260036020526040902054909150611e3f9082611d8a565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e909085815260200190565b60405180910390a3611ea28482611995565b9695505050505050565b600082600003611ebe57506000610b57565b6000611eca83856124b0565b905082611ed78583612476565b14610ccc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610be6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f6357611f6361241a565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe091906124cf565b81600181518110611ff357611ff361241a565b60200260200101906001600160a01b031690816001600160a01b03168152505061201d3083610af0565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dce9085906000908690309042906004016124ec565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120c7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611098919061255d565b600060208083528351808285015260005b81811015612119578581018301518582016040015282016120fd565b8181111561212b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461110c57600080fd5b803561216181612141565b919050565b6000806040838503121561217957600080fd5b823561218481612141565b946020939093013593505050565b6000602082840312156121a457600080fd5b8135610ccc81612141565b6000806000606084860312156121c457600080fd5b83356121cf81612141565b925060208401356121df81612141565b929592945050506040919091013590565b6000806040838503121561220357600080fd5b50508035926020909101359150565b60008060006060848603121561222757600080fd5b505081359360208301359350604090920135919050565b8035801515811461216157600080fd5b6000806040838503121561226157600080fd5b6121848361223e565b60006020828403121561227c57600080fd5b5035919050565b6000806040838503121561229657600080fd5b82356122a181612141565b91506122af6020840161223e565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156122e157600080fd5b823567ffffffffffffffff808211156122f957600080fd5b818501915085601f83011261230d57600080fd5b81358181111561231f5761231f6122b8565b8060051b604051601f19603f83011681018181108582111715612344576123446122b8565b60405291825284820192508381018501918883111561236257600080fd5b938501935b828510156123875761237885612156565b84529385019392850192612367565b98975050505050505050565b600080604083850312156123a657600080fd5b82356123b181612141565b915060208301356123c181612141565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561241357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161245857612458612430565b5060010190565b60008282101561247157612471612430565b500390565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612430565b500190565b60008160001904831182151516156124ca576124ca612430565b500290565b6000602082840312156124e157600080fd5b8151610ccc81612141565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561253c5784516001600160a01b031683529383019391830191600101612517565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561257257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220146c2fc980a50b48ff9d0d208059544e89c5ff1087f56322dbc26b4bc2f0d7bb64736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001805490911673c328a59e7321747aebbc49fd28d1b32c1af8d3b217905561100d806100906000396000f3fe6080604052600436106101025760003560e01c8063997664d711610095578063d0e30db011610064578063d0e30db0146102d6578063e2d2e219146102de578063efca2eed146102f4578063ffb2c4791461030a578063ffd49c841461032a57600080fd5b8063997664d714610211578063a10e4ba514610227578063bd14ae271461025f578063ce7c2ac21461027f57600080fd5b80632d48e896116100d15780632d48e896146101955780633a98ef39146101b55780634fab0ae8146101cb5780638c21cd52146101e157600080fd5b806311ce023d1461011657806314b6ca961461013f57806326987b601461015f57806328fd31981461017557600080fd5b366101115761010f610340565b005b600080fd5b34801561012257600080fd5b5061012c600b5481565b6040519081526020015b60405180910390f35b34801561014b57600080fd5b5061010f61015a366004610d71565b6105b8565b34801561016b57600080fd5b5061012c600e5481565b34801561018157600080fd5b5061012c610190366004610d9d565b610730565b3480156101a157600080fd5b5061010f6101b0366004610dba565b6107bb565b3480156101c157600080fd5b5061012c60075481565b3480156101d757600080fd5b5061012c600d5481565b3480156101ed57600080fd5b506102016101fc366004610d9d565b6107dd565b6040519015158152602001610136565b34801561021d57600080fd5b5061012c60085481565b34801561023357600080fd5b50600154610247906001600160a01b031681565b6040516001600160a01b039091168152602001610136565b34801561026b57600080fd5b5061010f61027a366004610d9d565b610823565b34801561028b57600080fd5b506102bb61029a366004610d9d565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610136565b61010f610340565b3480156102ea57600080fd5b5061012c600a5481565b34801561030057600080fd5b5061012c60095481565b34801561031657600080fd5b5061010f610325366004610ddc565b610846565b34801561033657600080fd5b5061012c600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ad9190610df5565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190610e0e565b8160008151811061045357610453610e2b565b6001600160a01b039283166020918202929092010152600180548351921691839190811061048357610483610e2b565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104c990600090869030904290600401610e41565b6000604051808303818588803b1580156104e257600080fd5b505af11580156104f6573d6000803e3d6000fd5b50506001546040516370a0823160e01b81523060048201526000945061057693508692506001600160a01b03909116906370a0823190602401602060405180830381865afa15801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105709190610df5565b90610933565b600854909150610586908261097c565b600855600754600b546105b0916105a7916105a190856109e0565b90610a62565b600a549061097c565b600a55505050565b6000546001600160a01b031633146105cf57600080fd5b6001600160a01b038216600090815260066020526040902054156105f6576105f682610aa4565b60008111801561061c57506001600160a01b038216600090815260066020526040902054155b1561068257600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106b5565b801580156106a757506001600160a01b03821660009081526006602052604090205415155b156106b5576106b582610bc2565b6001600160a01b0382166000908152600660205260409020546007546106e69183916106e091610933565b9061097c565b6007556001600160a01b038216600090815260066020526040902081905561070d81610cd7565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361075757506000919050565b6001600160a01b03821660009081526006602052604081205461077990610cd7565b6001600160a01b0384166000908152600660205260409020600101549091508082116107a9575060009392505050565b6107b38282610933565b949350505050565b6000546001600160a01b031633146107d257600080fd5b600c91909155600d55565b600c546001600160a01b038216600090815260056020526040812054909142916108079190610ec1565b10801561081d5750600d5461081b83610730565b115b92915050565b6000546001600160a01b0316331461083a57600080fd5b61084381610aa4565b50565b6003546000819003610856575050565b60008060005a90505b848210801561086d57508383105b1561092c5783600e5410610881576000600e555b6108b36003600e548154811061089957610899610e2b565b6000918252602090912001546001600160a01b03166107dd565b156108ea576108ea6003600e54815481106108d0576108d0610e2b565b6000918252602090912001546001600160a01b0316610aa4565b6108ff6108f85a8390610933565b839061097c565b91505a600e8054919250600061091483610ed9565b9190505550828061092490610ed9565b93505061085f565b5050505050565b600061097583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cf4565b9392505050565b6000806109898385610ec1565b9050838110156109755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000826000036109f25750600061081d565b60006109fe8385610ef2565b905082610a0b8583610f11565b146109755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d7565b600061097583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d2e565b6001600160a01b0381166000908152600660205260408120549003610ac65750565b6000610ad182610730565b90508015610bbe57600954610ae6908261097c565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190610f33565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610b94908261097c565b6001600160a01b038316600090815260066020526040902060028101919091555461070d90610cd7565b5050565b60038054610bd290600190610f55565b81548110610be257610be2610e2b565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610c2057610c20610e2b565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610c6c90600190610f55565b81548110610c7c57610c7c610e2b565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610cb257610cb2610f6c565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061081d600b546105a1600a54856109e090919063ffffffff16565b60008184841115610d185760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f55565b95945050505050565b60008183610d4f5760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f11565b6001600160a01b038116811461084357600080fd5b60008060408385031215610d8457600080fd5b8235610d8f81610d5c565b946020939093013593505050565b600060208284031215610daf57600080fd5b813561097581610d5c565b60008060408385031215610dcd57600080fd5b50508035926020909101359150565b600060208284031215610dee57600080fd5b5035919050565b600060208284031215610e0757600080fd5b5051919050565b600060208284031215610e2057600080fd5b815161097581610d5c565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e8b5784516001600160a01b031683529383019391830191600101610e66565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ed457610ed4610eab565b500190565b600060018201610eeb57610eeb610eab565b5060010190565b6000816000190483118215151615610f0c57610f0c610eab565b500290565b600082610f2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610f4557600080fd5b8151801515811461097557600080fd5b600082821015610f6757610f67610eab565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b81811015610faf57858101830151858201604001528201610f93565b81811115610fc1576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212205bb34f46397db0f75a6fc0eb8e718fae3642188c8ba77e3486c64f859a1cf43b64736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103905760003560e01c80637dfcbe34116101dc578063bf56b37111610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610a79578063f8b45b0514610a99578063fabe628314610aaf578063ffb54a9914610acf57600080fd5b8063dd62ed3e146109dd578063df6dabbd14610a23578063f2fde38b14610a39578063f708a64f14610a5957600080fd5b8063c8d1293d116100dc578063c8d1293d1461097c578063c9567bf914610992578063caa5581b146109a7578063d920334e146109bd57600080fd5b8063bf56b37114610926578063c45a01551461093c578063c67450b41461095c57600080fd5b806395d89b411161017a578063a8aa1b3111610149578063a8aa1b31146108a6578063a9059cbb146108c6578063b515566a146108e6578063bb542ef01461090657600080fd5b806395d89b41146108185780639674a0e014610846578063a10e4ba514610866578063a3a2e89e1461088657600080fd5b8063893d20e8116101b6578063893d20e8146107aa5780638b42507f146107c85780638da5cb5b146107aa5780638ea5220f146107f857600080fd5b80637dfcbe3414610754578063819340311461077557806389291a8f1461079557600080fd5b80633dab5269116102c15780636303516c1161025f5780637437681e1161022e5780637437681e146106e857806375df1305146106fe57806377359aa7146107145780637db1342c1461073457600080fd5b80636303516c1461065057806366eb37851461068857806370a082311461069d578063715018a6146106d357600080fd5b8063454343771161029b57806345434377146105e357806347062402146105f95780634a74bb021461060f578063571ac8b01461063057600080fd5b80633dab5269146105635780633f4218e0146105835780634355855a146105b357600080fd5b8063273123b71161032e5780632d48e896116103085780632d48e896146104e75780632dbea2e11461050757806330ca34ee14610527578063313ce5671461054757600080fd5b8063273123b71461049c5780632b112e49146104bc5780632b14ca56146104d157600080fd5b8063110c4f5e1161036a578063110c4f5e1461043057806318160ddd146104475780631f53ac021461045c57806323b872dd1461047c57600080fd5b80630445b6671461039c57806306fdde03146103c5578063095ea7b31461040057600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b2601e5481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506040805180820190915260098152681098589e48141a1a5b60ba1b60208201525b6040516103bc91906120ec565b34801561040c57600080fd5b5061042061041b366004612166565b610af0565b60405190151581526020016103bc565b34801561043c57600080fd5b50610445610b5d565b005b34801561045357600080fd5b506002546103b2565b34801561046857600080fd5b50610445610477366004612192565b610bbc565b34801561048857600080fd5b506104206104973660046121af565b610c11565b3480156104a857600080fd5b506104456104b7366004612192565b610cd3565b3480156104c857600080fd5b506103b2610d1e565b3480156104dd57600080fd5b506103b260105481565b3480156104f357600080fd5b506104456105023660046121f0565b610d70565b34801561051357600080fd5b50610445610522366004612212565b610e04565b34801561053357600080fd5b506104456105423660046121f0565b610e3c565b34801561055357600080fd5b50604051601281526020016103bc565b34801561056f57600080fd5b5061044561057e36600461224e565b610e71565b34801561058f57600080fd5b5061042061059e366004612192565b600a6020526000908152604090205460ff1681565b3480156105bf57600080fd5b506104206105ce366004612192565b600c6020526000908152604090205460ff1681565b3480156105ef57600080fd5b506103b260145481565b34801561060557600080fd5b506103b2600f5481565b34801561061b57600080fd5b5060195461042090600160a81b900460ff1681565b34801561063c57600080fd5b5061042061064b366004612192565b610ebd565b34801561065c57600080fd5b50600e54610670906001600160a01b031681565b6040516001600160a01b0390911681526020016103bc565b34801561069457600080fd5b50610445610ecb565b3480156106a957600080fd5b506103b26106b8366004612192565b6001600160a01b031660009081526003602052604090205490565b3480156106df57600080fd5b50610445610eff565b3480156106f457600080fd5b506103b2601c5481565b34801561070a57600080fd5b506103b260135481565b34801561072057600080fd5b506103b261072f366004612192565b610f73565b34801561074057600080fd5b5061044561074f36600461226a565b610fe2565b34801561076057600080fd5b5060085461042090600160a01b900460ff1681565b34801561078157600080fd5b5061044561079036600461226a565b611011565b3480156107a157600080fd5b5061044561109f565b3480156107b657600080fd5b506000546001600160a01b0316610670565b3480156107d457600080fd5b506104206107e3366004612192565b600b6020526000908152604090205460ff1681565b34801561080457600080fd5b50601954610670906001600160a01b031681565b34801561082457600080fd5b50604080518082019091526005815264109412125360da1b60208201526103f3565b34801561085257600080fd5b5061044561086136600461226a565b61110f565b34801561087257600080fd5b50600154610670906001600160a01b031681565b34801561089257600080fd5b506104456108a1366004612283565b61113e565b3480156108b257600080fd5b50601654610670906001600160a01b031681565b3480156108d257600080fd5b506104206108e1366004612166565b611193565b3480156108f257600080fd5b506104456109013660046122ce565b6111a0565b34801561091257600080fd5b50610445610921366004612192565b611232565b34801561093257600080fd5b506103b2600d5481565b34801561094857600080fd5b50601754610670906001600160a01b031681565b34801561096857600080fd5b50601a54610670906001600160a01b031681565b34801561098857600080fd5b506103b260125481565b34801561099e57600080fd5b5061044561127e565b3480156109b357600080fd5b506103b260115481565b3480156109c957600080fd5b506104456109d836600461226a565b6112c1565b3480156109e957600080fd5b506103b26109f8366004612393565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2f57600080fd5b506103b2601b5481565b348015610a4557600080fd5b50610445610a54366004612192565b6112f0565b348015610a6557600080fd5b50610445610a74366004612283565b6113da565b348015610a8557600080fd5b50601554610670906001600160a01b031681565b348015610aa557600080fd5b506103b2601d5481565b348015610abb57600080fd5b50610445610aca366004612283565b61140e565b348015610adb57600080fd5b5060195461042090600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b4b9086815260200190565b60405180910390a35060015b92915050565b601a5460405163bd14ae2760e01b81523360048201526001600160a01b039091169063bd14ae2790602401600060405180830381600087803b158015610ba257600080fd5b505af1158015610bb6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610bef5760405162461bcd60e51b8152600401610be6906123cc565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610cbe576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610c999184906114a5565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cc98484846114df565b90505b9392505050565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d6b906007546001600160a01b0316600090815260036020526040902054610d659060025490611995565b90611995565b905090565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610be6906123cc565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610de857600080fd5b505af1158015610dfc573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e2e5760405162461bcd60e51b8152600401610be6906123cc565b601192909255601255601355565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610be6906123cc565b600f91909155601055565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b8152600401610be6906123cc565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000610b5782600019610af0565b6000546001600160a01b03163314610ef55760405162461bcd60e51b8152600401610be6906123cc565b610efd6119d7565b565b6000546001600160a01b03163314610f295760405162461bcd60e51b8152600401610be6906123cc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b579190612401565b6000546001600160a01b0316331461100c5760405162461bcd60e51b8152600401610be6906123cc565b601d55565b6000546001600160a01b0316331461103b5760405162461bcd60e51b8152600401610be6906123cc565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110c95760405162461bcd60e51b8152600401610be6906123cc565b47801561110c576019546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561110a573d6000803e3d6000fd5b505b50565b6000546001600160a01b031633146111395760405162461bcd60e51b8152600401610be6906123cc565b601b55565b6000546001600160a01b031633146111685760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610ccc3384846114df565b6000546001600160a01b031633146111ca5760405162461bcd60e51b8152600401610be6906123cc565b60005b815181101561110a576001600960008484815181106111ee576111ee61241a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061122a81612446565b9150506111cd565b6000546001600160a01b0316331461125c5760405162461bcd60e51b8152600401610be6906123cc565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112a85760405162461bcd60e51b8152600401610be6906123cc565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112eb5760405162461bcd60e51b8152600401610be6906123cc565b601c55565b6000546001600160a01b0316331461131a5760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03811661137f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114045760405162461bcd60e51b8152600401610be6906123cc565b61110a8282611b65565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610be6906123cc565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610ccc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b600081848411156114c95760405162461bcd60e51b8152600401610be691906120ec565b5060006114d6848661245f565b95945050505050565b600080546001600160a01b0385811691161480159061150c57506000546001600160a01b03848116911614155b1561156a57601954600160b01b900460ff1661156a5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610be6565b6001600160a01b03841660009081526009602052604090205460ff161580156115ac57506001600160a01b03831660009081526009602052604090205460ff16155b6115b557600080fd5b601954600160a01b900460ff16156115d9576115d2848484611ca4565b9050610ccc565b601c548211158061160257506001600160a01b0384166000908152600b602052604090205460ff165b6116335760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610be6565b6001600160a01b0383166000908152600b602052604090205460ff161580156116655750600854600160a01b900460ff165b156116c757601d546001600160a01b0384166000908152600360205260409020546116909084611d8a565b11156116c75760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610be6565b6016546001600160a01b031633148015906116ec5750601954600160a01b900460ff16155b80156117015750601954600160a81b900460ff165b801561171e5750601e543060009081526003602052604090205410155b1561172b5761172b6119d7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461177d9184906114a5565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff161580156117cd57506001600160a01b0384166000908152600a602052604090205460ff16155b6117d757826117e2565b6117e2858585611de9565b6001600160a01b0385166000908152600360205260409020549091506118089082611d8a565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff166118ac57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561189957600080fd5b505af19250505080156118aa575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661193d57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561192a57600080fd5b505af192505050801561193b575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161198291815260200190565b60405180910390a3506001949350505050565b6000610ccc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a5565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611a1d90600290611a179060649082908790611eac565b90611463565b90506000611a2b8383611995565b9050611a3681611f2e565b60004790506000611a576064611a1760115485611eac90919063ffffffff16565b90506000611a756064611a1760135486611eac90919063ffffffff16565b90506000611a986002611a176064611a1760125489611eac90919063ffffffff16565b90508315611adc576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611ada573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b2c57600080fd5b505af193505050508015611b3e575060015b508515611b4f57611b4f8682612057565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b8c57506016546001600160a01b03838116911614155b611b9557600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611c2d57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b5050505061110a565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610dce565b60008183611c975760405162461bcd60e51b8152600401610be691906120ec565b5060006114d68486612476565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611cf59184906114a5565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d249083611d8a565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d789086815260200190565b60405180910390a35060019392505050565b600080611d978385612498565b905083811015610ccc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610be6565b60165460009081906001600160a01b03858116911614611e0b57600f54611e0f565b6010545b90506000611e226064611a178685611eac565b30600090815260036020526040902054909150611e3f9082611d8a565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e909085815260200190565b60405180910390a3611ea28482611995565b9695505050505050565b600082600003611ebe57506000610b57565b6000611eca83856124b0565b905082611ed78583612476565b14610ccc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610be6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f6357611f6361241a565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe091906124cf565b81600181518110611ff357611ff361241a565b60200260200101906001600160a01b031690816001600160a01b03168152505061201d3083610af0565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dce9085906000908690309042906004016124ec565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120c7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611098919061255d565b600060208083528351808285015260005b81811015612119578581018301518582016040015282016120fd565b8181111561212b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461110c57600080fd5b803561216181612141565b919050565b6000806040838503121561217957600080fd5b823561218481612141565b946020939093013593505050565b6000602082840312156121a457600080fd5b8135610ccc81612141565b6000806000606084860312156121c457600080fd5b83356121cf81612141565b925060208401356121df81612141565b929592945050506040919091013590565b6000806040838503121561220357600080fd5b50508035926020909101359150565b60008060006060848603121561222757600080fd5b505081359360208301359350604090920135919050565b8035801515811461216157600080fd5b6000806040838503121561226157600080fd5b6121848361223e565b60006020828403121561227c57600080fd5b5035919050565b6000806040838503121561229657600080fd5b82356122a181612141565b91506122af6020840161223e565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156122e157600080fd5b823567ffffffffffffffff808211156122f957600080fd5b818501915085601f83011261230d57600080fd5b81358181111561231f5761231f6122b8565b8060051b604051601f19603f83011681018181108582111715612344576123446122b8565b60405291825284820192508381018501918883111561236257600080fd5b938501935b828510156123875761237885612156565b84529385019392850192612367565b98975050505050505050565b600080604083850312156123a657600080fd5b82356123b181612141565b915060208301356123c181612141565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561241357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161245857612458612430565b5060010190565b60008282101561247157612471612430565b500390565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612430565b500190565b60008160001904831182151516156124ca576124ca612430565b500290565b6000602082840312156124e157600080fd5b8151610ccc81612141565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561253c5784516001600160a01b031683529383019391830191600101612517565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561257257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220146c2fc980a50b48ff9d0d208059544e89c5ff1087f56322dbc26b4bc2f0d7bb64736f6c634300080d0033
Deployed Bytecode Sourcemap
11329:11902:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13239:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13239:52:0;;;;;;;;17305:80;;;;;;;;;;-1:-1:-1;17377:5:0;;;;;;;;;;;;-1:-1:-1;;;17377:5:0;;;;17305:80;;;;;;;:::i;17733:216::-;;;;;;;;;;-1:-1:-1;17733:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;17733:216:0;1393:187:1;23144:84:0;;;;;;;;;;;;;:::i;:::-;;17035:88;;;;;;;;;;-1:-1:-1;17108:12:0;;17035:88;;15478:123;;;;;;;;;;-1:-1:-1;15478:123:0;;;;;:::i;:::-;;:::i;18247:366::-;;;;;;;;;;-1:-1:-1;18247:366:0;;;;;:::i;:::-;;:::i;16160:90::-;;;;;;;;;;-1:-1:-1;16160:90:0;;;;;:::i;:::-;;:::i;16885:142::-;;;;;;;;;;;;;:::i;12404:27::-;;;;;;;;;;;;;;;;15950:202;;;;;;;;;;-1:-1:-1;15950:202:0;;;;;:::i;:::-;;:::i;14744:233::-;;;;;;;;;;-1:-1:-1;14744:233:0;;;;;:::i;:::-;;:::i;14578:153::-;;;;;;;;;;-1:-1:-1;14578:153:0;;;;;:::i;:::-;;:::i;17129:80::-;;;;;;;;;;-1:-1:-1;17129:80:0;;11633:2;3274:36:1;;3262:2;3247:18;17129:80:0;3132:184:1;15743:199:0;;;;;;;;;;-1:-1:-1;15743:199:0;;;;;:::i;:::-;;:::i;12136:44::-;;;;;;;;;;-1:-1:-1;12136:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12242:49;;;;;;;;;;-1:-1:-1;12242:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12557:34;;;;;;;;;;;;;;;;12371:26;;;;;;;;;;;;;;;;12834:40;;;;;;;;;;-1:-1:-1;12834:40:0;;;;-1:-1:-1;;;12834:40:0;;;;;;17957:122;;;;;;;;;;-1:-1:-1;17957:122:0;;;;;:::i;:::-;;:::i;12332:30::-;;;;;;;;;;-1:-1:-1;12332:30:0;;;;-1:-1:-1;;;;;12332:30:0;;;;;;-1:-1:-1;;;;;3903:32:1;;;3885:51;;3873:2;3858:18;12332:30:0;3739:203:1;22530:74:0;;;;;;;;;;;;;:::i;17477:105::-;;;;;;;;;;-1:-1:-1;17477:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17561:18:0;17543:7;17561:18;;;:9;:18;;;;;;;17477:105;3409:148;;;;;;;;;;;;;:::i;13134:44::-;;;;;;;;;;;;;;;;12517:31;;;;;;;;;;;;;;;;22978:158;;;;;;;;;;-1:-1:-1;22978:158:0;;;;;:::i;:::-;;:::i;15088:104::-;;;;;;;;;;-1:-1:-1;15088:104:0;;;;;:::i;:::-;;:::i;12055:26::-;;;;;;;;;;-1:-1:-1;12055:26:0;;;;-1:-1:-1;;;12055:26:0;;;;;;22853:117;;;;;;;;;;-1:-1:-1;22853:117:0;;;;;:::i;:::-;;:::i;22612:233::-;;;;;;;;;;;;;:::i;17391:80::-;;;;;;;;;;-1:-1:-1;17443:7:0;3260:6;-1:-1:-1;;;;;3260:6:0;17391:80;16885:142;12187:48;;;;;;;;;;-1:-1:-1;12187:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12719:78;;;;;;;;;;-1:-1:-1;12719:78:0;;;;-1:-1:-1;;;;;12719:78:0;;;17215:84;;;;;;;;;;-1:-1:-1;17289:7:0;;;;;;;;;;;;-1:-1:-1;;;17289:7:0;;;;17215:84;;16751:115;;;;;;;;;;-1:-1:-1;16751:115:0;;;;;:::i;:::-;;:::i;11417:64::-;;;;;;;;;;-1:-1:-1;11417:64:0;;;;-1:-1:-1;;;;;11417:64:0;;;15204:122;;;;;;;;;;-1:-1:-1;15204:122:0;;;;;:::i;:::-;;:::i;12631:19::-;;;;;;;;;;-1:-1:-1;12631:19:0;;;;-1:-1:-1;;;;;12631:19:0;;;18087:152;;;;;;;;;;-1:-1:-1;18087:152:0;;;;;:::i;:::-;;:::i;14231:166::-;;;;;;;;;;-1:-1:-1;14231:166:0;;;;;:::i;:::-;;:::i;15609:121::-;;;;;;;;;;-1:-1:-1;15609:121:0;;;;;:::i;:::-;;:::i;12300:25::-;;;;;;;;;;;;;;;;12657:22;;;;;;;;;;-1:-1:-1;12657:22:0;;;;-1:-1:-1;;;;;12657:22:0;;;12925:38;;;;;;;;;;-1:-1:-1;12925:38:0;;;;-1:-1:-1;;;;;12925:38:0;;;12480:30;;;;;;;;;;;;;;;;14449:115;;;;;;;;;;;;;:::i;12440:33::-;;;;;;;;;;;;;;;;14985:95;;;;;;;;;;-1:-1:-1;14985:95:0;;;;;:::i;:::-;;:::i;17588:133::-;;;;;;;;;;-1:-1:-1;17588:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;17690:19:0;;;17672:7;17690:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17588:133;12970:37;;;;;;;;;;;;;;;;3565:244;;;;;;;;;;-1:-1:-1;3565:244:0;;;;;:::i;:::-;;:::i;16611:132::-;;;;;;;;;;-1:-1:-1;16611:132:0;;;;;:::i;:::-;;:::i;12600:24::-;;;;;;;;;;-1:-1:-1;12600:24:0;;;;-1:-1:-1;;;;;12600:24:0;;;13185:47;;;;;;;;;;;;;;;;15334:136;;;;;;;;;;-1:-1:-1;15334:136:0;;;;;:::i;:::-;;:::i;12881:31::-;;;;;;;;;;-1:-1:-1;12881:31:0;;;;-1:-1:-1;;;12881:31:0;;;;;;17733:216;17837:10;17808:4;17825:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;17825:32:0;;;;;;;;;;:41;;;17882:37;17808:4;;17825:32;;17882:37;;;;17860:6;160:25:1;;148:2;133:18;;14:177;17882:37:0;;;;;;;;-1:-1:-1;17937:4:0;17733:216;;;;;:::o;23144:84::-;23183:15;;:37;;-1:-1:-1;;;23183:37:0;;23209:10;23183:37;;;3885:51:1;-1:-1:-1;;;;;23183:15:0;;;;:25;;3858:18:1;;23183:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23144:84::o;15478:123::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;;;;;;;;;15560:9:::1;:33:::0;;-1:-1:-1;;;;;;15560:33:0::1;-1:-1:-1::0;;;;;15560:33:0;;;::::1;::::0;;;::::1;::::0;;15478:123::o;18247:366::-;-1:-1:-1;;;;;18367:19:0;;18347:4;18367:19;;;:11;:19;;;;;;;;18387:10;18367:31;;;;;;;;-1:-1:-1;;18367:52:0;18364:186;;18469:69;;;;;;;;;;;-1:-1:-1;;;18469:69:0;;;;;;;;-1:-1:-1;;;;;18469:19:0;;-1:-1:-1;18469:19:0;;;:11;:19;;;;;18489:10;18469:31;;;;;;;;;;:69;;18505:6;;18469:35;:69::i;:::-;-1:-1:-1;;;;;18435:19:0;;;;;;:11;:19;;;;;;;;18455:10;18435:31;;;;;;;:103;18364:186;18569:36;18579:6;18587:9;18598:6;18569:9;:36::i;:::-;18562:43;;18247:366;;;;;;:::o;16160:90::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16222:12:0::1;16237:5;16222:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16222:20:0::1;::::0;;16160:90::o;16885:142::-;17013:4;;-1:-1:-1;;;;;17013:4:0;16938:7;17561:18;;;:9;:18;;;;;;16965:54;;16992:4;;-1:-1:-1;;;;;16992:4:0;17543:7;17561:18;;;:9;:18;;;;;;16965:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;16958:61;;16885:142;:::o;15950:202::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;16063:15:::1;::::0;:73:::1;::::0;-1:-1:-1;;;16063:73:0;;::::1;::::0;::::1;7104:25:1::0;;;7145:18;;;7138:34;;;-1:-1:-1;;;;;16063:15:0;;::::1;::::0;:39:::1;::::0;7077:18:1;;16063:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15950:202:::0;;:::o;14744:233::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;14868:13:::1;:28:::0;;;;14907:11:::1;:22:::0;14940:11:::1;:29:::0;14744:233::o;14578:153::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;14674:6:::1;:18:::0;;;;14703:7:::1;:20:::0;14578:153::o;15743:199::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;15852:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;15852:39:0::1;-1:-1:-1::0;;;;15852:39:0;;::::1;::::0;;;::::1;::::0;;;15902:13:::1;:32:::0;15743:199::o;17957:122::-;18012:4;18036:35;18044:7;-1:-1:-1;;18036:7:0;:35::i;22530:74::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;22586:10:::1;:8;:10::i;:::-;22530:74::o:0;3409:148::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;3516:1:::1;3500:6:::0;;3479:40:::1;::::0;-1:-1:-1;;;;;3500:6:0;;::::1;::::0;3479:40:::1;::::0;3516:1;;3479:40:::1;3547:1;3530:19:::0;;-1:-1:-1;;;;;;3530:19:0::1;::::0;;3409:148::o;22978:158::-;23082:15;;:46;;-1:-1:-1;;;23082:46:0;;-1:-1:-1;;;;;3903:32:1;;;23082:46:0;;;3885:51:1;23055:7:0;;23082:15;;:33;;3858:18:1;;23082:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15088:104::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;15163:9:::1;:21:::0;15088:104::o;22853:117::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;22928:15:::1;::::0;:34:::1;::::0;-1:-1:-1;;;;;;22928:34:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;22928:15:0;;::::1;::::0;:23:::1;::::0;133:18:1;;22928:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22853:117:::0;:::o;22612:233::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;22696:21:::1;22731:22:::0;;22728:110:::1;;22787:9;::::0;22779:47:::1;::::0;-1:-1:-1;;;;;22787:9:0;;::::1;::::0;22779:47;::::1;;;::::0;22807:18;;22787:9:::1;22779:47:::0;22787:9;22779:47;22807:18;22787:9;22779:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22728:110;22656:189;22612:233::o:0;16751:115::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;16831:18:::1;:27:::0;16751:115::o;15204:122::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15290:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15290:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15204:122::o;18087:152::-;18167:4;18191:40;18201:10;18213:9;18224:6;18191:9;:40::i;14231:166::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;14307:6:::1;14302:88;14323:5;:12;14319:1;:16;14302:88;;;14374:4;14357;:14;14362:5;14368:1;14362:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14357:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14357:14:0;:21;;-1:-1:-1;;14357:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14337:3;::::1;::::0;::::1;:::i;:::-;;;;14302:88;;15609:121:::0;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;15695:10:::1;:27:::0;;-1:-1:-1;;;;;;15695:27:0::1;-1:-1:-1::0;;;;;15695:27:0;;;::::1;::::0;;;::::1;::::0;;15609:121::o;14449:115::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;14515:12:::1;14502:10;:25:::0;14538:11:::1;:18:::0;;-1:-1:-1;;;;14538:18:0::1;-1:-1:-1::0;;;14538:18:0::1;::::0;;14449:115::o;14985:95::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;15056:5:::1;:16:::0;14985:95::o;3565:244::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3654:22:0;::::1;3646:73;;;::::0;-1:-1:-1;;;3646:73:0;;7978:2:1;3646:73:0::1;::::0;::::1;7960:21:1::0;8017:2;7997:18;;;7990:30;8056:34;8036:18;;;8029:62;-1:-1:-1;;;8107:18:1;;;8100:36;8153:19;;3646:73:0::1;7776:402:1::0;3646:73:0::1;3756:6;::::0;;3735:38:::1;::::0;-1:-1:-1;;;;;3735:38:0;;::::1;::::0;3756:6;::::1;::::0;3735:38:::1;::::0;::::1;3784:6;:17:::0;;-1:-1:-1;;;;;;3784:17:0::1;-1:-1:-1::0;;;;;3784:17:0;;;::::1;::::0;;;::::1;::::0;;3565:244::o;16611:132::-;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;16699:36:::1;16720:6;16728;16699:20;:36::i;15334:136::-:0;3322:6;;-1:-1:-1;;;;;3322:6:0;2739:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15430:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15430:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15334:136::o;1179:132::-;1237:7;1264:39;1268:1;1271;1264:39;;;;;;;;;;;;;;;;;:3;:39::i;725:192::-;811:7;847:12;839:6;;;;831:29;;;;-1:-1:-1;;;831:29:0;;;;;;;;:::i;:::-;-1:-1:-1;871:9:0;883:5;887:1;883;:5;:::i;:::-;871:17;725:192;-1:-1:-1;;;;;725:192:0:o;18621:1432::-;18709:4;3260:6;;-1:-1:-1;;;;;18730:16:0;;;3260:6;;18730:16;;;;:39;;-1:-1:-1;3233:7:0;3260:6;-1:-1:-1;;;;;18750:19:0;;;3260:6;;18750:19;;18730:39;18726:92;;;18779:11;;-1:-1:-1;;;18779:11:0;;;;18771:47;;;;-1:-1:-1;;;18771:47:0;;8515:2:1;18771:47:0;;;8497:21:1;8554:2;8534:18;;;8527:30;8593:25;8573:18;;;8566:53;8636:18;;18771:47:0;8313:347:1;18771:47:0;-1:-1:-1;;;;;18880:12:0;;;;;;:4;:12;;;;;;;;18879:13;:33;;;;-1:-1:-1;;;;;;18897:15:0;;;;;;:4;:15;;;;;;;;18896:16;18879:33;18871:42;;;;;;18929:16;;-1:-1:-1;;;18929:16:0;;;;18926:73;;;18955:41;18970:6;18978:9;18989:6;18955:14;:41::i;:::-;18948:48;;;;18926:73;19029:5;;19019:6;:15;;:42;;;-1:-1:-1;;;;;;19038:23:0;;;;;;:15;:23;;;;;;;;19019:42;19011:57;;;;-1:-1:-1;;;19011:57:0;;8867:2:1;19011:57:0;;;8849:21:1;8906:1;8886:18;;;8879:29;-1:-1:-1;;;8924:18:1;;;8917:32;8966:18;;19011:57:0;8665:325:1;19011:57:0;-1:-1:-1;;;;;19085:26:0;;;;;;:15;:26;;;;;;;;19084:27;:38;;;;-1:-1:-1;19115:7:0;;-1:-1:-1;;;19115:7:0;;;;19084:38;19081:143;;;19192:9;;-1:-1:-1;;;;;19156:20:0;;;;;;:9;:20;;;;;;:32;;19181:6;19156:24;:32::i;:::-;:45;;19148:64;;;;-1:-1:-1;;;19148:64:0;;9197:2:1;19148:64:0;;;9179:21:1;9236:1;9216:18;;;9209:29;-1:-1:-1;;;9254:18:1;;;9247:36;9300:18;;19148:64:0;8995:329:1;19148:64:0;19253:4;;-1:-1:-1;;;;;19253:4:0;19239:10;:18;;;;:39;;-1:-1:-1;19262:16:0;;-1:-1:-1;;;19262:16:0;;;;19261:17;19239:39;:64;;;;-1:-1:-1;19282:21:0;;-1:-1:-1;;;19282:21:0;;;;19239:64;:109;;;;-1:-1:-1;19335:13:0;;19325:4;19307:24;;;;:9;:24;;;;;;:41;;19239:109;19236:128;;;19351:10;:8;:10::i;:::-;19396:53;;;;;;;;;;;-1:-1:-1;;;19396:53:0;;;;;;;;-1:-1:-1;;;;;19396:17:0;;-1:-1:-1;19396:17:0;;;:9;:17;;;;;;;;:53;;19418:6;;19396:21;:53::i;:::-;-1:-1:-1;;;;;19376:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19493:11;:19;;;;;;;;19492:20;:47;;;;-1:-1:-1;;;;;;19517:22:0;;;;;;:11;:22;;;;;;;;19516:23;19492:47;:93;;19579:6;19492:93;;;19542:34;19550:6;19558:9;19569:6;19542:7;:34::i;:::-;-1:-1:-1;;;;;19619:20:0;;;;;;:9;:20;;;;;;19470:115;;-1:-1:-1;19619:37:0;;19470:115;19619:24;:37::i;:::-;-1:-1:-1;;;;;19596:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;19702:24;;;;;:16;:24;;;;;;;19698:123;;19747:15;;-1:-1:-1;;;;;19780:17:0;;;19747:15;19780:17;;;:9;:17;;;;;;;;19747:51;;-1:-1:-1;;;19747:51:0;;;;;9503::1;;;;9570:18;;;9563:34;19747:15:0;;;:24;;9476:18:1;;19747:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19743:67;;-1:-1:-1;;;;;19837:27:0;;;;;;:16;:27;;;;;;;;19833:133;;19885:15;;-1:-1:-1;;;;;19921:20:0;;;19885:15;19921:20;;;:9;:20;;;;;;;;19885:57;;-1:-1:-1;;;19885:57:0;;;;;9503:51:1;;;;9570:18;;;9563:34;19885:15:0;;;:24;;9476:18:1;;19885:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19881:73;;20000:9;-1:-1:-1;;;;;19983:40:0;19992:6;-1:-1:-1;;;;;19983:40:0;;20011:11;19983:40;;;;160:25:1;;148:2;133:18;;14:177;19983:40:0;;;;;;;;-1:-1:-1;20041:4:0;;18621:1432;-1:-1:-1;;;;18621:1432:0:o;583:136::-;641:7;668:43;672:1;675;668:43;;;;;;;;;;;;;;;;;:3;:43::i;21603:919::-;13048:16;:23;;-1:-1:-1;;;;13048:23:0;-1:-1:-1;;;13048:23:0;;;21702:4:::1;13048:23:::0;21684:24;;;:9:::1;:24;::::0;;;;;21766:11:::1;::::0;21684:24;;13048:23;21749:45:::1;::::0;21792:1:::1;::::0;21749:38:::1;::::0;21783:3:::1;::::0;21749:38;;21684:24;;21749:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;21720:74:::0;-1:-1:-1;21810:20:0::1;21833:36;:12:::0;21720:74;21833:16:::1;:36::i;:::-;21810:59;;21882:30;21899:12;21882:16;:30::i;:::-;21925:23;21951:21;21925:47;;21983:18;22004:43;22043:3;22004:34;22024:13;;22004:15;:19;;:34;;;;:::i;:43::-;21983:64;;22058:17;22078:41;22115:3;22078:32;22098:11;;22078:15;:19;;:32;;;;:::i;:41::-;22058:61;;22130:23;22156:48;22202:1;22156:41;22193:3;22156:32;22176:11;;22156:15;:19;;:32;;;;:::i;:48::-;22130:74:::0;-1:-1:-1;22227:19:0;;22223:89:::1;;22270:9;::::0;22262:38:::1;::::0;-1:-1:-1;;;;;22270:9:0;;::::1;::::0;22262:38;::::1;;;::::0;22290:9;;22270::::1;22262:38:::0;22270:9;22262:38;22290:9;22270;22262:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22223:89;22336:15;;;;;;;;;-1:-1:-1::0;;;;;22336:15:0::1;-1:-1:-1::0;;;;;22336:23:0::1;;22367:10;22336:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22332:60:::0;22416:22;;22412:103:::1;;22454:49;22467:18;22487:15;22454:12;:49::i;:::-;-1:-1:-1::0;;13094:16:0;:24;;-1:-1:-1;;;;13094:24:0;;;-1:-1:-1;;;;;21603:919:0:o;16258:345::-;-1:-1:-1;;;;;16345:23:0;;16363:4;16345:23;;;;:41;;-1:-1:-1;16382:4:0;;-1:-1:-1;;;;;16372:14:0;;;16382:4;;16372:14;;16345:41;16337:50;;;;;;-1:-1:-1;;;;;16398:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;16398:33:0;;;;;;;;;;;;16442:154;;16467:15;;:35;;-1:-1:-1;;;16467:35:0;;-1:-1:-1;;;;;9521:32:1;;;16467:35:0;;;9503:51:1;16467:15:0;9570:18:1;;;9563:34;16467:15:0;;;;:24;;9476:18:1;;16467:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16442:154;;;16533:15;;-1:-1:-1;;;;;16566:17:0;;;16533:15;16566:17;;;:9;:17;;;;;;;;16533:51;;-1:-1:-1;;;16533:51:0;;;;;9503::1;;;;9570:18;;;9563:34;16533:15:0;;;:24;;9476:18:1;;16533:51:0;9329:274:1;1317:345:0;1403:7;1505:12;1498:5;1490:28;;;;-1:-1:-1;;;1490:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1529:9:0;1541:5;1545:1;1541;:5;:::i;20065:330::-;20195:53;;;;;;;;;;;-1:-1:-1;;;20195:53:0;;;;;;;;-1:-1:-1;;;;;20195:17:0;;20158:4;20195:17;;;:9;:17;;;;;;;:53;;20217:6;;20195:21;:53::i;:::-;-1:-1:-1;;;;;20175:17:0;;;;;;;:9;:17;;;;;;:73;;;;20282:20;;;;;;;:32;;20307:6;20282:24;:32::i;:::-;-1:-1:-1;;;;;20259:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20330:35;;;;;;;;;;20358:6;160:25:1;;148:2;133:18;;14:177;20330:35:0;;;;;;;;-1:-1:-1;20383:4:0;20065:330;;;;;:::o;396:181::-;454:7;;486:5;490:1;486;:5;:::i;:::-;474:17;;515:1;510;:6;;502:46;;;;-1:-1:-1;;;502:46:0;;10452:2:1;502:46:0;;;10434:21:1;10491:2;10471:18;;;10464:30;10530:29;10510:18;;;10503:57;10577:18;;502:46:0;10250:351:1;20409:427:0;20549:4;;20495:7;;;;-1:-1:-1;;;;;20549:17:0;;;:4;;:17;:36;;20579:6;;20549:36;;;20569:7;;20549:36;20525:60;-1:-1:-1;20596:17:0;20616:34;20646:3;20616:25;:6;20525:60;20616:10;:25::i;:34::-;20708:4;20690:24;;;;:9;:24;;;;;;20596:54;;-1:-1:-1;20690:39:0;;20596:54;20690:28;:39::i;:::-;20681:4;20663:24;;;;:9;:24;;;;;;;:66;;;;20745:42;;-1:-1:-1;;;;;20745:42:0;;;;;;;20777:9;160:25:1;;148:2;133:18;;14:177;20745:42:0;;;;;;;;20807:21;:6;20818:9;20807:10;:21::i;:::-;20800:28;20409:427;-1:-1:-1;;;;;;20409:427:0:o;923:250::-;981:7;1005:1;1010;1005:6;1001:47;;-1:-1:-1;1035:1:0;1028:8;;1001:47;1060:9;1072:5;1076:1;1072;:5;:::i;:::-;1060:17;-1:-1:-1;1105:1:0;1096:5;1100:1;1060:17;1096:5;:::i;:::-;:10;1088:56;;;;-1:-1:-1;;;1088:56:0;;10981:2:1;1088:56:0;;;10963:21:1;11020:2;11000:18;;;10993:30;11059:34;11039:18;;;11032:62;-1:-1:-1;;;11110:18:1;;;11103:31;11151:19;;1088:56:0;10779:397:1;20848:460:0;20940:16;;;20954:1;20940:16;;;;;;;;20916:21;;20940:16;;;;;;;;;;-1:-1:-1;20940:16:0;20916:40;;20985:4;20967;20972:1;20967:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20967:23:0;;;:7;;;;;;;;;;:23;;;;21011:6;;:13;;;-1:-1:-1;;;21011:13:0;;;;:6;;;;;:11;;:13;;;;;20967:7;;21011:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21001:4;21006:1;21001:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21001:23:0;;;-1:-1:-1;;;;;21001:23:0;;;;;21037:35;21053:4;21060:11;21037:7;:35::i;:::-;-1:-1:-1;21085:6:0;;:215;;-1:-1:-1;;;21085:215:0;;-1:-1:-1;;;;;21085:6:0;;;;:57;;:215;;21157:11;;21085:6;;21227:4;;21254;;21274:15;;21085:215;;;:::i;21316:279::-;21397:6;;21538:8;;21397:190;;-1:-1:-1;;;21397:190:0;;21460:4;21397:190;;;12763:34:1;12813:18;;;12806:34;;;21397:6:0;12856:18:1;;;12849:34;;;12899:18;;;12892:34;-1:-1:-1;;;;;21538:8:0;;;12942:19:1;;;12935:44;21561:15:0;12995:19:1;;;12988:35;21397:6:0;;;:22;;21427:9;;12697:19:1;;21397:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:255::-;1652:6;1705:2;1693:9;1684:7;1680:23;1676:32;1673:52;;;1721:1;1718;1711:12;1673:52;1760:9;1747:23;1779:31;1804:5;1779:31;:::i;1845:456::-;1922:6;1930;1938;1991:2;1979:9;1970:7;1966:23;1962:32;1959:52;;;2007:1;2004;1997:12;1959:52;2046:9;2033:23;2065:31;2090:5;2065:31;:::i;:::-;2115:5;-1:-1:-1;2172:2:1;2157:18;;2144:32;2185:33;2144:32;2185:33;:::i;:::-;1845:456;;2237:7;;-1:-1:-1;;;2291:2:1;2276:18;;;;2263:32;;1845:456::o;2558:248::-;2626:6;2634;2687:2;2675:9;2666:7;2662:23;2658:32;2655:52;;;2703:1;2700;2693:12;2655:52;-1:-1:-1;;2726:23:1;;;2796:2;2781:18;;;2768:32;;-1:-1:-1;2558:248:1:o;2811:316::-;2888:6;2896;2904;2957:2;2945:9;2936:7;2932:23;2928:32;2925:52;;;2973:1;2970;2963:12;2925:52;-1:-1:-1;;2996:23:1;;;3066:2;3051:18;;3038:32;;-1:-1:-1;3117:2:1;3102:18;;;3089:32;;2811:316;-1:-1:-1;2811:316:1:o;3321:160::-;3386:20;;3442:13;;3435:21;3425:32;;3415:60;;3471:1;3468;3461:12;3486:248;3551:6;3559;3612:2;3600:9;3591:7;3587:23;3583:32;3580:52;;;3628:1;3625;3618:12;3580:52;3651:26;3667:9;3651:26;:::i;3947:180::-;4006:6;4059:2;4047:9;4038:7;4034:23;4030:32;4027:52;;;4075:1;4072;4065:12;4027:52;-1:-1:-1;4098:23:1;;3947:180;-1:-1:-1;3947:180:1:o;4132:315::-;4197:6;4205;4258:2;4246:9;4237:7;4233:23;4229:32;4226:52;;;4274:1;4271;4264:12;4226:52;4313:9;4300:23;4332:31;4357:5;4332:31;:::i;:::-;4382:5;-1:-1:-1;4406:35:1;4437:2;4422:18;;4406:35;:::i;:::-;4396:45;;4132:315;;;;;:::o;4452:127::-;4513:10;4508:3;4504:20;4501:1;4494:31;4544:4;4541:1;4534:15;4568:4;4565:1;4558:15;4584:1121;4668:6;4699:2;4742;4730:9;4721:7;4717:23;4713:32;4710:52;;;4758:1;4755;4748:12;4710:52;4798:9;4785:23;4827:18;4868:2;4860:6;4857:14;4854:34;;;4884:1;4881;4874:12;4854:34;4922:6;4911:9;4907:22;4897:32;;4967:7;4960:4;4956:2;4952:13;4948:27;4938:55;;4989:1;4986;4979:12;4938:55;5025:2;5012:16;5047:2;5043;5040:10;5037:36;;;5053:18;;:::i;:::-;5099:2;5096:1;5092:10;5131:2;5125:9;5194:2;5190:7;5185:2;5181;5177:11;5173:25;5165:6;5161:38;5249:6;5237:10;5234:22;5229:2;5217:10;5214:18;5211:46;5208:72;;;5260:18;;:::i;:::-;5296:2;5289:22;5346:18;;;5380:15;;;;-1:-1:-1;5422:11:1;;;5418:20;;;5450:19;;;5447:39;;;5482:1;5479;5472:12;5447:39;5506:11;;;;5526:148;5542:6;5537:3;5534:15;5526:148;;;5608:23;5627:3;5608:23;:::i;:::-;5596:36;;5559:12;;;;5652;;;;5526:148;;;5693:6;4584:1121;-1:-1:-1;;;;;;;;4584:1121:1:o;5950:388::-;6018:6;6026;6079:2;6067:9;6058:7;6054:23;6050:32;6047:52;;;6095:1;6092;6085:12;6047:52;6134:9;6121:23;6153:31;6178:5;6153:31;:::i;:::-;6203:5;-1:-1:-1;6260:2:1;6245:18;;6232:32;6273:33;6232:32;6273:33;:::i;:::-;6325:7;6315:17;;;5950:388;;;;;:::o;6569:356::-;6771:2;6753:21;;;6790:18;;;6783:30;6849:34;6844:2;6829:18;;6822:62;6916:2;6901:18;;6569:356::o;7183:184::-;7253:6;7306:2;7294:9;7285:7;7281:23;7277:32;7274:52;;;7322:1;7319;7312:12;7274:52;-1:-1:-1;7345:16:1;;7183:184;-1:-1:-1;7183:184:1:o;7372:127::-;7433:10;7428:3;7424:20;7421:1;7414:31;7464:4;7461:1;7454:15;7488:4;7485:1;7478:15;7504:127;7565:10;7560:3;7556:20;7553:1;7546:31;7596:4;7593:1;7586:15;7620:4;7617:1;7610:15;7636:135;7675:3;7696:17;;;7693:43;;7716:18;;:::i;:::-;-1:-1:-1;7763:1:1;7752:13;;7636:135::o;8183:125::-;8223:4;8251:1;8248;8245:8;8242:34;;;8256:18;;:::i;:::-;-1:-1:-1;8293:9:1;;8183:125::o;9895:217::-;9935:1;9961;9951:132;;10005:10;10000:3;9996:20;9993:1;9986:31;10040:4;10037:1;10030:15;10068:4;10065:1;10058:15;9951:132;-1:-1:-1;10097:9:1;;9895:217::o;10117:128::-;10157:3;10188:1;10184:6;10181:1;10178:13;10175:39;;;10194:18;;:::i;:::-;-1:-1:-1;10230:9:1;;10117:128::o;10606:168::-;10646:7;10712:1;10708;10704:6;10700:14;10697:1;10694:21;10689:1;10682:9;10675:17;10671:45;10668:71;;;10719:18;;:::i;:::-;-1:-1:-1;10759:9:1;;10606:168::o;11181:251::-;11251:6;11304:2;11292:9;11283:7;11279:23;11275:32;11272:52;;;11320:1;11317;11310:12;11272:52;11352:9;11346:16;11371:31;11396:5;11371:31;:::i;11437:980::-;11699:4;11747:3;11736:9;11732:19;11778:6;11767:9;11760:25;11804:2;11842:6;11837:2;11826:9;11822:18;11815:34;11885:3;11880:2;11869:9;11865:18;11858:31;11909:6;11944;11938:13;11975:6;11967;11960:22;12013:3;12002:9;11998:19;11991:26;;12052:2;12044:6;12040:15;12026:29;;12073:1;12083:195;12097:6;12094:1;12091:13;12083:195;;;12162:13;;-1:-1:-1;;;;;12158:39:1;12146:52;;12253:15;;;;12218:12;;;;12194:1;12112:9;12083:195;;;-1:-1:-1;;;;;;;12334:32:1;;;;12329:2;12314:18;;12307:60;-1:-1:-1;;;12398:3:1;12383:19;12376:35;12295:3;11437:980;-1:-1:-1;;;11437:980:1:o;13034:306::-;13122:6;13130;13138;13191:2;13179:9;13170:7;13166:23;13162:32;13159:52;;;13207:1;13204;13197:12;13159:52;13236:9;13230:16;13220:26;;13286:2;13275:9;13271:18;13265:25;13255:35;;13330:2;13319:9;13315:18;13309:25;13299:35;;13034:306;;;;;:::o
Swarm Source
ipfs://5bb34f46397db0f75a6fc0eb8e718fae3642188c8ba77e3486c64f859a1cf43b
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.