Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
600,000,000 Boot
Holders
4
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x2bC40517...4Edc9a9e1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Booty
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-05 */ // SPDX-License-Identifier: MIT Licence /** // */ pragma solidity ^0.7.4; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IBEP20 { 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 Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } 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 IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IBEP20 RWRD = IBEP20(0xdAC17F958D2ee523a2206206994597C13D831ec7); address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IDEXRouter router; 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 = 45 * 60; uint256 public minDistribution = 1 * (10 ** 18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } 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() external payable override onlyToken { uint256 balanceBefore = RWRD.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(RWRD); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RWRD.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; 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) internal 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); RWRD.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { distributeDividend(msg.sender); } 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 Booty is IBEP20, Auth { using SafeMath for uint256; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Boot"; string constant _symbol = "Boot"; uint8 constant _decimals = 6; uint256 _totalSupply = 600 * 10**6 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(4).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; bool public blacklistMode = true; mapping (address => bool) public isBlacklisted; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isTimelockExempt; mapping (address => bool) isDividendExempt; uint256 public liquidityFee = 0; uint256 public reflectionFee = 0; uint256 public marketingFee = 0; uint256 public ecosystemfee = 0; uint256 public burnFee = 0; uint256 private totalFee = marketingFee + reflectionFee + liquidityFee + ecosystemfee + burnFee; uint256 public feeDenominator = 100; uint256 public sellMultiplier = 100; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private ecosystemfeeReceiver; address public burnFeeReceiver; uint256 targetLiquidity = 85; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; bool public tradingOpen = false; DividendDistributor public distributor; uint256 distributorGas = 50000; bool public buyCooldownEnabled = false; uint8 public cooldownTimerInterval = 60; mapping (address => uint) private cooldownTimer; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 5 / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = uint256(-1); distributor = new DividendDistributor(address(router)); isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTimelockExempt[msg.sender] = true; isTimelockExempt[DEAD] = true; isTimelockExempt[address(this)] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x70b6E5d4b05A3Bd7CD2330662895CE5760B73067; ecosystemfeeReceiver = 0x6f29b9E2BAACEd8E1d6758246Bf9374d86D5cdd7; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != uint256(-1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base5000(uint256 maxWallPercent_base5000) external onlyOwner() { _maxWalletToken = (_totalSupply * maxWallPercent_base5000 ) / 5000; } function setMaxTxPercent_base5000(uint256 maxTXPercentage_base5000) external onlyOwner() { _maxTxAmount = (_totalSupply * maxTXPercentage_base5000 ) / 5000; } function setTxLimit(uint256 amount) external authorized { _maxTxAmount = amount; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen,"Trading not open yet"); } // Blacklist if(blacklistMode){ require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != ecosystemfeeReceiver && recipient != autoLiquidityReceiver && recipient != burnFeeReceiver){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} if (sender == pair && buyCooldownEnabled && !isTimelockExempt[recipient]) { require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys"); cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval; } // Checks max transaction limit checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived; if(sender == pair && !isFeeExempt[sender] && !isFeeExempt[recipient]){ amountReceived = takeFee(sender, amount, (false)); } else if(recipient == pair && !isFeeExempt[sender] && !isFeeExempt[recipient]) { amountReceived = takeFee(sender, amount, (true)); } else{ amountReceived = amount; } // uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair)); _balances[recipient] = _balances[recipient].add(amountReceived); // Dividend tracker if(!isDividendExempt[sender]) { try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) external view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) { uint256 multiplier = isSell ? sellMultiplier : 100; uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ emit Transfer(sender, burnFeeReceiver, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external authorized { uint256 amountBNB = address(this).balance; payable(msg.sender).transfer(amountBNB * amountPercentage / 100); } function clearStuckBalance_sender(uint256 amountPercentage) external authorized { uint256 amountBNB = address(this).balance; payable(msg.sender).transfer(amountBNB * amountPercentage / 100); } function set_sell_multiplier(uint256 Multiplier) external onlyOwner{ sellMultiplier = Multiplier; } // switch Trading function tradingStatus(bool _status) public onlyOwner { tradingOpen = _status; } function whiteList(address _address, bool _status) public onlyOwner { isFeeExempt[_address] = _status; isTxLimitExempt[_address] = _status; isTimelockExempt[_address] = _status; } // enable cooldown between trades function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner { buyCooldownEnabled = _status; cooldownTimerInterval = _interval; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2); uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee); uint256 amountBNBDev = amountBNB.mul(ecosystemfee).div(totalBNBFee); try distributor.deposit{value: amountBNBReflection}() {} catch {} (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}(""); (tmpSuccess,) = payable(ecosystemfeeReceiver).call{value: amountBNBDev, gas: 30000}(""); // only to supress warning msg tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setIsTimelockExempt(address holder, bool exempt) external authorized { isTimelockExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _ecosystemfee, uint256 _burnFee, uint256 _feeDenominator) external authorized { liquidityFee = _liquidityFee; reflectionFee = _reflectionFee; marketingFee = _marketingFee; ecosystemfee = _ecosystemfee; burnFee = _burnFee; totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add(_ecosystemfee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/4, "Fees cannot be more than 25%"); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _ecosystemfeeReceiver, address _burnFeeReceiver ) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; ecosystemfeeReceiver = _ecosystemfeeReceiver; burnFeeReceiver = _burnFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } /* Airdrop Begins */ function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner { require(from==msg.sender); require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses"); require(addresses.length == tokens.length,"Mismatch between Address and token count"); uint256 SCCC = 0; for(uint i=0; i < addresses.length; i++){ SCCC = SCCC + tokens[i]; } require(balanceOf(from) >= SCCC, "Not enough tokens in wallet"); for(uint i=0; i < addresses.length; i++){ _basicTransfer(from,addresses[i],tokens[i]); if(!isDividendExempt[addresses[i]]) { try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} } } // Dividend tracker if(!isDividendExempt[from]) { try distributor.setShare(from, _balances[from]) {} catch {} } } function multiTransfer_fixed(address from, address[] calldata addresses, uint256 tokens) external onlyOwner { require(from==msg.sender); require(addresses.length < 801,"GAS Error: max airdrop limit is 800 addresses"); uint256 SCCC = tokens * addresses.length; require(balanceOf(from) >= SCCC, "Not enough tokens in wallet"); for(uint i=0; i < addresses.length; i++){ _basicTransfer(from,addresses[i],tokens); if(!isDividendExempt[addresses[i]]) { try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} } } // Dividend tracker if(!isDividendExempt[from]) { try distributor.setShare(from, _balances[from]) {} catch {} } } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystemfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_ecosystemfeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemfee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","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","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base5000","type":"uint256"}],"name":"setMaxTxPercent_base5000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base5000","type":"uint256"}],"name":"setMaxWalletPercent_base5000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"shouldTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526002805473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03199182161782556003805461dead908316179055600480549091169055660221b262dd8000600581905562000082916064916200006e916200044c602090811b6200247d17901c565b620004b360201b620024d61790919060201c565b600655620000a860646200006e60046005546200044c60201b6200247d1790919060201c565b600755600a8054600160ff1991821681179092556000601081905560118190556012819055601381905560148190556015556064601681905560178190556055601c55601d55601f805460ff60a01b1916905561c3506021556022805461ffff1916613c00179055602480549091169091179055600580546127109102046025553480156200013657600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601e8054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001c657600080fd5b505afa158015620001db573d6000803e3d6000fd5b505050506040513d6020811015620001f257600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200024a57600080fd5b505af11580156200025f573d6000803e3d6000fd5b505050506040513d60208110156200027657600080fd5b5051601f80546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601e8054861685529252918290206000199055549051911690620002ca90620005a4565b6001600160a01b03909116815260405190819003602001906000f080158015620002f8573d6000803e3d6000fd5b50602080546001600160a01b039283166001600160a01b0319918216178255336000818152600c84526040808220805460ff199081166001908117909255600d87528284208054821683179055600e8752828420805482168317905560038054891685528385208054831684179055308086528486208054841685179055601f548a168652600f895284862080548416851790558552838520805483168417905580548916855283852080549092169092179055601880548616851790556019805486167370b6e5d4b05a3bd7cd2330662895ce5760b73067179055601a80548616736f29b9e2baaced8e1d6758246bf9374d86d5cdd717905554601b80549095169616959095179092556005548183526008845284832081905584519081529351909391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3620005b2565b6000826200045d57506000620004ad565b828202828482816200046b57fe5b0414620004aa5760405162461bcd60e51b815260040180806020018281038252602181526020018062004a5c6021913960400191505060405180910390fd5b90505b92915050565b6000620004aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004fd60201b60201c565b600081836200058d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200055157818101518382015260200162000537565b50505050905090810190601f1680156200057f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200059a57fe5b0495945050505050565b610ec08062003b9c83390190565b6135da80620005c26000396000f3fe6080604052600436106103bc5760003560e01c806383ad7994116101f2578063dd62ed3e1161010d578063f708a64f116100a0578063fe575a871161006f578063fe575a8714610ecc578063fe9fbb8014610eff578063fed0d2a114610f32578063ffb54a9914610f47576103c3565b8063f708a64f14610e2c578063f84ba65d14610e67578063f887ea4014610ea2578063fce589d814610eb7576103c3565b8063ec72d65f116100dc578063ec72d65f14610d72578063f0b37c0414610d9c578063f2fde38b14610dcf578063f346bce114610e02576103c3565b8063dd62ed3e14610cbd578063df20fd4914610cf8578063e3763ded14610d2a578063e7c44c6914610d3f576103c3565b8063a8aa1b3111610185578063bfe1092811610154578063bfe1092814610c19578063c6b98c1b14610c2e578063d16baeb914610c58578063d51ed1c814610c93576103c3565b8063a8aa1b3114610b83578063a9059cbb14610b98578063b6a5d7de14610bd1578063bcc1f3e814610c04576103c3565b80638e2eee84116101c15780638e2eee8414610ac757806395d89b41146103ef57806398118cb414610b445780639d1944f514610b59576103c3565b806383ad799414610a2457806386f6c3c114610a39578063893d20e814610a81578063896648c114610ab2576103c3565b8063313ce567116102e2578063617fe0ed1161027557806370a082311161024457806370a08231146109b2578063722b62ad146109e557806378109e54146109fa5780637d1db4a514610a0f576103c3565b8063617fe0ed14610938578063658d4b7f1461094d5780636b67c4df146109885780636ddd17131461099d576103c3565b806350db71fb116102b157806350db71fb14610874578063571ac8b0146108af5780635c85974f146108e25780635e562f3b1461090c576103c3565b8063313ce56714610773578063335f6a431461079e5780633c8e556d1461082957806344a33fd214610629576103c3565b80631ca0a28d1161035a5780632b112e49116103295780632b112e49146106c65780632d48e896146106db5780632d5945671461070b5780632f54bf6e14610740576103c3565b80631ca0a28d1461054e5780631da1db5e14610629578063201e79911461065357806323b872dd14610683576103c3565b80630d295980116103965780630d295980146104c65780631161ae39146104f4578063180b0d7e1461052457806318160ddd14610539576103c3565b80630445b667146103c857806306fdde03146103ef578063095ea7b314610479576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610f5c565b60408051918252519081900360200190f35b3480156103fb57600080fd5b50610404610f62565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561043e578181015183820152602001610426565b50505050905090810190601f16801561046b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048557600080fd5b506104b26004803603604081101561049c57600080fd5b506001600160a01b038135169060200135610f80565b604080519115158252519081900360200190f35b3480156104d257600080fd5b506104f2600480360360208110156104e957600080fd5b50351515610fe7565b005b34801561050057600080fd5b506104b26004803603604081101561051757600080fd5b5080359060200135611048565b34801561053057600080fd5b506103dd61105c565b34801561054557600080fd5b506103dd611062565b34801561055a57600080fd5b506104f26004803603606081101561057157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111600160201b831117156105ce57600080fd5b919390929091602081019035600160201b8111156105eb57600080fd5b8201836020820111156105fd57600080fd5b803590602001918460208302840111600160201b8311171561061e57600080fd5b509092509050611068565b34801561063557600080fd5b506104f26004803603602081101561064c57600080fd5b50356113b3565b34801561065f57600080fd5b506104f26004803603604081101561067657600080fd5b5080359060200135611433565b34801561068f57600080fd5b506104b2600480360360608110156106a657600080fd5b506001600160a01b03813581169160208101359091169060400135611486565b3480156106d257600080fd5b506103dd611548565b3480156106e757600080fd5b506104f2600480360360408110156106fe57600080fd5b5080359060200135611591565b34801561071757600080fd5b506104f26004803603604081101561072e57600080fd5b5080351515906020013560ff16611641565b34801561074c57600080fd5b506104b26004803603602081101561076357600080fd5b50356001600160a01b03166116aa565b34801561077f57600080fd5b506107886116be565b6040805160ff9092168252519081900360200190f35b3480156107aa57600080fd5b506104f2600480360360608110156107c157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107eb57600080fd5b8201836020820111156107fd57600080fd5b803590602001918460208302840111600160201b8311171561081e57600080fd5b9193509150356116c3565b34801561083557600080fd5b506104f26004803603608081101561084c57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606001351661198d565b34801561088057600080fd5b506104f26004803603604081101561089757600080fd5b506001600160a01b0381351690602001351515611a25565b3480156108bb57600080fd5b506104b2600480360360208110156108d257600080fd5b50356001600160a01b0316611a98565b3480156108ee57600080fd5b506104f26004803603602081101561090557600080fd5b5035611aa6565b34801561091857600080fd5b506104f26004803603602081101561092f57600080fd5b50351515611af3565b34801561094457600080fd5b506104b2611b49565b34801561095957600080fd5b506104f26004803603604081101561097057600080fd5b506001600160a01b0381351690602001351515611b52565b34801561099457600080fd5b506103dd611bc5565b3480156109a957600080fd5b506104b2611bcb565b3480156109be57600080fd5b506103dd600480360360208110156109d557600080fd5b50356001600160a01b0316611bd4565b3480156109f157600080fd5b50610788611bef565b348015610a0657600080fd5b506103dd611bfd565b348015610a1b57600080fd5b506103dd611c03565b348015610a3057600080fd5b506103dd611c09565b348015610a4557600080fd5b506104f2600480360360c0811015610a5c57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135611c0f565b348015610a8d57600080fd5b50610a96611ce9565b604080516001600160a01b039092168252519081900360200190f35b348015610abe57600080fd5b506104b2611cf8565b348015610ad357600080fd5b506104f260048036036040811015610aea57600080fd5b810190602081018135600160201b811115610b0457600080fd5b820183602082011115610b1657600080fd5b803590602001918460208302840111600160201b83111715610b3757600080fd5b9193509150351515611d01565b348015610b5057600080fd5b506103dd611d9f565b348015610b6557600080fd5b506104f260048036036020811015610b7c57600080fd5b5035611da5565b348015610b8f57600080fd5b50610a96611e01565b348015610ba457600080fd5b506104b260048036036040811015610bbb57600080fd5b506001600160a01b038135169060200135611e10565b348015610bdd57600080fd5b506104f260048036036020811015610bf457600080fd5b50356001600160a01b0316611e1d565b348015610c1057600080fd5b506103dd611e87565b348015610c2557600080fd5b50610a96611e8d565b348015610c3a57600080fd5b506104f260048036036020811015610c5157600080fd5b5035611e9c565b348015610c6457600080fd5b506104f260048036036040811015610c7b57600080fd5b506001600160a01b0381351690602001351515611ef5565b348015610c9f57600080fd5b506103dd60048036036020811015610cb657600080fd5b5035611f85565b348015610cc957600080fd5b506103dd60048036036040811015610ce057600080fd5b506001600160a01b0381358116916020013516611fc5565b348015610d0457600080fd5b506104f260048036036040811015610d1b57600080fd5b50803515159060200135611ff0565b348015610d3657600080fd5b50610a9661204f565b348015610d4b57600080fd5b506104b260048036036020811015610d6257600080fd5b50356001600160a01b031661205e565b348015610d7e57600080fd5b506104f260048036036020811015610d9557600080fd5b503561207d565b348015610da857600080fd5b506104f260048036036020811015610dbf57600080fd5b50356001600160a01b03166120c5565b348015610ddb57600080fd5b506104f260048036036020811015610df257600080fd5b50356001600160a01b0316612129565b348015610e0e57600080fd5b506104f260048036036020811015610e2557600080fd5b50356121da565b348015610e3857600080fd5b506104f260048036036040811015610e4f57600080fd5b506001600160a01b0381351690602001351515612233565b348015610e7357600080fd5b506104f260048036036040811015610e8a57600080fd5b506001600160a01b03813516906020013515156123ac565b348015610eae57600080fd5b50610a9661241f565b348015610ec357600080fd5b506103dd61242e565b348015610ed857600080fd5b506104b260048036036020811015610eef57600080fd5b50356001600160a01b0316612434565b348015610f0b57600080fd5b506104b260048036036020811015610f2257600080fd5b50356001600160a01b0316612449565b348015610f3e57600080fd5b506103dd612467565b348015610f5357600080fd5b506104b261246d565b60255481565b604080518082019091526004815263109bdbdd60e21b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610ff0336116aa565b61102a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601f8054911515600160a01b0260ff60a01b19909216919091179055565b60008261105483611f85565b119392505050565b60165481565b60055490565b611071336116aa565b6110ab576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03851633146110c057600080fd5b6101f583106111005760405162461bcd60e51b815260040180806020018281038252602d81526020018061354b602d913960400191505060405180910390fd5b82811461113e5760405162461bcd60e51b815260040180806020018281038252602881526020018061347f6028913960400191505060405180910390fd5b6000805b8481101561116c5783838281811061115657fe5b6020029190910135929092019150600101611142565b508061117787611bd4565b10156111ca576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b848110156113175761120d878787848181106111e557fe5b905060200201356001600160a01b031686868581811061120157fe5b90506020020135612518565b50600f600087878481811061121e57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1661130f576020546001600160a01b03166314b6ca9687878481811061126557fe5b905060200201356001600160a01b0316600860008a8a8781811061128557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156112fc57600080fd5b505af192505050801561130d575060015b505b6001016111cd565b506001600160a01b0386166000908152600f602052604090205460ff166113ab57602080546001600160a01b03888116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561139857600080fd5b505af19250505080156113a9575060015b505b505050505050565b6113bc33612449565b6113fb576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040514790339060648484020480156108fc02916000818181858888f1935050505015801561142e573d6000803e3d6000fd5b505050565b61143c33612449565b61147b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c91909155601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611533576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461150e9184906125e7565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61153e84848461267e565b90505b9392505050565b60045460009061158c90611564906001600160a01b0316611bd4565b6003546115869061157d906001600160a01b0316611bd4565b60055490612d1e565b90612d1e565b905090565b61159a33612449565b6115d9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602054604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b15801561162d57600080fd5b505af11580156113ab573d6000803e3d6000fd5b61164a336116aa565b611684576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6022805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600690565b6116cc336116aa565b611706576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038416331461171b57600080fd5b610321821061175b5760405162461bcd60e51b815260040180806020018281038252602d815260200180613578602d913960400191505060405180910390fd5b8082028061176886611bd4565b10156117bb576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b838110156118f6576117ec868686848181106117d657fe5b905060200201356001600160a01b031685612518565b50600f60008686848181106117fd57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166118ee576020546001600160a01b03166314b6ca9686868481811061184457fe5b905060200201356001600160a01b03166008600089898781811061186457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156118db57600080fd5b505af19250505080156118ec575060015b505b6001016117be565b506001600160a01b0385166000908152600f602052604090205460ff1661198657602080546001600160a01b03878116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561197757600080fd5b505af19250505080156113ab57505b5050505050565b61199633612449565b6119d5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601880546001600160a01b039586166001600160a01b0319918216179091556019805494861694821694909417909355601a805492851692841692909217909155601b8054919093169116179055565b611a2e33612449565b611a6d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610fe182600019610f80565b611aaf33612449565b611aee576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600655565b611afc336116aa565b611b36576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b60225460ff1681565b611b5b33612449565b611b9a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60125481565b60245460ff1681565b6001600160a01b031660009081526008602052604090205490565b602254610100900460ff1681565b60075481565b60065481565b60115481565b611c1833612449565b611c57576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60108690556011859055601284905560138390556014829055611c8882611c82858188818c8c612d60565b90612d60565b601555601681905560048104601554106113ab576040805162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2032352500000000604482015290519081900360640190fd5b6000546001600160a01b031690565b600a5460ff1681565b611d0a336116aa565b611d44576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b82811015611d995781600b6000868685818110611d6057fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611d47565b50505050565b60105481565b611dae33612449565b611ded576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b08110611dfc57600080fd5b602155565b601f546001600160a01b031681565b600061154133848461267e565b611e26336116aa565b611e60576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60135481565b6020546001600160a01b031681565b611ea5336116aa565b611edf576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b611388816005540281611eee57fe5b0460075550565b611efe336116aa565b611f38576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d83528184208054861682179055600e9092529091208054909216179055565b6000610fe1611f92611548565b601f54611fbf90611fb890600290611fb2906001600160a01b0316611bd4565b9061247d565b859061247d565b906124d6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b611ff933612449565b612038576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6024805460ff191692151592909217909155602555565b601b546001600160a01b031681565b6001600160a01b03166000908152600c602052604090205460ff161590565b612086336116aa565b6120c0576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601755565b6120ce336116aa565b612108576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b612132336116aa565b61216c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6121e3336116aa565b61221d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b61138881600554028161222c57fe5b0460065550565b61223c33612449565b61227b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906122a25750601f546001600160a01b03838116911614155b6122ab57600080fd5b6001600160a01b0382166000908152600f60205260409020805460ff191682158015919091179091556123485760205460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b15801561232b57600080fd5b505af115801561233f573d6000803e3d6000fd5b505050506123a8565b602080546001600160a01b03848116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561162d57600080fd5b5050565b6123b533612449565b6123f4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b601e546001600160a01b031681565b60145481565b600b6020526000908152604090205460ff1681565b6001600160a01b031660009081526001602052604090205460ff1690565b60175481565b601f54600160a01b900460ff1681565b60008261248c57506000610fe1565b8282028284828161249957fe5b04146115415760405162461bcd60e51b81526004018080602001828103825260218152602001806134cc6021913960400191505060405180910390fd5b600061154183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dba565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546125699184906125e7565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546125989083612d60565b6001600160a01b03808516600081815260086020908152604091829020949094558051868152905191939288169260008051602061352b83398151915292918290030190a35060019392505050565b600081848411156126765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561263b578181015183820152602001612623565b50505050905090810190601f1680156126685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60265460009060ff161561269e57612697848484612518565b9050611541565b6001600160a01b03841660009081526001602052604090205460ff161580156126e057506001600160a01b03831660009081526001602052604090205460ff16155b1561273a57601f54600160a01b900460ff1661273a576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b600a5460ff16156127c6576001600160a01b0384166000908152600b602052604090205460ff1615801561278757506001600160a01b0383166000908152600b602052604090205460ff16155b6127c6576040805162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff161580156127f857506001600160a01b0383163014155b801561281257506003546001600160a01b03848116911614155b801561282c5750601f546001600160a01b03848116911614155b801561284657506019546001600160a01b03848116911614155b80156128605750601a546001600160a01b03848116911614155b801561287a57506018546001600160a01b03848116911614155b80156128945750601b546001600160a01b03848116911614155b156128eb5760006128a484611bd4565b905060075483820111156128e95760405162461bcd60e51b815260040180806020018281038252603e8152602001806134ed603e913960400191505060405180910390fd5b505b601f546001600160a01b03858116911614801561290a575060225460ff165b801561292f57506001600160a01b0383166000908152600e602052604090205460ff16155b156129b3576001600160a01b038316600090815260236020526040902054421161298a5760405162461bcd60e51b81526004018080602001828103825260258152602001806134a76025913960400191505060405180910390fd5b6022546001600160a01b038416600090815260236020526040902061010090910460ff16420190555b6129bd8483612e1f565b6129c5612e8d565b156129d2576129d2612edc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612a249184906125e7565b6001600160a01b03808616600081815260086020526040812093909355601f54909116148015612a6d57506001600160a01b0385166000908152600c602052604090205460ff16155b8015612a9257506001600160a01b0384166000908152600c602052604090205460ff16155b15612aaa57612aa385846000613335565b9050612b19565b601f546001600160a01b038581169116148015612ae057506001600160a01b0385166000908152600c602052604090205460ff16155b8015612b0557506001600160a01b0384166000908152600c602052604090205460ff16155b15612b1657612aa385846001613335565b50815b6001600160a01b038416600090815260086020526040902054612b3c9082612d60565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600f909152205460ff16612be257602080546001600160a01b03878116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b158015612bcf57600080fd5b505af1925050508015612be0575060015b505b6001600160a01b0384166000908152600f602052604090205460ff16612c7557602080546001600160a01b03868116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b158015612c6257600080fd5b505af1925050508015612c73575060015b505b602054602154604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b158015612cc857600080fd5b505af1925050508015612cd9575060015b50836001600160a01b0316856001600160a01b031660008051602061352b833981519152836040518082815260200191505060405180910390a3506001949350505050565b600061154183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125e7565b600082820183811015611541576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183612e095760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561263b578181015183820152602001612623565b506000838581612e1557fe5b0495945050505050565b60065481111580612e4857506001600160a01b0382166000908152600d602052604090205460ff165b6123a8576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601f546000906001600160a01b03163314801590612eae575060265460ff16155b8015612ebc575060245460ff165b801561158c57505060255430600090815260086020526040902054101590565b6026805460ff19166001179055601c54601d54600091612efb91611048565b612f0757601054612f0a565b60005b90506000612f2e6002611fbf601554611fbf8660255461247d90919063ffffffff16565b90506000612f4782602554612d1e90919063ffffffff16565b6040805160028082526060808301845293945090916020830190803683370190505090503081600081518110612f7957fe5b6001600160a01b039283166020918202929092010152600254825191169082906001908110612fa457fe5b6001600160a01b03928316602091820292909201810191909152601e5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561303e578181015183820152602001613026565b505050509050019650505050505050600060405180830381600087803b15801561306757600080fd5b505af115801561307b573d6000803e3d6000fd5b5050505060006130948247612d1e90919063ffffffff16565b905060006130af6130a68860026124d6565b60155490612d1e565b905060006130c46002611fbf8481878d61247d565b905060006130e183611fbf6011548761247d90919063ffffffff16565b905060006130fe84611fbf6012548861247d90919063ffffffff16565b9050600061311b85611fbf6013548961247d90919063ffffffff16565b9050602060009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561316d57600080fd5b505af19350505050801561317f575060015b506019546040516000916001600160a01b03169061753090859084818181858888f193505050503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b5050601a546040519192506001600160a01b0316906175309084906000818181858888f193505050503d806000811461322c576040519150601f19603f3d011682016040523d82523d6000602084013e613231565b606091505b5060009250508b15905061331d57601e546018546040805163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991889160c48082019260609290919082900301818588803b1580156132b457600080fd5b505af11580156132c8573d6000803e3d6000fd5b50505050506040513d60608110156132df57600080fd5b505060408051868152602081018d905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506026805460ff1916905550505050505050505050565b60008082613344576064613348565b6017545b9050600061336e601654606402611fbf84611fb26015548a61247d90919063ffffffff16565b9050600061338d601554611fbf6014548561247d90919063ffffffff16565b9050600061339b8383612d1e565b306000908152600860205260409020549091506133b89082612d60565b3060009081526008602052604080822092909255601b546001600160a01b0316815220546133e69083612d60565b601b546001600160a01b0390811660009081526008602090815260409182902093909355805184815290513093928c169260008051602061352b833981519152928290030190a3811561346857601b546040805184815290516001600160a01b03928316928b169160008051602061352b833981519152919081900360200190a35b6134728784612d1e565b9897505050505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220316d696e206265747765656e2074776f2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef474153204572726f723a206d61782061697264726f70206c696d69742069732035303020616464726573736573474153204572726f723a206d61782061697264726f70206c696d69742069732038303020616464726573736573a2646970667358221220507d229721895b9463ad4ae56a48e8ec156703d935327f5ddf9af68c624944f164736f6c634300070400336080604052600180546001600160a01b031990811673dac17f958d2ee523a2206206994597c13d831ec7179091556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610ec0380380610ec0833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca57737a250d5630b4cf539739df2c5dacb4c659f2488d6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dba806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f7610759565b34801561026057600080fd5b506100f761075f565b34801561027557600080fd5b50610142610765565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610770565b3480156102b457600080fd5b506100f7610852565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260076020526040902054156103015761030182610858565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610980565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e1565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ace565b90610b19565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b73565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b73565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ace565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060025482519293506001600160a01b03169183915060009061059557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105bf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610651578181015183820152602001610639565b50505050905001955050505050506000604051808303818588803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e557600080fd5b505afa1580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b505190610ace565b6009549091506107279082610b19565b600955600854600c5461075191610748916107429085610b90565b90610be9565b600b5490610b19565b600b55505050565b600b5481565b600a5481565b61076e33610858565b565b6000546001600160a01b0316331461078757600080fd5b60045480610795575061084f565b6000805a905060005b84831080156107ac57508381105b1561084a5783600f54106107c0576000600f555b6107ec6004600f54815481106107d257fe5b6000918252602090912001546001600160a01b0316610c2b565b1561081d5761081d6004600f548154811061080357fe5b6000918252602090912001546001600160a01b0316610858565b61083261082b5a8490610ace565b8490610b19565b92505a600f805460019081019091559092500161079e565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087a5761084f565b6000610885826103e8565b9050801561097c57600a5461089a9082610b19565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109529082610b19565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b73565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f357fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2b57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aa957fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c67565b90505b92915050565b600082820183811015610b10576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b13600c54610742600b5485610b9090919063ffffffff16565b600082610b9f57506000610b13565b82820282848281610bac57fe5b0414610b105760405162461bcd60e51b8152600401808060200182810382526021815260200180610d646021913960400191505060405180910390fd5b6000610b1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cfe565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b135750600e54610c60836103e8565b1192915050565b60008184841115610cf65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbb578181015183820152602001610ca3565b50505050905090810190601f168015610ce85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbb578181015183820152602001610ca3565b506000838581610d5957fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212209fef32ce67758f08685d25c8019a54fc7a9c4977c3c652b51688db43aced2ddd64736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806383ad7994116101f2578063dd62ed3e1161010d578063f708a64f116100a0578063fe575a871161006f578063fe575a8714610ecc578063fe9fbb8014610eff578063fed0d2a114610f32578063ffb54a9914610f47576103c3565b8063f708a64f14610e2c578063f84ba65d14610e67578063f887ea4014610ea2578063fce589d814610eb7576103c3565b8063ec72d65f116100dc578063ec72d65f14610d72578063f0b37c0414610d9c578063f2fde38b14610dcf578063f346bce114610e02576103c3565b8063dd62ed3e14610cbd578063df20fd4914610cf8578063e3763ded14610d2a578063e7c44c6914610d3f576103c3565b8063a8aa1b3111610185578063bfe1092811610154578063bfe1092814610c19578063c6b98c1b14610c2e578063d16baeb914610c58578063d51ed1c814610c93576103c3565b8063a8aa1b3114610b83578063a9059cbb14610b98578063b6a5d7de14610bd1578063bcc1f3e814610c04576103c3565b80638e2eee84116101c15780638e2eee8414610ac757806395d89b41146103ef57806398118cb414610b445780639d1944f514610b59576103c3565b806383ad799414610a2457806386f6c3c114610a39578063893d20e814610a81578063896648c114610ab2576103c3565b8063313ce567116102e2578063617fe0ed1161027557806370a082311161024457806370a08231146109b2578063722b62ad146109e557806378109e54146109fa5780637d1db4a514610a0f576103c3565b8063617fe0ed14610938578063658d4b7f1461094d5780636b67c4df146109885780636ddd17131461099d576103c3565b806350db71fb116102b157806350db71fb14610874578063571ac8b0146108af5780635c85974f146108e25780635e562f3b1461090c576103c3565b8063313ce56714610773578063335f6a431461079e5780633c8e556d1461082957806344a33fd214610629576103c3565b80631ca0a28d1161035a5780632b112e49116103295780632b112e49146106c65780632d48e896146106db5780632d5945671461070b5780632f54bf6e14610740576103c3565b80631ca0a28d1461054e5780631da1db5e14610629578063201e79911461065357806323b872dd14610683576103c3565b80630d295980116103965780630d295980146104c65780631161ae39146104f4578063180b0d7e1461052457806318160ddd14610539576103c3565b80630445b667146103c857806306fdde03146103ef578063095ea7b314610479576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610f5c565b60408051918252519081900360200190f35b3480156103fb57600080fd5b50610404610f62565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561043e578181015183820152602001610426565b50505050905090810190601f16801561046b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048557600080fd5b506104b26004803603604081101561049c57600080fd5b506001600160a01b038135169060200135610f80565b604080519115158252519081900360200190f35b3480156104d257600080fd5b506104f2600480360360208110156104e957600080fd5b50351515610fe7565b005b34801561050057600080fd5b506104b26004803603604081101561051757600080fd5b5080359060200135611048565b34801561053057600080fd5b506103dd61105c565b34801561054557600080fd5b506103dd611062565b34801561055a57600080fd5b506104f26004803603606081101561057157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111600160201b831117156105ce57600080fd5b919390929091602081019035600160201b8111156105eb57600080fd5b8201836020820111156105fd57600080fd5b803590602001918460208302840111600160201b8311171561061e57600080fd5b509092509050611068565b34801561063557600080fd5b506104f26004803603602081101561064c57600080fd5b50356113b3565b34801561065f57600080fd5b506104f26004803603604081101561067657600080fd5b5080359060200135611433565b34801561068f57600080fd5b506104b2600480360360608110156106a657600080fd5b506001600160a01b03813581169160208101359091169060400135611486565b3480156106d257600080fd5b506103dd611548565b3480156106e757600080fd5b506104f2600480360360408110156106fe57600080fd5b5080359060200135611591565b34801561071757600080fd5b506104f26004803603604081101561072e57600080fd5b5080351515906020013560ff16611641565b34801561074c57600080fd5b506104b26004803603602081101561076357600080fd5b50356001600160a01b03166116aa565b34801561077f57600080fd5b506107886116be565b6040805160ff9092168252519081900360200190f35b3480156107aa57600080fd5b506104f2600480360360608110156107c157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107eb57600080fd5b8201836020820111156107fd57600080fd5b803590602001918460208302840111600160201b8311171561081e57600080fd5b9193509150356116c3565b34801561083557600080fd5b506104f26004803603608081101561084c57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606001351661198d565b34801561088057600080fd5b506104f26004803603604081101561089757600080fd5b506001600160a01b0381351690602001351515611a25565b3480156108bb57600080fd5b506104b2600480360360208110156108d257600080fd5b50356001600160a01b0316611a98565b3480156108ee57600080fd5b506104f26004803603602081101561090557600080fd5b5035611aa6565b34801561091857600080fd5b506104f26004803603602081101561092f57600080fd5b50351515611af3565b34801561094457600080fd5b506104b2611b49565b34801561095957600080fd5b506104f26004803603604081101561097057600080fd5b506001600160a01b0381351690602001351515611b52565b34801561099457600080fd5b506103dd611bc5565b3480156109a957600080fd5b506104b2611bcb565b3480156109be57600080fd5b506103dd600480360360208110156109d557600080fd5b50356001600160a01b0316611bd4565b3480156109f157600080fd5b50610788611bef565b348015610a0657600080fd5b506103dd611bfd565b348015610a1b57600080fd5b506103dd611c03565b348015610a3057600080fd5b506103dd611c09565b348015610a4557600080fd5b506104f2600480360360c0811015610a5c57600080fd5b5080359060208101359060408101359060608101359060808101359060a00135611c0f565b348015610a8d57600080fd5b50610a96611ce9565b604080516001600160a01b039092168252519081900360200190f35b348015610abe57600080fd5b506104b2611cf8565b348015610ad357600080fd5b506104f260048036036040811015610aea57600080fd5b810190602081018135600160201b811115610b0457600080fd5b820183602082011115610b1657600080fd5b803590602001918460208302840111600160201b83111715610b3757600080fd5b9193509150351515611d01565b348015610b5057600080fd5b506103dd611d9f565b348015610b6557600080fd5b506104f260048036036020811015610b7c57600080fd5b5035611da5565b348015610b8f57600080fd5b50610a96611e01565b348015610ba457600080fd5b506104b260048036036040811015610bbb57600080fd5b506001600160a01b038135169060200135611e10565b348015610bdd57600080fd5b506104f260048036036020811015610bf457600080fd5b50356001600160a01b0316611e1d565b348015610c1057600080fd5b506103dd611e87565b348015610c2557600080fd5b50610a96611e8d565b348015610c3a57600080fd5b506104f260048036036020811015610c5157600080fd5b5035611e9c565b348015610c6457600080fd5b506104f260048036036040811015610c7b57600080fd5b506001600160a01b0381351690602001351515611ef5565b348015610c9f57600080fd5b506103dd60048036036020811015610cb657600080fd5b5035611f85565b348015610cc957600080fd5b506103dd60048036036040811015610ce057600080fd5b506001600160a01b0381358116916020013516611fc5565b348015610d0457600080fd5b506104f260048036036040811015610d1b57600080fd5b50803515159060200135611ff0565b348015610d3657600080fd5b50610a9661204f565b348015610d4b57600080fd5b506104b260048036036020811015610d6257600080fd5b50356001600160a01b031661205e565b348015610d7e57600080fd5b506104f260048036036020811015610d9557600080fd5b503561207d565b348015610da857600080fd5b506104f260048036036020811015610dbf57600080fd5b50356001600160a01b03166120c5565b348015610ddb57600080fd5b506104f260048036036020811015610df257600080fd5b50356001600160a01b0316612129565b348015610e0e57600080fd5b506104f260048036036020811015610e2557600080fd5b50356121da565b348015610e3857600080fd5b506104f260048036036040811015610e4f57600080fd5b506001600160a01b0381351690602001351515612233565b348015610e7357600080fd5b506104f260048036036040811015610e8a57600080fd5b506001600160a01b03813516906020013515156123ac565b348015610eae57600080fd5b50610a9661241f565b348015610ec357600080fd5b506103dd61242e565b348015610ed857600080fd5b506104b260048036036020811015610eef57600080fd5b50356001600160a01b0316612434565b348015610f0b57600080fd5b506104b260048036036020811015610f2257600080fd5b50356001600160a01b0316612449565b348015610f3e57600080fd5b506103dd612467565b348015610f5357600080fd5b506104b261246d565b60255481565b604080518082019091526004815263109bdbdd60e21b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610ff0336116aa565b61102a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601f8054911515600160a01b0260ff60a01b19909216919091179055565b60008261105483611f85565b119392505050565b60165481565b60055490565b611071336116aa565b6110ab576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03851633146110c057600080fd5b6101f583106111005760405162461bcd60e51b815260040180806020018281038252602d81526020018061354b602d913960400191505060405180910390fd5b82811461113e5760405162461bcd60e51b815260040180806020018281038252602881526020018061347f6028913960400191505060405180910390fd5b6000805b8481101561116c5783838281811061115657fe5b6020029190910135929092019150600101611142565b508061117787611bd4565b10156111ca576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b848110156113175761120d878787848181106111e557fe5b905060200201356001600160a01b031686868581811061120157fe5b90506020020135612518565b50600f600087878481811061121e57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff1661130f576020546001600160a01b03166314b6ca9687878481811061126557fe5b905060200201356001600160a01b0316600860008a8a8781811061128557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156112fc57600080fd5b505af192505050801561130d575060015b505b6001016111cd565b506001600160a01b0386166000908152600f602052604090205460ff166113ab57602080546001600160a01b03888116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561139857600080fd5b505af19250505080156113a9575060015b505b505050505050565b6113bc33612449565b6113fb576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040514790339060648484020480156108fc02916000818181858888f1935050505015801561142e573d6000803e3d6000fd5b505050565b61143c33612449565b61147b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c91909155601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611533576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461150e9184906125e7565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61153e84848461267e565b90505b9392505050565b60045460009061158c90611564906001600160a01b0316611bd4565b6003546115869061157d906001600160a01b0316611bd4565b60055490612d1e565b90612d1e565b905090565b61159a33612449565b6115d9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602054604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b15801561162d57600080fd5b505af11580156113ab573d6000803e3d6000fd5b61164a336116aa565b611684576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6022805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600690565b6116cc336116aa565b611706576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038416331461171b57600080fd5b610321821061175b5760405162461bcd60e51b815260040180806020018281038252602d815260200180613578602d913960400191505060405180910390fd5b8082028061176886611bd4565b10156117bb576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b838110156118f6576117ec868686848181106117d657fe5b905060200201356001600160a01b031685612518565b50600f60008686848181106117fd57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166118ee576020546001600160a01b03166314b6ca9686868481811061184457fe5b905060200201356001600160a01b03166008600089898781811061186457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156118db57600080fd5b505af19250505080156118ec575060015b505b6001016117be565b506001600160a01b0385166000908152600f602052604090205460ff1661198657602080546001600160a01b03878116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561197757600080fd5b505af19250505080156113ab57505b5050505050565b61199633612449565b6119d5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601880546001600160a01b039586166001600160a01b0319918216179091556019805494861694821694909417909355601a805492851692841692909217909155601b8054919093169116179055565b611a2e33612449565b611a6d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610fe182600019610f80565b611aaf33612449565b611aee576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600655565b611afc336116aa565b611b36576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b60225460ff1681565b611b5b33612449565b611b9a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60125481565b60245460ff1681565b6001600160a01b031660009081526008602052604090205490565b602254610100900460ff1681565b60075481565b60065481565b60115481565b611c1833612449565b611c57576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60108690556011859055601284905560138390556014829055611c8882611c82858188818c8c612d60565b90612d60565b601555601681905560048104601554106113ab576040805162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2032352500000000604482015290519081900360640190fd5b6000546001600160a01b031690565b600a5460ff1681565b611d0a336116aa565b611d44576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b82811015611d995781600b6000868685818110611d6057fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611d47565b50505050565b60105481565b611dae33612449565b611ded576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b08110611dfc57600080fd5b602155565b601f546001600160a01b031681565b600061154133848461267e565b611e26336116aa565b611e60576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60135481565b6020546001600160a01b031681565b611ea5336116aa565b611edf576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b611388816005540281611eee57fe5b0460075550565b611efe336116aa565b611f38576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d83528184208054861682179055600e9092529091208054909216179055565b6000610fe1611f92611548565b601f54611fbf90611fb890600290611fb2906001600160a01b0316611bd4565b9061247d565b859061247d565b906124d6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b611ff933612449565b612038576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6024805460ff191692151592909217909155602555565b601b546001600160a01b031681565b6001600160a01b03166000908152600c602052604090205460ff161590565b612086336116aa565b6120c0576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601755565b6120ce336116aa565b612108576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b612132336116aa565b61216c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6121e3336116aa565b61221d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b61138881600554028161222c57fe5b0460065550565b61223c33612449565b61227b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906122a25750601f546001600160a01b03838116911614155b6122ab57600080fd5b6001600160a01b0382166000908152600f60205260409020805460ff191682158015919091179091556123485760205460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b15801561232b57600080fd5b505af115801561233f573d6000803e3d6000fd5b505050506123a8565b602080546001600160a01b03848116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b15801561162d57600080fd5b5050565b6123b533612449565b6123f4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b601e546001600160a01b031681565b60145481565b600b6020526000908152604090205460ff1681565b6001600160a01b031660009081526001602052604090205460ff1690565b60175481565b601f54600160a01b900460ff1681565b60008261248c57506000610fe1565b8282028284828161249957fe5b04146115415760405162461bcd60e51b81526004018080602001828103825260218152602001806134cc6021913960400191505060405180910390fd5b600061154183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dba565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546125699184906125e7565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546125989083612d60565b6001600160a01b03808516600081815260086020908152604091829020949094558051868152905191939288169260008051602061352b83398151915292918290030190a35060019392505050565b600081848411156126765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561263b578181015183820152602001612623565b50505050905090810190601f1680156126685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60265460009060ff161561269e57612697848484612518565b9050611541565b6001600160a01b03841660009081526001602052604090205460ff161580156126e057506001600160a01b03831660009081526001602052604090205460ff16155b1561273a57601f54600160a01b900460ff1661273a576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b600a5460ff16156127c6576001600160a01b0384166000908152600b602052604090205460ff1615801561278757506001600160a01b0383166000908152600b602052604090205460ff16155b6127c6576040805162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff161580156127f857506001600160a01b0383163014155b801561281257506003546001600160a01b03848116911614155b801561282c5750601f546001600160a01b03848116911614155b801561284657506019546001600160a01b03848116911614155b80156128605750601a546001600160a01b03848116911614155b801561287a57506018546001600160a01b03848116911614155b80156128945750601b546001600160a01b03848116911614155b156128eb5760006128a484611bd4565b905060075483820111156128e95760405162461bcd60e51b815260040180806020018281038252603e8152602001806134ed603e913960400191505060405180910390fd5b505b601f546001600160a01b03858116911614801561290a575060225460ff165b801561292f57506001600160a01b0383166000908152600e602052604090205460ff16155b156129b3576001600160a01b038316600090815260236020526040902054421161298a5760405162461bcd60e51b81526004018080602001828103825260258152602001806134a76025913960400191505060405180910390fd5b6022546001600160a01b038416600090815260236020526040902061010090910460ff16420190555b6129bd8483612e1f565b6129c5612e8d565b156129d2576129d2612edc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612a249184906125e7565b6001600160a01b03808616600081815260086020526040812093909355601f54909116148015612a6d57506001600160a01b0385166000908152600c602052604090205460ff16155b8015612a9257506001600160a01b0384166000908152600c602052604090205460ff16155b15612aaa57612aa385846000613335565b9050612b19565b601f546001600160a01b038581169116148015612ae057506001600160a01b0385166000908152600c602052604090205460ff16155b8015612b0557506001600160a01b0384166000908152600c602052604090205460ff16155b15612b1657612aa385846001613335565b50815b6001600160a01b038416600090815260086020526040902054612b3c9082612d60565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600f909152205460ff16612be257602080546001600160a01b03878116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b158015612bcf57600080fd5b505af1925050508015612be0575060015b505b6001600160a01b0384166000908152600f602052604090205460ff16612c7557602080546001600160a01b03868116600081815260089094526040808520548151630a5b654b60e11b8152600481019390935260248301525191909216926314b6ca96926044808201939182900301818387803b158015612c6257600080fd5b505af1925050508015612c73575060015b505b602054602154604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b158015612cc857600080fd5b505af1925050508015612cd9575060015b50836001600160a01b0316856001600160a01b031660008051602061352b833981519152836040518082815260200191505060405180910390a3506001949350505050565b600061154183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125e7565b600082820183811015611541576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183612e095760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561263b578181015183820152602001612623565b506000838581612e1557fe5b0495945050505050565b60065481111580612e4857506001600160a01b0382166000908152600d602052604090205460ff165b6123a8576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601f546000906001600160a01b03163314801590612eae575060265460ff16155b8015612ebc575060245460ff165b801561158c57505060255430600090815260086020526040902054101590565b6026805460ff19166001179055601c54601d54600091612efb91611048565b612f0757601054612f0a565b60005b90506000612f2e6002611fbf601554611fbf8660255461247d90919063ffffffff16565b90506000612f4782602554612d1e90919063ffffffff16565b6040805160028082526060808301845293945090916020830190803683370190505090503081600081518110612f7957fe5b6001600160a01b039283166020918202929092010152600254825191169082906001908110612fa457fe5b6001600160a01b03928316602091820292909201810191909152601e5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561303e578181015183820152602001613026565b505050509050019650505050505050600060405180830381600087803b15801561306757600080fd5b505af115801561307b573d6000803e3d6000fd5b5050505060006130948247612d1e90919063ffffffff16565b905060006130af6130a68860026124d6565b60155490612d1e565b905060006130c46002611fbf8481878d61247d565b905060006130e183611fbf6011548761247d90919063ffffffff16565b905060006130fe84611fbf6012548861247d90919063ffffffff16565b9050600061311b85611fbf6013548961247d90919063ffffffff16565b9050602060009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561316d57600080fd5b505af19350505050801561317f575060015b506019546040516000916001600160a01b03169061753090859084818181858888f193505050503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b5050601a546040519192506001600160a01b0316906175309084906000818181858888f193505050503d806000811461322c576040519150601f19603f3d011682016040523d82523d6000602084013e613231565b606091505b5060009250508b15905061331d57601e546018546040805163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991889160c48082019260609290919082900301818588803b1580156132b457600080fd5b505af11580156132c8573d6000803e3d6000fd5b50505050506040513d60608110156132df57600080fd5b505060408051868152602081018d905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506026805460ff1916905550505050505050505050565b60008082613344576064613348565b6017545b9050600061336e601654606402611fbf84611fb26015548a61247d90919063ffffffff16565b9050600061338d601554611fbf6014548561247d90919063ffffffff16565b9050600061339b8383612d1e565b306000908152600860205260409020549091506133b89082612d60565b3060009081526008602052604080822092909255601b546001600160a01b0316815220546133e69083612d60565b601b546001600160a01b0390811660009081526008602090815260409182902093909355805184815290513093928c169260008051602061352b833981519152928290030190a3811561346857601b546040805184815290516001600160a01b03928316928b169160008051602061352b833981519152919081900360200190a35b6134728784612d1e565b9897505050505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220316d696e206265747765656e2074776f2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef474153204572726f723a206d61782061697264726f70206c696d69742069732035303020616464726573736573474153204572726f723a206d61782061697264726f70206c696d69742069732038303020616464726573736573a2646970667358221220507d229721895b9463ad4ae56a48e8ec156703d935327f5ddf9af68c624944f164736f6c63430007040033
Deployed Bytecode Sourcemap
10754:17751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12769:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14268:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14691:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14691:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20846:94;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20846:94:0;;;;:::i;:::-;;26440:150;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26440:150:0;;;;;;;:::i;12051:36::-;;;;;;;;;;;;;:::i;13998:88::-;;;;;;;;;;;;;:::i;26631:990::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26631:990:0;;;;;;;;;;;;;;;-1:-1:-1;;;26631:990:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26631:990:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26631:990:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26631:990:0;;;;;;;;;;-1:-1:-1;26631:990:0;;-1:-1:-1;26631:990:0;-1:-1:-1;26631:990:0;:::i;20260:208::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20260:208:0;;:::i;25584:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25584:183:0;;;;;;;:::i;15206:365::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15206:365:0;;;;;;;;;;;;;;;;;:::i;26113:142::-;;;;;;;;;;;;;:::i;25776:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25776:183:0;;;;;;;:::i;21207:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21207:164:0;;;;;;;;;;;:::i;2773:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2773:103:0;-1:-1:-1;;;;;2773:103:0;;:::i;14092:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27630:807;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27630:807:0;;;;;;;;;;;;;;;-1:-1:-1;;;27630:807:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;27630:807:0;;;;;;;;;;;;-1:-1:-1;27630:807:0;-1:-1:-1;27630:807:0;;:::i;25024:386::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25024:386:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;24279:130::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24279:130:0;;;;;;;;;;:::i;14916:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14916:116:0;-1:-1:-1;;;;;14916:116:0;;:::i;15944:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15944:96:0;;:::i;23683:99::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23683:99:0;;;;:::i;12584:38::-;;;;;;;;;;;;;:::i;24013:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24013:120:0;;;;;;;;;;:::i;11819:34::-;;;;;;;;;;;;;:::i;12732:30::-;;;;;;;;;;;;;:::i;14438:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14438:105:0;-1:-1:-1;;;;;14438:105:0;;:::i;12629:39::-;;;;;;;;;;;;;:::i;11262:61::-;;;;;;;;;;;;;:::i;11197:58::-;;;;;;;;;;;;;:::i;11778:34::-;;;;;;;;;;;;;:::i;24418:597::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24418:597:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14354:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;14354:78:0;;;;;;;;;;;;;;11449:32;;;;;;;;;;;;;:::i;23791:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23791:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23791:210:0;;;;;;;;;;;;-1:-1:-1;23791:210:0;-1:-1:-1;23791:210:0;;;;:::i;11737:34::-;;;;;;;;;;;;;:::i;25968:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25968:136:0;;:::i;12429:19::-;;;;;;;;;;;;;:::i;15041:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15041:156:0;;;;;;;;:::i;2564:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2564:94:0;-1:-1:-1;;;;;2564:94:0;;:::i;11860:34::-;;;;;;;;;;;;;:::i;12499:38::-;;;;;;;;;;;;;:::i;15580:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15580:177:0;;:::i;20948:211::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20948:211:0;;;;;;;;;;:::i;26264:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26264:167:0;;:::i;14549:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14549:133:0;;;;;;;;;;:::i;25419:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25419:156:0;;;;;;;;;:::i;12273:30::-;;;;;;;;;;;;;:::i;19152:114::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19152:114:0;-1:-1:-1;;;;;19152:114:0;;:::i;20701:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20701:113:0;;:::i;2667:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2667:97:0;-1:-1:-1;;;;;2667:97:0;;:::i;3001:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3001:173:0;-1:-1:-1;;;;;3001:173:0;;:::i;15763:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15763:172:0;;:::i;23327:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23327:347:0;;;;;;;;;;:::i;24142:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24142:128:0;;;;;;;;;;:::i;12398:24::-;;;;;;;;;;;;;:::i;11901:34::-;;;;;;;;;;;;;:::i;11488:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11488:46:0;-1:-1:-1;;;;;11488:46:0;;:::i;2885:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2885:107:0;-1:-1:-1;;;;;2885:107:0;;:::i;12097:36::-;;;;;;;;;;;;;:::i;12458:31::-;;;;;;;;;;;;;:::i;12769:55::-;;;;:::o;14268:80::-;14340:5;;;;;;;;;;;;-1:-1:-1;;;14340:5:0;;;;14268:80;:::o;14691:216::-;14795:10;14766:4;14783:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14783:32:0;;;;;;;;;;;:41;;;14840:37;;;;;;;14766:4;;14783:32;;14795:10;;14840:37;;;;;;;;-1:-1:-1;14895:4:0;14691:216;;;;;:::o;20846:94::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;20911:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;20911:21:0::1;-1:-1:-1::0;;;;20911:21:0;;::::1;::::0;;;::::1;::::0;;20846:94::o;26440:150::-;26520:4;26576:6;26544:29;26564:8;26544:19;:29::i;:::-;:38;;26440:150;-1:-1:-1;;;26440:150:0:o;12051:36::-;;;;:::o;13998:88::-;14071:12;;13998:88;:::o;26631:990::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26763:16:0;::::1;26769:10;26763:16;26755:25;;;::::0;::::1;;26818:3;26799:22:::0;::::1;26791:79;;;;-1:-1:-1::0;;;26791:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26889:33:::0;;::::1;26881:85;;;;-1:-1:-1::0;;;26881:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26980:12;27014:6:::0;27010:90:::1;27024:20:::0;;::::1;27010:90;;;27079:6;;27086:1;27079:9;;;;;;;;;::::0;;;::::1;;27072:16:::0;;;::::1;::::0;-1:-1:-1;27046:3:0::1;;27010:90;;;;27140:4;27121:15;27131:4;27121:9;:15::i;:::-;:23;;27113:63;;;::::0;;-1:-1:-1;;;27113:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27194:6;27190:269;27204:20:::0;;::::1;27190:269;;;27245:43;27260:4;27265:9;;27275:1;27265:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;27265:12:0::1;27278:6;;27285:1;27278:9;;;;;;;;;;;;;27245:14;:43::i;:::-;;27307:16;:30;27324:9;;27334:1;27324:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;27324:12:0::1;27307:30:::0;;-1:-1:-1;27307:30:0;::::1;::::0;;;;;;-1:-1:-1;27307:30:0;;::::1;;27303:145;;27362:11;::::0;-1:-1:-1;;;;;27362:11:0::1;:20;27383:9:::0;;27393:1;27383:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;27383:12:0::1;27397:9;:23;27407:9;;27417:1;27407:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;27407:12:0::1;-1:-1:-1::0;;;;;27397:23:0::1;-1:-1:-1::0;;;;;27397:23:0::1;;;;;;;;;;;;;27362:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;27362:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;27358:75:::0;::::1;27226:3;;27190:269;;;-1:-1:-1::0;;;;;;27505:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;27501:113;;27548:11;::::0;;-1:-1:-1;;;;;27575:15:0;;::::1;27548:11;27575:15:::0;;;:9:::1;:15:::0;;;;;;;;27548:43;;-1:-1:-1;;;27548:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:43;;;;;;;;;;;:11;;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;27544:59:::0;::::1;2445:1;26631:990:::0;;;;;:::o;20260:208::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;20396:64:::1;::::0;20364:21:::1;::::0;20404:10:::1;::::0;20456:3:::1;20425:28:::0;;::::1;:34;20396:64:::0;::::1;;;::::0;::::1;::::0;;;20425:34;20404:10;20396:64;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2546:1;20260:208:::0;:::o;25584:183::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;25682:15:::1;:25:::0;;;;25718:26:::1;:41:::0;25584:183::o;15206:365::-;-1:-1:-1;;;;;15326:19:0;;15306:4;15326:19;;;:11;:19;;;;;;;;15346:10;15326:31;;;;;;;;-1:-1:-1;;15326:46:0;15323:180;;15422:69;;;;;;;;;;;-1:-1:-1;;;15422:69:0;;;;;;;;-1:-1:-1;;;;;15422:19:0;;-1:-1:-1;15422:19:0;;;:11;:19;;;;;15442:10;15422:31;;;;;;;;;;:69;;15458:6;;15422:35;:69::i;:::-;-1:-1:-1;;;;;15388:19:0;;;;;;:11;:19;;;;;;;;15408:10;15388:31;;;;;;;:103;15323:180;15523:40;15537:6;15545:9;15556:6;15523:13;:40::i;:::-;15516:47;;15206:365;;;;;;:::o;26113:142::-;26241:4;;26166:7;;26193:54;;26231:15;;-1:-1:-1;;;;;26241:4:0;26231:9;:15::i;:::-;26220:4;;26193:33;;26210:15;;-1:-1:-1;;;;;26220:4:0;26210:9;:15::i;:::-;26193:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;26186:61;;26113:142;:::o;25776:183::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;25886:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;25886:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;25886:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;21207:164:::0;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;21291:18:::1;:28:::0;;-1:-1:-1;;21291:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;21330:33:0::1;21291:28;;21330:33:::0;;;::::1;::::0;;;::::1;;::::0;;21207:164::o;2773:103::-;2828:4;2863:5;-1:-1:-1;;;;;2863:5:0;;;2852:16;;;;2773:103::o;14092:80::-;11126:1;14092:80;:::o;27630:807::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27757:16:0;::::1;27763:10;27757:16;27749:25;;;::::0;::::1;;27812:3;27793:22:::0;::::1;27785:79;;;;-1:-1:-1::0;;;27785:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27893:25:::0;;::::1;::::0;27940:15:::1;27950:4:::0;27940:9:::1;:15::i;:::-;:23;;27932:63;;;::::0;;-1:-1:-1;;;27932:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28013:6;28009:266;28023:20:::0;;::::1;28009:266;;;28064:40;28079:4;28084:9;;28094:1;28084:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;28084:12:0::1;28097:6;28064:14;:40::i;:::-;;28123:16;:30;28140:9;;28150:1;28140:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;28140:12:0::1;28123:30:::0;;-1:-1:-1;28123:30:0;::::1;::::0;;;;;;-1:-1:-1;28123:30:0;;::::1;;28119:145;;28178:11;::::0;-1:-1:-1;;;;;28178:11:0::1;:20;28199:9:::0;;28209:1;28199:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;28199:12:0::1;28213:9;:23;28223:9;;28233:1;28223:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;28223:12:0::1;-1:-1:-1::0;;;;;28213:23:0::1;-1:-1:-1::0;;;;;28213:23:0::1;;;;;;;;;;;;;28178:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;28178:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;28174:75:::0;::::1;28045:3;;28009:266;;;-1:-1:-1::0;;;;;;28321:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;28317:113;;28364:11;::::0;;-1:-1:-1;;;;;28391:15:0;;::::1;28364:11;28391:15:::0;;;:9:::1;:15:::0;;;;;;;;28364:43;;-1:-1:-1;;;28364:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:43;;;;;;;;;;;:11;;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;28360:59;2445:1;27630:807:::0;;;;:::o;25024:386::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;25201:21:::1;:46:::0;;-1:-1:-1;;;;;25201:46:0;;::::1;-1:-1:-1::0;;;;;;25201:46:0;;::::1;;::::0;;;25258:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;25313:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;25368:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;25024:386::o;24279:130::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24368:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;24368:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24279:130::o;14916:116::-;14971:4;14995:29;15003:7;-1:-1:-1;;14995:7:0;:29::i;15944:96::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;16011:12:::1;:21:::0;15944:96::o;23683:99::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;23751:13:::1;:23:::0;;-1:-1:-1;;23751:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23683:99::o;12584:38::-;;;;;;:::o;24013:120::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24097:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;24097:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24013:120::o;11819:34::-;;;;:::o;12732:30::-;;;;;;:::o;14438:105::-;-1:-1:-1;;;;;14522:18:0;14504:7;14522:18;;;:9;:18;;;;;;;14438:105::o;12629:39::-;;;;;;;;;:::o;11262:61::-;;;;:::o;11197:58::-;;;;:::o;11778:34::-;;;;:::o;24418:597::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;24602:12:::1;:28:::0;;;24641:13:::1;:30:::0;;;24682:12:::1;:28:::0;;;24721:12:::1;:28:::0;;;24760:7:::1;:18:::0;;;24800:85:::1;24770:8:::0;24800:71:::1;24736:13:::0;24800:71;24697:13;24800:71;24617:13;24657:14;24800:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:85::-;24789:8;:96:::0;24896:14:::1;:32:::0;;;24973:1:::1;24913:15:::0;24958:16:::1;24947:8;;:27;24939:68;;;::::0;;-1:-1:-1;;;24939:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;14354:78:::0;14406:7;14424:5;-1:-1:-1;;;;;14424:5:0;14354:78;:::o;11449:32::-;;;;;;:::o;23791:210::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;23893:9:::1;23888:106;23904:20:::0;;::::1;23888:106;;;23976:6;23946:13;:27;23960:9;;23970:1;23960:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;23960:12:0::1;23946:27:::0;;-1:-1:-1;23946:27:0;::::1;::::0;;;;;;-1:-1:-1;23946:27:0;:36;;-1:-1:-1;;23946:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;23926:3:0::1;23888:106;;;;23791:210:::0;;;:::o;11737:34::-;;;;:::o;25968:136::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;26058:6:::1;26052:3;:12;26044:21;;;::::0;::::1;;26076:14;:20:::0;25968:136::o;12429:19::-;;;-1:-1:-1;;;;;12429:19:0;;:::o;15041:156::-;15121:4;15145:44;15159:10;15171:9;15182:6;15145:13;:44::i;2564:94::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2624:19:0::1;;::::0;;;2646:4:::1;2624:19;::::0;;;;;;;:26;;-1:-1:-1;;2624:26:0::1;::::0;;::::1;::::0;;2564:94::o;11860:34::-;;;;:::o;12499:38::-;;;-1:-1:-1;;;;;12499:38:0;;:::o;15580:177::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;15745:4:::1;15717:23;15702:12;;:38;15701:48;;;;;;15683:15;:66:::0;-1:-1:-1;15580:177:0:o;20948:211::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21027:21:0;;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;:31;;;::::1;;-1:-1:-1::0;;21027:31:0;;::::1;::::0;::::1;::::0;;;21069:15:::1;:25:::0;;;;;:35;;;::::1;::::0;::::1;::::0;;21115:16:::1;:26:::0;;;;;;:36;;;;::::1;;::::0;;20948:211::o;26264:167::-;26332:7;26359:64;26400:22;:20;:22::i;:::-;26382:4;;26359:36;;26372:22;;26392:1;;26372:15;;-1:-1:-1;;;;;26382:4:0;26372:9;:15::i;:::-;:19;;:22::i;:::-;26359:8;;:12;:36::i;:::-;:40;;:64::i;14549:133::-;-1:-1:-1;;;;;14651:19:0;;;14633:7;14651:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14549:133::o;25419:156::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;25511:11:::1;:22:::0;;-1:-1:-1;;25511:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25544:13:::1;:23:::0;25419:156::o;12273:30::-;;;-1:-1:-1;;;;;12273:30:0;;:::o;19152:114::-;-1:-1:-1;;;;;19239:19:0;19214:4;19239:19;;;:11;:19;;;;;;;;19238:20;;19152:114::o;20701:113::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;20779:14:::1;:27:::0;20701:113::o;2667:97::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2729:19:0::1;2751:5;2729:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2729:27:0::1;::::0;;2667:97::o;3001:173::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;3077:5:::1;:11:::0;;-1:-1:-1;;;;;;3077:11:0::1;-1:-1:-1::0;;;;;3077:11:0;::::1;::::0;;::::1;::::0;;3099:19;;;-1:-1:-1;3099:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3099:26:0::1;::::0;;::::1;::::0;;;3141:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3001:173:::0;:::o;15763:172::-;2413:19;2421:10;2413:7;:19::i;:::-;2405:38;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;-1:-1:-1;;;2405:38:0;;;;;;;;;;;;;;;15923:4:::1;15894:24;15879:12;;:39;15878:49;;;;;;15863:12;:64:::0;-1:-1:-1;15763:172:0:o;23327:347::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23424:23:0;::::1;23442:4;23424:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;23461:4:0::1;::::0;-1:-1:-1;;;;;23451:14:0;;::::1;23461:4:::0;::::1;23451:14;;23424:41;23416:50;;;::::0;::::1;;-1:-1:-1::0;;;;;23477:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23477:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23521:146:::1;;23546:11;::::0;:31:::1;::::0;;-1:-1:-1;;;23546:31:0;;-1:-1:-1;;;;;23546:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23521:146;;;23608:11;::::0;;-1:-1:-1;;;;;23637:17:0;;::::1;23608:11;23637:17:::0;;;:9:::1;:17:::0;;;;;;;;23608:47;;-1:-1:-1;;;23608:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:47;;;;;;;;;;;:11;;:47;::::1;;::::0;::::1;;;;::::0;::::1;23521:146;23327:347:::0;;:::o;24142:128::-;2504:24;2517:10;2504:12;:24::i;:::-;2496:48;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;-1:-1:-1;;;2496:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24230:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;24230:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24142:128::o;12398:24::-;;;-1:-1:-1;;;;;12398:24:0;;:::o;11901:34::-;;;;:::o;11488:46::-;;;;;;;;;;;;;;;:::o;2885:107::-;-1:-1:-1;;;;;2965:19:0;2941:4;2965:19;;;:14;:19;;;;;;;;;2885:107::o;12097:36::-;;;;:::o;12458:31::-;;;-1:-1:-1;;;12458:31:0;;;;;:::o;637:252::-;695:7;719:6;715:47;;-1:-1:-1;749:1:0;742:8;;715:47;787:5;;;791:1;787;:5;:1;811:5;;;;;:10;803:56;;;;-1:-1:-1;;;803:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:132;953:7;980:39;984:1;987;980:39;;;;;;;;;;;;;;;;;:3;:39::i;18638:330::-;18768:53;;;;;;;;;;;-1:-1:-1;;;18768:53:0;;;;;;;;-1:-1:-1;;;;;18768:17:0;;18731:4;18768:17;;;:9;:17;;;;;;;:53;;18790:6;;18768:21;:53::i;:::-;-1:-1:-1;;;;;18748:17:0;;;;;;;:9;:17;;;;;;:73;;;;18855:20;;;;;;;:32;;18880:6;18855:24;:32::i;:::-;-1:-1:-1;;;;;18832:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;18903:35;;;;;;;18832:20;;18903:35;;;;-1:-1:-1;;;;;;;;;;;18903:35:0;;;;;;;;-1:-1:-1;18956:4:0;18638:330;;;;;:::o;438:193::-;524:7;560:12;552:6;;;;544:29;;;;-1:-1:-1;;;544:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;596:5:0;;;438:193::o;16052:2577::-;16164:6;;16144:4;;16164:6;;16161:63;;;16180:41;16195:6;16203:9;16214:6;16180:14;:41::i;:::-;16173:48;;;;16161:63;-1:-1:-1;;;;;16241:22:0;;;;;;:14;:22;;;;;;;;16240:23;:53;;;;-1:-1:-1;;;;;;16268:25:0;;;;;;:14;:25;;;;;;;;16267:26;16240:53;16237:127;;;16317:11;;-1:-1:-1;;;16317:11:0;;;;16309:43;;;;;-1:-1:-1;;;16309:43:0;;;;;;;;;;;;-1:-1:-1;;;16309:43:0;;;;;;;;;;;;;;;16402:13;;;;16399:118;;;-1:-1:-1;;;;;16440:21:0;;;;;;:13;:21;;;;;;;;16439:22;:51;;;;-1:-1:-1;;;;;;16466:24:0;;;;;;:13;:24;;;;;;;;16465:25;16439:51;16431:74;;;;;-1:-1:-1;;;16431:74:0;;;;;;;;;;;;-1:-1:-1;;;16431:74:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16538:22:0;;;;;;:14;:22;;;;;;;;16537:23;:53;;;;-1:-1:-1;;;;;;16564:26:0;;16585:4;16564:26;;16537:53;:84;;;;-1:-1:-1;16616:4:0;;-1:-1:-1;;;;;16595:26:0;;;16616:4;;16595:26;;16537:84;:105;;;;-1:-1:-1;16638:4:0;;-1:-1:-1;;;;;16625:17:0;;;16638:4;;16625:17;;16537:105;:142;;;;-1:-1:-1;16659:20:0;;-1:-1:-1;;;;;16646:33:0;;;16659:20;;16646:33;;16537:142;:179;;;;-1:-1:-1;16696:20:0;;-1:-1:-1;;;;;16683:33:0;;;16696:20;;16683:33;;16537:179;:218;;;;-1:-1:-1;16734:21:0;;-1:-1:-1;;;;;16721:34:0;;;16734:21;;16721:34;;16537:218;:250;;;;-1:-1:-1;16772:15:0;;-1:-1:-1;;;;;16759:28:0;;;16772:15;;16759:28;;16537:250;16533:442;;;16803:18;16824:20;16834:9;16824;:20::i;:::-;16803:41;;16892:15;;16881:6;16868:10;:19;16867:40;;16859:114;;;;-1:-1:-1;;;16859:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16533:442;;17002:4;;-1:-1:-1;;;;;16992:14:0;;;17002:4;;16992:14;:45;;;;-1:-1:-1;17019:18:0;;;;16992:45;:90;;;;-1:-1:-1;;;;;;17055:27:0;;;;;;:16;:27;;;;;;;;17054:28;16992:90;16988:295;;;-1:-1:-1;;;;;17107:24:0;;;;;;:13;:24;;;;;;17134:15;-1:-1:-1;17099:91:0;;;;-1:-1:-1;;;17099:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17250:21;;-1:-1:-1;;;;;17205:24:0;;;;;;:13;:24;;;;;17250:21;;;;;;17232:15;:39;17205:66;;16988:295;17337:28;17350:6;17358;17337:12;:28::i;:::-;17382:16;:14;:16::i;:::-;17379:35;;;17401:10;:8;:10::i;:::-;17474:53;;;;;;;;;;;-1:-1:-1;;;17474:53:0;;;;;;;;-1:-1:-1;;;;;17474:17:0;;-1:-1:-1;17474:17:0;;;:9;:17;;;;;;;;:53;;17496:6;;17474:21;:53::i;:::-;-1:-1:-1;;;;;17454:17:0;;;;;;;:9;:17;;;;;:73;;;;17596:4;;;;;17586:14;:38;;;;-1:-1:-1;;;;;;17605:19:0;;;;;;:11;:19;;;;;;;;17604:20;17586:38;:65;;;;-1:-1:-1;;;;;;17629:22:0;;;;;;:11;:22;;;;;;;;17628:23;17586:65;17583:365;;;17684:32;17692:6;17700;17709:5;17684:7;:32::i;:::-;17667:49;;17583:365;;;17761:4;;-1:-1:-1;;;;;17748:17:0;;;17761:4;;17748:17;:41;;;;-1:-1:-1;;;;;;17770:19:0;;;;;;:11;:19;;;;;;;;17769:20;17748:41;:68;;;;-1:-1:-1;;;;;;17794:22:0;;;;;;:11;:22;;;;;;;;17793:23;17748:68;17745:203;;;17850:31;17858:6;17866;17875:4;17850:7;:31::i;17745:203::-;-1:-1:-1;17930:6:0;17745:203;-1:-1:-1;;;;;18131:20:0;;;;;;:9;:20;;;;;;:40;;18156:14;18131:24;:40::i;:::-;-1:-1:-1;;;;;18108:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;18218:24;;;;;:16;:24;;;;;;;18214:119;;18263:11;;;-1:-1:-1;;;;;18292:17:0;;;18263:11;18292:17;;;:9;:17;;;;;;;;18263:47;;-1:-1:-1;;;18263:47:0;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;18259:63;;-1:-1:-1;;;;;18350:27:0;;;;;;:16;:27;;;;;;;;18346:128;;18398:11;;;-1:-1:-1;;;;;18430:20:0;;;18398:11;18430:20;;;:9;:20;;;;;;;;18398:53;;-1:-1:-1;;;18398:53:0;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;18394:69;;18491:11;;18511:14;;18491:35;;;-1:-1:-1;;;;;;18491:35:0;;;;;;;;;;-1:-1:-1;;;;;18491:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;18487:51;18573:9;-1:-1:-1;;;;;18556:43:0;18565:6;-1:-1:-1;;;;;18556:43:0;-1:-1:-1;;;;;;;;;;;18584:14:0;18556:43;;;;;;;;;;;;;;;;;;-1:-1:-1;18617:4:0;;16052:2577;-1:-1:-1;;;;16052:2577:0:o;296:136::-;354:7;381:43;385:1;388;381:43;;;;;;;;;;;;;;;;;:3;:43::i;108:182::-;166:7;198:5;;;222:6;;;;214:46;;;;;-1:-1:-1;;;214:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1033:189;1119:7;1154:12;1147:5;1139:28;;;;-1:-1:-1;;;1139:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:9;1194:1;1190;:5;;;;;;;1033:189;-1:-1:-1;;;;;1033:189:0:o;18977:166::-;19074:12;;19064:6;:22;;:49;;;-1:-1:-1;;;;;;19090:23:0;;;;;;:15;:23;;;;;;;;19064:49;19056:79;;;;;-1:-1:-1;;;19056:79:0;;;;;;;;;;;;-1:-1:-1;;;19056:79:0;;;;;;;;;;;;;;20054:197;20141:4;;20103;;-1:-1:-1;;;;;20141:4:0;20127:10;:18;;;;:38;;-1:-1:-1;20159:6:0;;;;20158:7;20127:38;:62;;;;-1:-1:-1;20178:11:0;;;;20127:62;:116;;;;-1:-1:-1;;20230:13:0;;20220:4;20202:24;;;;:9;:24;;;;;;:41;;;20054:197::o;21380:1935::-;12873:6;:13;;-1:-1:-1;;12873:13:0;12882:4;12873:13;;;21475:15:::1;::::0;21492:26:::1;::::0;12873:6;;21459:60:::1;::::0;:15:::1;:60::i;:::-;:79;;21526:12;;21459:79;;;21522:1;21459:79;21429:109;;21549:23;21575:59;21632:1;21575:52;21618:8;;21575:38;21593:19;21575:13;;:17;;:38;;;;:::i;:59::-;21549:85;;21645:20;21668:34;21686:15;21668:13;;:17;;:34;;;;:::i;:::-;21740:16;::::0;;21754:1:::1;21740:16:::0;;;21716:21:::1;21740:16:::0;;::::1;::::0;;21645:57;;-1:-1:-1;21740:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21740:16:0::1;21716:40;;21785:4;21767;21772:1;21767:7;;;;;;;;-1:-1:-1::0;;;;;21767:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21811:4:::1;::::0;21801:7;;21811:4;::::1;::::0;21801;;21811;;21801:7;::::1;;;;;-1:-1:-1::0;;;;;21801:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;21888:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21888:188:0;;::::1;::::0;::::1;::::0;;;21829:21:::1;21888:188:::0;;;;;;22030:4:::1;21888:188:::0;;;;;;22050:15:::1;21888:188:::0;;;;;;;;;;;;;;;;;;;;;21853:21:::1;::::0;21888:6;;;::::1;::::0;:57:::1;::::0;21960:12;;21829:21;;22003:4;;21888:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;21829:21;21888:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22090:17;22110:40;22136:13;22110:21;:25;;:40;;;;:::i;:::-;22090:60:::0;-1:-1:-1;22164:19:0::1;22186:40;22199:26;:19:::0;22223:1:::1;22199:23;:26::i;:::-;22186:8;::::0;;:12:::1;:40::i;:::-;22164:62:::0;-1:-1:-1;22240:26:0::1;22269:58;22325:1;22269:51;22164:62:::0;22269:51;:9;22283:19;22269:13:::1;:34::i;:58::-;22240:87;;22338:27;22368:45;22401:11;22368:28;22382:13;;22368:9;:13;;:28;;;;:::i;:45::-;22338:75;;22424:26;22453:44;22485:11;22453:27;22467:12;;22453:9;:13;;:27;;;;:::i;:44::-;22424:73;;22508:20;22531:44;22563:11;22531:27;22545:12;;22531:9;:13;;:27;;;;:::i;:44::-;22508:67;;22593:11;;;;;;;;;-1:-1:-1::0;;;;;22593:11:0::1;-1:-1:-1::0;;;;;22593:19:0::1;;22620;22593:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22589:65:::0;22693:20:::1;::::0;22685:77:::1;::::0;22665:15:::1;::::0;-1:-1:-1;;;;;22693:20:0::1;::::0;22752:5:::1;::::0;22727:18;;22665:15;22685:77;22665:15;22685:77;22727:18;22693:20;22752:5;22685:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22797:20:0::1;::::0;22789:71:::1;::::0;22664:98;;-1:-1:-1;;;;;;22797:20:0::1;::::0;22850:5:::1;::::0;22831:12;;22797:20:::1;22789:71:::0;22797:20;22789:71;22831:12;22797:20;22850:5;22789:71:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22927:5:0::1;::::0;-1:-1:-1;;22949:19:0;;;-1:-1:-1;22946:362:0::1;;22984:6;::::0;23158:21:::1;::::0;22984:244:::1;::::0;;-1:-1:-1;;;22984:244:0;;23060:4:::1;22984:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;23158:21:0;;::::1;22984:244:::0;;;;23198:15:::1;22984:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;23014:18;;22984:244;;;;;::::1;::::0;;;;;;;;;23014:18;22984:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22984:244:0;23248:48;;;;;22984:244:::1;23248:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;22946:362;-1:-1:-1::0;;12891:6:0;:14;;-1:-1:-1;;12891:14:0;;;-1:-1:-1;;;;;;;;;;21380:1935:0:o;19275:770::-;19355:7;19378:18;19399:6;:29;;19425:3;19399:29;;;19408:14;;19399:29;19378:50;;19439:17;19459:62;19500:14;;19517:3;19500:20;19459:36;19484:10;19459:20;19470:8;;19459:6;:10;;:20;;;;:::i;:62::-;19439:82;;19539:18;19560:36;19587:8;;19560:22;19574:7;;19560:9;:13;;:22;;;;:::i;:36::-;19539:57;-1:-1:-1;19607:22:0;19632:25;:9;19539:57;19632:13;:25::i;:::-;19716:4;19698:24;;;;:9;:24;;;;;;19607:50;;-1:-1:-1;19698:44:0;;19607:50;19698:28;:44::i;:::-;19689:4;19671:24;;;;:9;:24;;;;;;:71;;;;19792:15;;-1:-1:-1;;;;;19792:15:0;19782:26;;;;:42;;19813:10;19782:30;:42::i;:::-;19763:15;;-1:-1:-1;;;;;19763:15:0;;;19753:26;;;;:9;:26;;;;;;;;;:71;;;;19840:47;;;;;;;19865:4;;19840:47;;;;-1:-1:-1;;;;;;;;;;;19840:47:0;;;;;;;19904:14;;19901:95;;19956:15;;19939:45;;;;;;;;-1:-1:-1;;;;;19956:15:0;;;;19939:45;;;-1:-1:-1;;;;;;;;;;;19939:45:0;;;;;;;;;19901:95;20016:21;:6;20027:9;20016:10;:21::i;:::-;20009:28;19275:770;-1:-1:-1;;;;;;;;19275:770:0:o
Swarm Source
ipfs://9fef32ce67758f08685d25c8019a54fc7a9c4977c3c652b51688db43aced2ddd
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.