ERC-20
Wallet App
Overview
Max Total Supply
10,000,000,000 BYLO
Holders
235 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,770,460.434236237 BYLOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ByloOfficial
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-30 */ /** *Submitted for verification at Etherscan.io on 2021-10-15 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ 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); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; 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 setShare(address shareholder, uint256 amount) external; function deposit() external payable; function claimDividend(address shareholder) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address private _token; address private _owner; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner) { _token = msg.sender; _owner = owner; } 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 amount = msg.value; totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); payable(shareholder).transfer(amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } } contract ByloOfficial is IBEP20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string private constant _name = "Bylo Official"; string private constant _symbol = "BYLO"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 10000000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; uint256 private _maxTxAmountSell = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isTxLimitExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private initialBlockLimit = 2; uint256 private reflectionFee = 3; uint256 private teamFee = 4; uint256 private totalFee = 8; uint256 private feeDenominator = 100; address private teamReceiver; IDEXRouter public router; address public pair; uint256 public launchedAt; DividendDistributor private distributor; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; // 5M bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner, address _teamWallet ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner); isFeeExempt[_owner] = true; isFeeExempt[_teamWallet] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[_teamWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; teamReceiver = _teamWallet; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } checkTxLimit(sender, recipient, amount); if(shouldSwapBack()){ swapBack(); } if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} 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, address recipient, uint256 amount) internal view { sender == pair ? require(amount <= _maxTxAmountBuy || isTxLimitExempt[recipient], "Buy TX Limit Exceeded") : require(amount <= _maxTxAmountSell || isTxLimitExempt[sender], "Sell TX Limit Exceeded"); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !(isFeeExempt[sender] || isFeeExempt[recipient]); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount; bool bot; // Add all the fees to the contract. In case of Sell, it will be multiplied fees. if (sender != pair) { bot = isBot[sender]; } else { bot = isBot[recipient]; } if (bot || launchedAt + initialBlockLimit >= block.number) { feeAmount = amount.mul(feeDenominator.sub(1)).div(feeDenominator); _balances[DEAD] = _balances[DEAD].add(feeAmount); emit Transfer(sender, DEAD, feeAmount); } else { feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToSwap = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 amountReflection = amountETH.mul(reflectionFee).div(totalFee); uint256 amountTeam = amountETH.sub(amountReflection); try distributor.deposit{value: amountReflection}() {} catch {} payable(teamReceiver).transfer(amountTeam); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { //To know when it was launched launchedAt = block.number; } function setInitialBlockLimit(uint256 blocks) external onlyOwner { require(blocks > 0, "Blocks should be greater than 0"); initialBlockLimit = blocks; } function setBuyTxLimit(uint256 amount) external onlyOwner { _maxTxAmountBuy = amount; } function setSellTxLimit(uint256 amount) external onlyOwner { _maxTxAmountSell = amount; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function isInBot(address _address) external view onlyOwner returns (bool) { return isBot[_address]; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees( uint256 _reflectionFee, uint256 _teamFee, uint256 _feeDenominator) external onlyOwner { reflectionFee = _reflectionFee; teamFee = _teamFee; totalFee = _reflectionFee.add(_teamFee); feeDenominator = _feeDenominator; //Total fees has to be less than 50% require(totalFee < feeDenominator/2); } function setFeeReceiver(address _teamReceiver) external onlyOwner { teamReceiver = _teamReceiver; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(teamReceiver).transfer(contractETHBalance); } function setSwapBackSettings(bool enabled, uint256 amount) external onlyOwner { swapEnabled = enabled; swapThreshold = amount; } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { return distributor.getUnpaidEarnings(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"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":"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":[{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","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":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setInitialBlockLimit","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":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSellTxLimit","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":[],"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":[{"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000b5e565b6402540be400620000ab919062000c9b565b6004556004546005556004546006556002600d556003600e556004600f55600860105560646011556001601660146101000a81548160ff0219169083151502179055506103e860045462000100919062000acb565b6017553480156200011057600080fd5b5060405162005ed538038062005ed58339818101604052810190620001369190620009fb565b81806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023657600080fd5b505afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002719190620009c9565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031a57600080fd5b505afa1580156200032f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003559190620009c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003b392919062000a81565b602060405180830381600087803b158015620003ce57600080fd5b505af1158015620003e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004099190620009c9565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816040516200051b90620009a4565b62000527919062000a64565b604051809103906000f08015801562000544573d6000803e3d6000fd5b50601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000994919062000aae565b60405180910390a3505062000dd1565b61163580620048a083390190565b600081519050620009c38162000db7565b92915050565b600060208284031215620009e257620009e162000da5565b5b6000620009f284828501620009b2565b91505092915050565b6000806040838503121562000a155762000a1462000da5565b5b600062000a2585828601620009b2565b925050602062000a3885828601620009b2565b9150509250929050565b62000a4d8162000cfc565b82525050565b62000a5e8162000d30565b82525050565b600060208201905062000a7b600083018462000a42565b92915050565b600060408201905062000a98600083018562000a42565b62000aa7602083018462000a42565b9392505050565b600060208201905062000ac5600083018462000a53565b92915050565b600062000ad88262000d30565b915062000ae58362000d30565b92508262000af85762000af762000d76565b5b828204905092915050565b6000808291508390505b600185111562000b555780860481111562000b2d5762000b2c62000d47565b5b600185161562000b3d5780820291505b808102905062000b4d8562000daa565b945062000b0d565b94509492505050565b600062000b6b8262000d30565b915062000b788362000d3a565b925062000ba77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000baf565b905092915050565b60008262000bc1576001905062000c94565b8162000bd1576000905062000c94565b816001811462000bea576002811462000bf55762000c2b565b600191505062000c94565b60ff84111562000c0a5762000c0962000d47565b5b8360020a91508482111562000c245762000c2362000d47565b5b5062000c94565b5060208310610133831016604e8410600b841016171562000c655782820a90508381111562000c5f5762000c5e62000d47565b5b62000c94565b62000c74848484600162000b03565b9250905081840481111562000c8e5762000c8d62000d47565b5b81810290505b9392505050565b600062000ca88262000d30565b915062000cb58362000d30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cf15762000cf062000d47565b5b828202905092915050565b600062000d098262000d10565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000dc28162000cfc565b811462000dce57600080fd5b50565b613abf8062000de16000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b146107ac578063f4293890146107d5578063f708a64f146107ec578063f84ba65d14610815578063f887ea401461083e5761020f565b8063dd62ed3e14610706578063df20fd4914610743578063efdcd9741461076c578063f0fc6bca146107955761020f565b8063a8aa1b31116100e7578063a8aa1b3114610621578063a9059cbb1461064c578063bf56b37114610689578063c3647c8c146106b4578063cec10c11146106dd5761020f565b806370a0823114610565578063736ad050146105a2578063893d20e8146105cb57806395d89b41146105f65761020f565b806328fd31981161019b578063342aa8b51161016a578063342aa8b51461046e578063416501c814610497578063571ac8b0146104d4578063658d4b7f146105115780636ddd17131461053a5761020f565b806328fd31981461039e5780632b112e49146103db5780632f54bf6e14610406578063313ce567146104435761020f565b806315f7e05e116101d757806315f7e05e146102d057806318160ddd146102f957806323b635851461032457806323b872dd146103615761020f565b80630445b6671461021457806306fdde031461023f57806308cad4e51461026a578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610869565b6040516102369190613551565b60405180910390f35b34801561024b57600080fd5b5061025461086f565b604051610261919061346f565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c919061310b565b6108ac565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061308b565b6108fe565b6040516102c79190613439565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612f5e565b6109f0565b005b34801561030557600080fd5b5061030e610ac8565b60405161031b9190613551565b60405180910390f35b34801561033057600080fd5b5061034b6004803603810190610346919061310b565b610ad2565b6040516103589190613439565b60405180910390f35b34801561036d57600080fd5b5061038860048036038101906103839190612ff8565b610b50565b6040516103959190613439565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190612f5e565b610d50565b6040516103d29190613551565b60405180910390f35b3480156103e757600080fd5b506103f0610e04565b6040516103fd9190613551565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190612f5e565b610e86565b60405161043a9190613439565b60405180910390f35b34801561044f57600080fd5b50610458610edf565b60405161046591906135c6565b60405180910390f35b34801561047a57600080fd5b506104956004803603810190610490919061304b565b610ee8565b005b3480156104a357600080fd5b506104be60048036038101906104b99190612f5e565b610f95565b6040516104cb9190613439565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612f5e565b611033565b6040516105089190613439565b60405180910390f35b34801561051d57600080fd5b506105386004803603810190610533919061304b565b611066565b005b34801561054657600080fd5b5061054f611109565b60405161055c9190613439565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612f5e565b61111c565b6040516105999190613551565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c4919061310b565b611165565b005b3480156105d757600080fd5b506105e06111b7565b6040516105ed91906133b1565b60405180910390f35b34801561060257600080fd5b5061060b6111e0565b604051610618919061346f565b60405180910390f35b34801561062d57600080fd5b5061063661121d565b60405161064391906133b1565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e919061308b565b611243565b6040516106809190613439565b60405180910390f35b34801561069557600080fd5b5061069e611258565b6040516106ab9190613551565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061310b565b61125e565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190613165565b6112f3565b005b34801561071257600080fd5b5061072d60048036038101906107289190612fb8565b61138a565b60405161073a9190613551565b60405180910390f35b34801561074f57600080fd5b5061076a600480360381019061076591906130cb565b611411565b005b34801561077857600080fd5b50610793600480360381019061078e9190612f5e565b61147e565b005b3480156107a157600080fd5b506107aa61150a565b005b3480156107b857600080fd5b506107d360048036038101906107ce9190612f8b565b611599565b005b3480156107e157600080fd5b506107ea61165b565b005b3480156107f857600080fd5b50610813600480360381019061080e919061304b565b611714565b005b34801561082157600080fd5b5061083c6004803603810190610837919061304b565b61176a565b005b34801561084a57600080fd5b5061085361180d565b6040516108609190613454565b60405180910390f35b60175481565b60606040518060400160405280600d81526020017f42796c6f204f6666696369616c00000000000000000000000000000000000000815250905090565b6108b533610e86565b6108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90613491565b60405180910390fd5b8060068190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109de9190613551565b60405180910390a36001905092915050565b6109f933610e86565b610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613491565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610a9391906133b1565b600060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610add33610e86565b610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613491565b60405180910390fd5b610b4930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611833565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d3c57610cbb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d47848484611a6a565b90509392505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401610dad91906133b1565b60206040518083038186803b158015610dc557600080fd5b505afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190613138565b9050919050565b6000610e81610e34600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661111c565b610e73610e62600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661111c565b60045461206590919063ffffffff16565b61206590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610ef133610e86565b610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790613491565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f9182826120af565b5050565b6000610fa033610e86565b610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690613491565b60405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061105f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108fe565b9050919050565b61106f33610e86565b6110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590613491565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61116e33610e86565b6111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613491565b60405180910390fd5b8060058190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42594c4f00000000000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611250338484611a6a565b905092915050565b60155481565b61126733610e86565b6112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613491565b60405180910390fd5b600081116112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e0906134f1565b60405180910390fd5b80600d8190555050565b6112fc33610e86565b61133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290613491565b60405180910390fd5b82600e8190555081600f8190555061135c828461230790919063ffffffff16565b601081905550806011819055506002601154611378919061368c565b6010541061138557600080fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61141a33610e86565b611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613491565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055505050565b61148733610e86565b6114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613491565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161156591906133b1565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050565b6115a233610e86565b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613491565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161165091906133cc565b60405180910390a150565b61166433610e86565b6116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613491565b60405180910390fd5b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611710573d6000803e3d6000fd5b5050565b61171d33610e86565b61175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613491565b60405180910390fd5b61176682826120af565b5050565b61177333610e86565b6117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990613491565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118be826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061195382600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f39190613551565b60405180910390a3600190509392505050565b6000838311158290611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a45919061346f565b60405180910390fd5b5060008385611a5d9190613717565b9050809150509392505050565b6000601860009054906101000a900460ff1615611a9357611a8c848484611833565b905061205e565b611a9e848484612365565b611aa66124f7565b15611ab457611ab36125ce565b5b611abc612906565b158015611b165750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b70576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b6757600080fd5b611b6f612913565b5b611bf9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c48858561291c565b611c525782611c5e565b611c5d8585856129c8565b5b9050611cb281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d9d5750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e7457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611e3e929190613410565b600060405180830381600087803b158015611e5857600080fd5b505af1925050508015611e69575060015b611e7257611e73565b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f1c5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ff357601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611fbd929190613410565b600060405180830381600087803b158015611fd757600080fd5b505af1925050508015611fe8575060015b611ff157611ff2565b5b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120509190613551565b60405180910390a360019150505b9392505050565b60006120a783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a06565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121395750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61214257600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561223457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016121fd9291906133e7565b600060405180830381600087803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b50505050612303565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016122d0929190613410565b600060405180830381600087803b1580156122ea57600080fd5b505af11580156122fe573d6000803e3d6000fd5b505050505b5050565b60008082846123169190613636565b90508381101561235b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612352906134b1565b60405180910390fd5b8091505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461245857600654811115806124145750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613531565b60405180910390fd5b6124f2565b600554811115806124b25750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e8906134d1565b60405180910390fd5b5b505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125645750601860009054906101000a900460ff16155b801561257c5750601660149054906101000a900460ff165b80156125c95750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff021916908315150217905550600060175490506000600267ffffffffffffffff81111561260d5761260c6138cc565b5b60405190808252806020026020018201604052801561263b5781602001602082028036833780820191505090505b50905030816000815181106126535761265261389d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126c4576126c361389d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161276795949392919061356c565b600060405180830381600087803b15801561278157600080fd5b505af1158015612795573d6000803e3d6000fd5b5050505060006127ae824761206590919063ffffffff16565b905060006127db6010546127cd600e5485612dcd90919063ffffffff16565b612e4890919063ffffffff16565b905060006127f2828461206590919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561285e57600080fd5b505af193505050508015612870575060015b6128795761287a565b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128e2573d6000803e3d6000fd5b505050505050506000601860006101000a81548160ff021916908315150217905550565b6000806015541415905090565b43601581905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129bf5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000806000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612a7657600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050612ac6565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690505b8080612ae1575043600d54601554612ade9190613636565b10155b15612c8957612b22601154612b14612b05600160115461206590919063ffffffff16565b87612dcd90919063ffffffff16565b612e4890919063ffffffff16565b9150612b988260076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b60076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c7c9190613551565b60405180910390a3612daf565b612cb2601154612ca460105487612dcd90919063ffffffff16565b612e4890919063ffffffff16565b9150612d0682600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da69190613551565b60405180910390a35b612dc2828561206590919063ffffffff16565b925050509392505050565b600080831415612de05760009050612e42565b60008284612dee91906136bd565b9050828482612dfd919061368c565b14612e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3490613511565b60405180910390fd5b809150505b92915050565b6000612e8a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e92565b905092915050565b60008083118290612ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed0919061346f565b60405180910390fd5b5060008385612ee8919061368c565b9050809150509392505050565b600081359050612f0481613a2d565b92915050565b600081359050612f1981613a44565b92915050565b600081359050612f2e81613a5b565b92915050565b600081359050612f4381613a72565b92915050565b600081519050612f5881613a72565b92915050565b600060208284031215612f7457612f736138fb565b5b6000612f8284828501612ef5565b91505092915050565b600060208284031215612fa157612fa06138fb565b5b6000612faf84828501612f0a565b91505092915050565b60008060408385031215612fcf57612fce6138fb565b5b6000612fdd85828601612ef5565b9250506020612fee85828601612ef5565b9150509250929050565b600080600060608486031215613011576130106138fb565b5b600061301f86828701612ef5565b935050602061303086828701612ef5565b925050604061304186828701612f34565b9150509250925092565b60008060408385031215613062576130616138fb565b5b600061307085828601612ef5565b925050602061308185828601612f1f565b9150509250929050565b600080604083850312156130a2576130a16138fb565b5b60006130b085828601612ef5565b92505060206130c185828601612f34565b9150509250929050565b600080604083850312156130e2576130e16138fb565b5b60006130f085828601612f1f565b925050602061310185828601612f34565b9150509250929050565b600060208284031215613121576131206138fb565b5b600061312f84828501612f34565b91505092915050565b60006020828403121561314e5761314d6138fb565b5b600061315c84828501612f49565b91505092915050565b60008060006060848603121561317e5761317d6138fb565b5b600061318c86828701612f34565b935050602061319d86828701612f34565b92505060406131ae86828701612f34565b9150509250925092565b60006131c483836131df565b60208301905092915050565b6131d9816137b2565b82525050565b6131e88161374b565b82525050565b6131f78161374b565b82525050565b6000613208826135f1565b6132128185613614565b935061321d836135e1565b8060005b8381101561324e57815161323588826131b8565b975061324083613607565b925050600181019050613221565b5085935050505092915050565b6132648161376f565b82525050565b613273816137c4565b82525050565b613282816137d6565b82525050565b6000613293826135fc565b61329d8185613625565b93506132ad81856020860161380c565b6132b681613900565b840191505092915050565b60006132ce600683613625565b91506132d982613911565b602082019050919050565b60006132f1601b83613625565b91506132fc8261393a565b602082019050919050565b6000613314601583613625565b915061331f82613963565b602082019050919050565b6000613337601f83613625565b91506133428261398c565b602082019050919050565b600061335a602183613625565b9150613365826139b5565b604082019050919050565b600061337d601683613625565b915061338882613a04565b602082019050919050565b61339c8161379b565b82525050565b6133ab816137a5565b82525050565b60006020820190506133c660008301846131ee565b92915050565b60006020820190506133e160008301846131d0565b92915050565b60006040820190506133fc60008301856131ee565b6134096020830184613279565b9392505050565b600060408201905061342560008301856131ee565b6134326020830184613393565b9392505050565b600060208201905061344e600083018461325b565b92915050565b6000602082019050613469600083018461326a565b92915050565b600060208201905081810360008301526134898184613288565b905092915050565b600060208201905081810360008301526134aa816132c1565b9050919050565b600060208201905081810360008301526134ca816132e4565b9050919050565b600060208201905081810360008301526134ea81613307565b9050919050565b6000602082019050818103600083015261350a8161332a565b9050919050565b6000602082019050818103600083015261352a8161334d565b9050919050565b6000602082019050818103600083015261354a81613370565b9050919050565b60006020820190506135666000830184613393565b92915050565b600060a0820190506135816000830188613393565b61358e6020830187613279565b81810360408301526135a081866131fd565b90506135af60608301856131ee565b6135bc6080830184613393565b9695505050505050565b60006020820190506135db60008301846133a2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136418261379b565b915061364c8361379b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136815761368061383f565b5b828201905092915050565b60006136978261379b565b91506136a28361379b565b9250826136b2576136b161386e565b5b828204905092915050565b60006136c88261379b565b91506136d38361379b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561370c5761370b61383f565b5b828202905092915050565b60006137228261379b565b915061372d8361379b565b9250828210156137405761373f61383f565b5b828203905092915050565b60006137568261377b565b9050919050565b60006137688261377b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137bd826137e8565b9050919050565b60006137cf826137e8565b9050919050565b60006137e18261379b565b9050919050565b60006137f3826137fa565b9050919050565b60006138058261377b565b9050919050565b60005b8381101561382a57808201518184015260208101905061380f565b83811115613839576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f427579205458204c696d69742045786365656465640000000000000000000000600082015250565b7f426c6f636b732073686f756c642062652067726561746572207468616e203000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c205458204c696d697420457863656564656400000000000000000000600082015250565b613a368161374b565b8114613a4157600080fd5b50565b613a4d8161375d565b8114613a5857600080fd5b50565b613a648161376f565b8114613a6f57600080fd5b50565b613a7b8161379b565b8114613a8657600080fd5b5056fea2646970667358221220f2d2c098c86234382124e4c1d0fd2f52427a6a5cf4c2f412f7b485b4584cb7ca64736f6c6343000807003360806040526ec097ce7bc90715b34b9f10000000006009553480156200002457600080fd5b50604051620016353803806200163583398181016040528101906200004a9190620000e9565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200016e565b600081519050620000e38162000154565b92915050565b6000602082840312156200010257620001016200014f565b5b60006200011284828501620000d2565b91505092915050565b600062000128826200012f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200015f816200011b565b81146200016b57600080fd5b50565b6114b7806200017e6000396000f3fe6080604052600436106100915760003560e01c8063997664d711610059578063997664d714610179578063ce7c2ac2146101a4578063d0e30db0146101e3578063e2d2e219146101ed578063efca2eed1461021857610091565b80631014edf51461009657806314b6ca96146100bf57806315f7e05e146100e857806328fd3198146101115780633a98ef391461014e575b600080fd5b3480156100a257600080fd5b506100bd60048036038101906100b89190610fe7565b610243565b005b3480156100cb57600080fd5b506100e660048036038101906100e19190610fa7565b6102fd565b005b3480156100f457600080fd5b5061010f600480360381019061010a9190610f7a565b6105bc565b005b34801561011d57600080fd5b5061013860048036038101906101339190610f7a565b610620565b6040516101459190611117565b60405180910390f35b34801561015a57600080fd5b5061016361073a565b6040516101709190611117565b60405180910390f35b34801561018557600080fd5b5061018e610740565b60405161019b9190611117565b60405180910390f35b3480156101b057600080fd5b506101cb60048036038101906101c69190610f7a565b610746565b6040516101da93929190611132565b60405180910390f35b6101eb610770565b005b3480156101f957600080fd5b5061020261082e565b60405161020f9190611117565b60405180910390f35b34801561022457600080fd5b5061022d610834565b60405161023a9190611117565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461029d57600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc600085116102ca57826102cc565b845b9081150290604051600060405180830381858888f193505050501580156102f7573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461035557600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103aa576103a98261083a565b5b6000811180156103fc57506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561040f5761040a82610a34565b610471565b60008114801561046157506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104705761046f82610ae3565b5b5b6104da816104cc600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600554610cea90919063ffffffff16565b610d3490919063ffffffff16565b60058190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610572600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610d92565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461061457600080fd5b61061d8161083a565b50565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106755760009050610735565b60006106c2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610d92565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161071d57600092505050610735565b6107308183610cea90919063ffffffff16565b925050505b919050565b60055481565b60065481565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b60003490506107e281600654610d3490919063ffffffff16565b60068190555061082561081460055461080684600954610dc490919063ffffffff16565b610e3f90919063ffffffff16565b600854610d3490919063ffffffff16565b60088190555050565b60085481565b60075481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561088a57610a31565b600061089582610620565b90506000811115610a2f576108b581600754610d3490919063ffffffff16565b60078190555061091081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610d3490919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506109a1600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610d92565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a2d573d6000803e3d6000fd5b505b505b50565b600280549050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026001600280549050610af79190611266565b81548110610b0857610b07611396565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610b8657610b85611396565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060026001600280549050610c269190611266565b81548110610c3757610c36611396565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002805480610cb257610cb1611367565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610d2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e89565b905092915050565b6000808284610d439190611185565b905083811015610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906110d7565b60405180910390fd5b8091505092915050565b6000610dbd600954610daf60085485610dc490919063ffffffff16565b610e3f90919063ffffffff16565b9050919050565b600080831415610dd75760009050610e39565b60008284610de5919061120c565b9050828482610df491906111db565b14610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b906110f7565b60405180910390fd5b809150505b92915050565b6000610e8183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eed565b905092915050565b6000838311158290610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec891906110b5565b60405180910390fd5b5060008385610ee09190611266565b9050809150509392505050565b60008083118290610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b91906110b5565b60405180910390fd5b5060008385610f4391906111db565b9050809150509392505050565b600081359050610f5f81611453565b92915050565b600081359050610f748161146a565b92915050565b600060208284031215610f9057610f8f6113c5565b5b6000610f9e84828501610f50565b91505092915050565b60008060408385031215610fbe57610fbd6113c5565b5b6000610fcc85828601610f50565b9250506020610fdd85828601610f65565b9150509250929050565b60008060408385031215610ffe57610ffd6113c5565b5b600061100c85828601610f65565b925050602061101d85828601610f50565b9150509250929050565b600061103282611169565b61103c8185611174565b935061104c8185602086016112d6565b611055816113ca565b840191505092915050565b600061106d601b83611174565b9150611078826113db565b602082019050919050565b6000611090602183611174565b915061109b82611404565b604082019050919050565b6110af816112cc565b82525050565b600060208201905081810360008301526110cf8184611027565b905092915050565b600060208201905081810360008301526110f081611060565b9050919050565b6000602082019050818103600083015261111081611083565b9050919050565b600060208201905061112c60008301846110a6565b92915050565b600060608201905061114760008301866110a6565b61115460208301856110a6565b61116160408301846110a6565b949350505050565b600081519050919050565b600082825260208201905092915050565b6000611190826112cc565b915061119b836112cc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111d0576111cf611309565b5b828201905092915050565b60006111e6826112cc565b91506111f1836112cc565b92508261120157611200611338565b5b828204905092915050565b6000611217826112cc565b9150611222836112cc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561125b5761125a611309565b5b828202905092915050565b6000611271826112cc565b915061127c836112cc565b92508282101561128f5761128e611309565b5b828203905092915050565b60006112a5826112ac565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156112f45780820151818401526020810190506112d9565b83811115611303576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b61145c8161129a565b811461146757600080fd5b50565b611473816112cc565b811461147e57600080fd5b5056fea26469706673582212203f9a53d1a710868cfd9a30eddbc89b6cf27499784d787c9ef9ed8e88a21cc48964736f6c634300080700330000000000000000000000008aecd18cd328ecd42932fe02e69b78ea797b3c04000000000000000000000000a68dabcef04d7b0d59b79ea239c285fb095faa8f
Deployed Bytecode
0x6080604052600436106102085760003560e01c806370a0823111610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b146107ac578063f4293890146107d5578063f708a64f146107ec578063f84ba65d14610815578063f887ea401461083e5761020f565b8063dd62ed3e14610706578063df20fd4914610743578063efdcd9741461076c578063f0fc6bca146107955761020f565b8063a8aa1b31116100e7578063a8aa1b3114610621578063a9059cbb1461064c578063bf56b37114610689578063c3647c8c146106b4578063cec10c11146106dd5761020f565b806370a0823114610565578063736ad050146105a2578063893d20e8146105cb57806395d89b41146105f65761020f565b806328fd31981161019b578063342aa8b51161016a578063342aa8b51461046e578063416501c814610497578063571ac8b0146104d4578063658d4b7f146105115780636ddd17131461053a5761020f565b806328fd31981461039e5780632b112e49146103db5780632f54bf6e14610406578063313ce567146104435761020f565b806315f7e05e116101d757806315f7e05e146102d057806318160ddd146102f957806323b635851461032457806323b872dd146103615761020f565b80630445b6671461021457806306fdde031461023f57806308cad4e51461026a578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610869565b6040516102369190613551565b60405180910390f35b34801561024b57600080fd5b5061025461086f565b604051610261919061346f565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c919061310b565b6108ac565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061308b565b6108fe565b6040516102c79190613439565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612f5e565b6109f0565b005b34801561030557600080fd5b5061030e610ac8565b60405161031b9190613551565b60405180910390f35b34801561033057600080fd5b5061034b6004803603810190610346919061310b565b610ad2565b6040516103589190613439565b60405180910390f35b34801561036d57600080fd5b5061038860048036038101906103839190612ff8565b610b50565b6040516103959190613439565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190612f5e565b610d50565b6040516103d29190613551565b60405180910390f35b3480156103e757600080fd5b506103f0610e04565b6040516103fd9190613551565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190612f5e565b610e86565b60405161043a9190613439565b60405180910390f35b34801561044f57600080fd5b50610458610edf565b60405161046591906135c6565b60405180910390f35b34801561047a57600080fd5b506104956004803603810190610490919061304b565b610ee8565b005b3480156104a357600080fd5b506104be60048036038101906104b99190612f5e565b610f95565b6040516104cb9190613439565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612f5e565b611033565b6040516105089190613439565b60405180910390f35b34801561051d57600080fd5b506105386004803603810190610533919061304b565b611066565b005b34801561054657600080fd5b5061054f611109565b60405161055c9190613439565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612f5e565b61111c565b6040516105999190613551565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c4919061310b565b611165565b005b3480156105d757600080fd5b506105e06111b7565b6040516105ed91906133b1565b60405180910390f35b34801561060257600080fd5b5061060b6111e0565b604051610618919061346f565b60405180910390f35b34801561062d57600080fd5b5061063661121d565b60405161064391906133b1565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e919061308b565b611243565b6040516106809190613439565b60405180910390f35b34801561069557600080fd5b5061069e611258565b6040516106ab9190613551565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061310b565b61125e565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190613165565b6112f3565b005b34801561071257600080fd5b5061072d60048036038101906107289190612fb8565b61138a565b60405161073a9190613551565b60405180910390f35b34801561074f57600080fd5b5061076a600480360381019061076591906130cb565b611411565b005b34801561077857600080fd5b50610793600480360381019061078e9190612f5e565b61147e565b005b3480156107a157600080fd5b506107aa61150a565b005b3480156107b857600080fd5b506107d360048036038101906107ce9190612f8b565b611599565b005b3480156107e157600080fd5b506107ea61165b565b005b3480156107f857600080fd5b50610813600480360381019061080e919061304b565b611714565b005b34801561082157600080fd5b5061083c6004803603810190610837919061304b565b61176a565b005b34801561084a57600080fd5b5061085361180d565b6040516108609190613454565b60405180910390f35b60175481565b60606040518060400160405280600d81526020017f42796c6f204f6666696369616c00000000000000000000000000000000000000815250905090565b6108b533610e86565b6108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90613491565b60405180910390fd5b8060068190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109de9190613551565b60405180910390a36001905092915050565b6109f933610e86565b610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613491565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610a9391906133b1565b600060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610add33610e86565b610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613491565b60405180910390fd5b610b4930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611833565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d3c57610cbb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d47848484611a6a565b90509392505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401610dad91906133b1565b60206040518083038186803b158015610dc557600080fd5b505afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190613138565b9050919050565b6000610e81610e34600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661111c565b610e73610e62600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661111c565b60045461206590919063ffffffff16565b61206590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610ef133610e86565b610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790613491565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f9182826120af565b5050565b6000610fa033610e86565b610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690613491565b60405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061105f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108fe565b9050919050565b61106f33610e86565b6110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590613491565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61116e33610e86565b6111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490613491565b60405180910390fd5b8060058190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42594c4f00000000000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611250338484611a6a565b905092915050565b60155481565b61126733610e86565b6112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613491565b60405180910390fd5b600081116112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e0906134f1565b60405180910390fd5b80600d8190555050565b6112fc33610e86565b61133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290613491565b60405180910390fd5b82600e8190555081600f8190555061135c828461230790919063ffffffff16565b601081905550806011819055506002601154611378919061368c565b6010541061138557600080fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61141a33610e86565b611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613491565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055505050565b61148733610e86565b6114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613491565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161156591906133b1565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050565b6115a233610e86565b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613491565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161165091906133cc565b60405180910390a150565b61166433610e86565b6116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613491565b60405180910390fd5b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611710573d6000803e3d6000fd5b5050565b61171d33610e86565b61175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613491565b60405180910390fd5b61176682826120af565b5050565b61177333610e86565b6117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990613491565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118be826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061195382600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f39190613551565b60405180910390a3600190509392505050565b6000838311158290611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a45919061346f565b60405180910390fd5b5060008385611a5d9190613717565b9050809150509392505050565b6000601860009054906101000a900460ff1615611a9357611a8c848484611833565b905061205e565b611a9e848484612365565b611aa66124f7565b15611ab457611ab36125ce565b5b611abc612906565b158015611b165750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b70576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b6757600080fd5b611b6f612913565b5b611bf9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c48858561291c565b611c525782611c5e565b611c5d8585856129c8565b5b9050611cb281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611d9d5750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e7457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611e3e929190613410565b600060405180830381600087803b158015611e5857600080fd5b505af1925050508015611e69575060015b611e7257611e73565b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f1c5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ff357601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611fbd929190613410565b600060405180830381600087803b158015611fd757600080fd5b505af1925050508015611fe8575060015b611ff157611ff2565b5b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120509190613551565b60405180910390a360019150505b9392505050565b60006120a783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a06565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121395750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61214257600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561223457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016121fd9291906133e7565b600060405180830381600087803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b50505050612303565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016122d0929190613410565b600060405180830381600087803b1580156122ea57600080fd5b505af11580156122fe573d6000803e3d6000fd5b505050505b5050565b60008082846123169190613636565b90508381101561235b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612352906134b1565b60405180910390fd5b8091505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461245857600654811115806124145750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613531565b60405180910390fd5b6124f2565b600554811115806124b25750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e8906134d1565b60405180910390fd5b5b505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125645750601860009054906101000a900460ff16155b801561257c5750601660149054906101000a900460ff165b80156125c95750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff021916908315150217905550600060175490506000600267ffffffffffffffff81111561260d5761260c6138cc565b5b60405190808252806020026020018201604052801561263b5781602001602082028036833780820191505090505b50905030816000815181106126535761265261389d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126c4576126c361389d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161276795949392919061356c565b600060405180830381600087803b15801561278157600080fd5b505af1158015612795573d6000803e3d6000fd5b5050505060006127ae824761206590919063ffffffff16565b905060006127db6010546127cd600e5485612dcd90919063ffffffff16565b612e4890919063ffffffff16565b905060006127f2828461206590919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561285e57600080fd5b505af193505050508015612870575060015b6128795761287a565b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128e2573d6000803e3d6000fd5b505050505050506000601860006101000a81548160ff021916908315150217905550565b6000806015541415905090565b43601581905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129bf5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000806000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612a7657600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050612ac6565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690505b8080612ae1575043600d54601554612ade9190613636565b10155b15612c8957612b22601154612b14612b05600160115461206590919063ffffffff16565b87612dcd90919063ffffffff16565b612e4890919063ffffffff16565b9150612b988260076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b60076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c7c9190613551565b60405180910390a3612daf565b612cb2601154612ca460105487612dcd90919063ffffffff16565b612e4890919063ffffffff16565b9150612d0682600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230790919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da69190613551565b60405180910390a35b612dc2828561206590919063ffffffff16565b925050509392505050565b600080831415612de05760009050612e42565b60008284612dee91906136bd565b9050828482612dfd919061368c565b14612e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3490613511565b60405180910390fd5b809150505b92915050565b6000612e8a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e92565b905092915050565b60008083118290612ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed0919061346f565b60405180910390fd5b5060008385612ee8919061368c565b9050809150509392505050565b600081359050612f0481613a2d565b92915050565b600081359050612f1981613a44565b92915050565b600081359050612f2e81613a5b565b92915050565b600081359050612f4381613a72565b92915050565b600081519050612f5881613a72565b92915050565b600060208284031215612f7457612f736138fb565b5b6000612f8284828501612ef5565b91505092915050565b600060208284031215612fa157612fa06138fb565b5b6000612faf84828501612f0a565b91505092915050565b60008060408385031215612fcf57612fce6138fb565b5b6000612fdd85828601612ef5565b9250506020612fee85828601612ef5565b9150509250929050565b600080600060608486031215613011576130106138fb565b5b600061301f86828701612ef5565b935050602061303086828701612ef5565b925050604061304186828701612f34565b9150509250925092565b60008060408385031215613062576130616138fb565b5b600061307085828601612ef5565b925050602061308185828601612f1f565b9150509250929050565b600080604083850312156130a2576130a16138fb565b5b60006130b085828601612ef5565b92505060206130c185828601612f34565b9150509250929050565b600080604083850312156130e2576130e16138fb565b5b60006130f085828601612f1f565b925050602061310185828601612f34565b9150509250929050565b600060208284031215613121576131206138fb565b5b600061312f84828501612f34565b91505092915050565b60006020828403121561314e5761314d6138fb565b5b600061315c84828501612f49565b91505092915050565b60008060006060848603121561317e5761317d6138fb565b5b600061318c86828701612f34565b935050602061319d86828701612f34565b92505060406131ae86828701612f34565b9150509250925092565b60006131c483836131df565b60208301905092915050565b6131d9816137b2565b82525050565b6131e88161374b565b82525050565b6131f78161374b565b82525050565b6000613208826135f1565b6132128185613614565b935061321d836135e1565b8060005b8381101561324e57815161323588826131b8565b975061324083613607565b925050600181019050613221565b5085935050505092915050565b6132648161376f565b82525050565b613273816137c4565b82525050565b613282816137d6565b82525050565b6000613293826135fc565b61329d8185613625565b93506132ad81856020860161380c565b6132b681613900565b840191505092915050565b60006132ce600683613625565b91506132d982613911565b602082019050919050565b60006132f1601b83613625565b91506132fc8261393a565b602082019050919050565b6000613314601583613625565b915061331f82613963565b602082019050919050565b6000613337601f83613625565b91506133428261398c565b602082019050919050565b600061335a602183613625565b9150613365826139b5565b604082019050919050565b600061337d601683613625565b915061338882613a04565b602082019050919050565b61339c8161379b565b82525050565b6133ab816137a5565b82525050565b60006020820190506133c660008301846131ee565b92915050565b60006020820190506133e160008301846131d0565b92915050565b60006040820190506133fc60008301856131ee565b6134096020830184613279565b9392505050565b600060408201905061342560008301856131ee565b6134326020830184613393565b9392505050565b600060208201905061344e600083018461325b565b92915050565b6000602082019050613469600083018461326a565b92915050565b600060208201905081810360008301526134898184613288565b905092915050565b600060208201905081810360008301526134aa816132c1565b9050919050565b600060208201905081810360008301526134ca816132e4565b9050919050565b600060208201905081810360008301526134ea81613307565b9050919050565b6000602082019050818103600083015261350a8161332a565b9050919050565b6000602082019050818103600083015261352a8161334d565b9050919050565b6000602082019050818103600083015261354a81613370565b9050919050565b60006020820190506135666000830184613393565b92915050565b600060a0820190506135816000830188613393565b61358e6020830187613279565b81810360408301526135a081866131fd565b90506135af60608301856131ee565b6135bc6080830184613393565b9695505050505050565b60006020820190506135db60008301846133a2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136418261379b565b915061364c8361379b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136815761368061383f565b5b828201905092915050565b60006136978261379b565b91506136a28361379b565b9250826136b2576136b161386e565b5b828204905092915050565b60006136c88261379b565b91506136d38361379b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561370c5761370b61383f565b5b828202905092915050565b60006137228261379b565b915061372d8361379b565b9250828210156137405761373f61383f565b5b828203905092915050565b60006137568261377b565b9050919050565b60006137688261377b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137bd826137e8565b9050919050565b60006137cf826137e8565b9050919050565b60006137e18261379b565b9050919050565b60006137f3826137fa565b9050919050565b60006138058261377b565b9050919050565b60005b8381101561382a57808201518184015260208101905061380f565b83811115613839576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f427579205458204c696d69742045786365656465640000000000000000000000600082015250565b7f426c6f636b732073686f756c642062652067726561746572207468616e203000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c205458204c696d697420457863656564656400000000000000000000600082015250565b613a368161374b565b8114613a4157600080fd5b50565b613a4d8161375d565b8114613a5857600080fd5b50565b613a648161376f565b8114613a6f57600080fd5b50565b613a7b8161379b565b8114613a8657600080fd5b5056fea2646970667358221220f2d2c098c86234382124e4c1d0fd2f52427a6a5cf4c2f412f7b485b4584cb7ca64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008aecd18cd328ecd42932fe02e69b78ea797b3c04000000000000000000000000a68dabcef04d7b0d59b79ea239c285fb095faa8f
-----Decoded View---------------
Arg [0] : _owner (address): 0x8AecD18CD328ecd42932fE02E69B78eA797b3C04
Arg [1] : _teamWallet (address): 0xA68daBcef04d7b0D59B79ea239c285FB095faA8f
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008aecd18cd328ecd42932fe02e69b78ea797b3c04
Arg [1] : 000000000000000000000000a68dabcef04d7b0d59b79ea239c285fb095faa8f
Deployed Bytecode Sourcemap
8876:11118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10217:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11643:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17318:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12065:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19422:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11373:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19698:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12583:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19544:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19849:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2902:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11467:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17433:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17603:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12289:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18215:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10180:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11813:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17205:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11729:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11553:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10070:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12419:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10098:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17022:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18477:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11924:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19157:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18853:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19320:90;;;;;;;;;;;;;:::i;:::-;;3130:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18978:171;;;;;;;;;;;;;:::i;:::-;;18075:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18342:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10039:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:50;;;;:::o;11643:80::-;11691:13;11715:5;;;;;;;;;;;;;;;;;11708:12;;11643:80;:::o;17318:103::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17407:6:::1;17388:16;:25;;;;17318:103:::0;:::o;12065:216::-;12140:4;12192:6;12157:11;:23;12169:10;12157:23;;;;;;;;;;;;;;;:32;12181:7;12157:32;;;;;;;;;;;;;;;:41;;;;12235:7;12214:37;;12223:10;12214:37;;;12244:6;12214:37;;;;;;:::i;:::-;;;;;;;;12269:4;12262:11;;12065:216;;;;:::o;19422:110::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19491:11:::1;;;;;;;;;;;:25;;;19517:6;19491:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19422:110:::0;:::o;11373:88::-;11428:7;11446:12;;11439:19;;11373:88;:::o;19698:139::-;19762:4;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19786:43:::1;19809:4;19816;;;;;;;;;;;19822:6;19786:14;:43::i;:::-;19779:50;;19698:139:::0;;;:::o;12583:370::-;12683:4;12738:17;12703:11;:19;12715:6;12703:19;;;;;;;;;;;;;;;:31;12723:10;12703:31;;;;;;;;;;;;;;;;:52;12700:186;;12805:69;12841:6;12805:69;;;;;;;;;;;;;;;;;:11;:19;12817:6;12805:19;;;;;;;;;;;;;;;:31;12825:10;12805:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12771:11;:19;12783:6;12771:19;;;;;;;;;;;;;;;:31;12791:10;12771:31;;;;;;;;;;;;;;;:103;;;;12700:186;12905:40;12919:6;12927:9;12938:6;12905:13;:40::i;:::-;12898:47;;12583:370;;;;;:::o;19544:146::-;19613:7;19640:11;;;;;;;;;;;:29;;;19670:11;19640:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19633:49;;19544:146;;;:::o;19849:142::-;19902:7;19929:54;19967:15;19977:4;;;;;;;;;;;19967:9;:15::i;:::-;19929:33;19946:15;19956:4;;;;;;;;;;;19946:9;:15::i;:::-;19929:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19922:61;;19849:142;:::o;2902:103::-;2957:4;2992:5;;;;;;;;;;;2981:16;;:7;:16;;;2974:23;;2902:103;;;:::o;11467:80::-;11519:5;9266:1;11528:16;;11467:80;:::o;17433:158::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17528:6:::1;17510:5;:15;17516:8;17510:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;17545:38;17566:8;17576:6;17545:20;:38::i;:::-;17433:158:::0;;:::o;17603:115::-;17671:4;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17695:5:::1;:15;17701:8;17695:15;;;;;;;;;;;;;;;;;;;;;;;;;17688:22;;17603:115:::0;;;:::o;12289:122::-;12344:4;12368:35;12376:7;12385:17;12368:7;:35::i;:::-;12361:42;;12289:122;;;:::o;18215:119::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18320:6:::1;18298:11;:19;18310:6;18298:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18215:119:::0;;:::o;10180:30::-;;;;;;;;;;;;;:::o;11813:105::-;11879:7;11897:9;:18;11907:7;11897:18;;;;;;;;;;;;;;;;11890:25;;11813:105;;;:::o;17205:101::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17292:6:::1;17274:15;:24;;;;17205:101:::0;:::o;11729:78::-;11781:7;11799:5;;;;;;;;;;;11792:12;;11729:78;:::o;11553:84::-;11603:13;11627:7;;;;;;;;;;;;;;;;;11620:14;;11553:84;:::o;10070:19::-;;;;;;;;;;;;;:::o;12419:156::-;12499:4;12523:44;12537:10;12549:9;12560:6;12523:13;:44::i;:::-;12516:51;;12419:156;;;;:::o;10098:25::-;;;;:::o;17022:175::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17115:1:::1;17106:6;:10;17098:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;17183:6;17163:17;:26;;;;17022:175:::0;:::o;18477:368::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18608:14:::1;18592:13;:30;;;;18643:8;18633:7;:18;;;;18673:28;18692:8;18673:14;:18;;:28;;;;:::i;:::-;18662:8;:39;;;;18729:15;18712:14;:32;;;;18835:1;18820:14;;:16;;;;:::i;:::-;18809:8;;:27;18801:36;;;::::0;::::1;;18477:368:::0;;;:::o;11924:133::-;12008:7;12026:11;:19;12038:6;12026:19;;;;;;;;;;;;;;;:28;12046:7;12026:28;;;;;;;;;;;;;;;;12019:35;;11924:133;;;;:::o;19157:151::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19260:7:::1;19246:11;;:21;;;;;;;;;;;;;;;;;;19294:6;19278:13;:22;;;;19157:151:::0;;:::o;18853:113::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18945:13:::1;18930:12;;:28;;;;;;;;;;;;;;;;;;18853:113:::0;:::o;19320:90::-;19365:11;;;;;;;;;;;:25;;;19391:10;19365:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19320:90::o;3130:136::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:3:::1;3206:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3233:25;3254:3;3233:25;;;;;;:::i;:::-;;;;;;;;3130:136:::0;:::o;18978:171::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19030:26:::1;19059:21;19030:50;;19099:12;;;;;;;;;;;19091:30;;:50;19122:18;19091:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19019:130;18978:171::o:0;18075:132::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18163:36:::1;18184:6;18192;18163:20;:36::i;:::-;18075:132:::0;;:::o;18342:127::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18455:6:::1;18429:15;:23;18445:6;18429:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18342:127:::0;;:::o;10039:24::-;;;;;;;;;;;;;:::o;13983:330::-;14076:4;14113:53;14135:6;14113:53;;;;;;;;;;;;;;;;;:9;:17;14123:6;14113:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14093:9;:17;14103:6;14093:17;;;;;;;;;;;;;;;:73;;;;14200:32;14225:6;14200:9;:20;14210:9;14200:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14177:9;:20;14187:9;14177:20;;;;;;;;;;;;;;;:55;;;;14265:9;14248:35;;14257:6;14248:35;;;14276:6;14248:35;;;;;;:::i;:::-;;;;;;;;14301:4;14294:11;;13983:330;;;;;:::o;564:192::-;650:7;683:1;678;:6;;686:12;670:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;710:9;726:1;722;:5;;;;:::i;:::-;710:17;;747:1;740:8;;;564:192;;;;;:::o;12961:1010::-;13053:4;13073:6;;;;;;;;;;;13070:63;;;13089:41;13104:6;13112:9;13123:6;13089:14;:41::i;:::-;13082:48;;;;13070:63;13153:39;13166:6;13174:9;13185:6;13153:12;:39::i;:::-;13208:16;:14;:16::i;:::-;13205:35;;;13227:10;:8;:10::i;:::-;13205:35;13256:10;:8;:10::i;:::-;13255:11;:32;;;;;13283:4;;;;;;;;;;;13270:17;;:9;:17;;;13255:32;13252:81;;;13318:1;13298:9;:17;13308:6;13298:17;;;;;;;;;;;;;;;;:21;13290:30;;;;;;13322:8;:6;:8::i;:::-;13252:81;13365:53;13387:6;13365:53;;;;;;;;;;;;;;;;;:9;:17;13375:6;13365:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13345:9;:17;13355:6;13345:17;;;;;;;;;;;;;;;:73;;;;13431:22;13456:32;13470:6;13478:9;13456:13;:32::i;:::-;:78;;13528:6;13456:78;;;13491:34;13499:6;13507:9;13518:6;13491:7;:34::i;:::-;13456:78;13431:103;;13578:40;13603:14;13578:9;:20;13588:9;13578:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13555:9;:20;13565:9;13555:20;;;;;;;;;;;;;;;:63;;;;13644:4;;;;;;;;;;;13634:14;;:6;:14;;;;:43;;;;;13653:16;:24;13670:6;13653:24;;;;;;;;;;;;;;;;;;;;;;;;;13652:25;13634:43;13631:114;;;13684:11;;;;;;;;;;;:20;;;13705:6;13713:9;:17;13723:6;13713:17;;;;;;;;;;;;;;;;13684:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13680:63;;;;;;13631:114;13771:4;;;;;;;;;;;13758:17;;:9;:17;;;;:49;;;;;13780:16;:27;13797:9;13780:27;;;;;;;;;;;;;;;;;;;;;;;;;13779:28;13758:49;13755:126;;;13814:11;;;;;;;;;;;:20;;;13835:9;13846;:20;13856:9;13846:20;;;;;;;;;;;;;;;;13814:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13810:69;;;;;;13755:126;13915:9;13898:43;;13907:6;13898:43;;;13926:14;13898:43;;;;;;:::i;:::-;;;;;;;;13959:4;13952:11;;;12961:1010;;;;;;:::o;422:136::-;480:7;507:43;511:1;514;507:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;500:50;;422:136;;;;:::o;17730:337::-;17835:4;17817:23;;:6;:23;;;;:41;;;;;17854:4;;;;;;;;;;;17844:14;;:6;:14;;;;17817:41;17809:50;;;;;;17897:6;17870:16;:24;17887:6;17870:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17917:6;17914:146;;;17939:11;;;;;;;;;;;:20;;;17960:6;17968:1;17939:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17914:146;;;18001:11;;;;;;;;;;;:20;;;18022:6;18030:9;:17;18040:6;18030:17;;;;;;;;;;;;;;;;18001:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17914:146;17730:337;;:::o;235:181::-;293:7;313:9;329:1;325;:5;;;;:::i;:::-;313:17;;354:1;349;:6;;341:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;407:1;400:8;;;235:181;;;;:::o;14321:329::-;14429:4;;;;;;;;;;;14419:14;;:6;:14;;;:223;;14572:16;;14562:6;:26;;:53;;;;14592:15;:23;14608:6;14592:23;;;;;;;;;;;;;;;;;;;;;;;;;14562:53;14554:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;14419:223;;;14467:15;;14457:6;:25;;:55;;;;14486:15;:26;14502:9;14486:26;;;;;;;;;;;;;;;;;;;;;;;;;14457:55;14449:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;14419:223;14321:329;;;:::o;15773:197::-;15822:4;15860;;;;;;;;;;;15846:18;;:10;:18;;;;:38;;;;;15878:6;;;;;;;;;;;15877:7;15846:38;:62;;;;;15897:11;;;;;;;;;;;15846:62;:116;;;;;15949:13;;15921:9;:24;15939:4;15921:24;;;;;;;;;;;;;;;;:41;;15846:116;15839:123;;15773:197;:::o;15978:815::-;10343:4;10334:6;;:13;;;;;;;;;;;;;;;;;;16027:20:::1;16050:13;;16027:36;;16076:21;16114:1;16100:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16076:40;;16145:4;16127;16132:1;16127:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16171:4;;;;;;;;;;;16161;16166:1;16161:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16188:21;16212;16188:45;;16246:6;;;;;;;;;;;:57;;;16318:12;16345:1;16361:4;16388;16408:15;16246:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16445:17;16465:40;16491:13;16465:21;:25;;:40;;;;:::i;:::-;16445:60;;16516:24;16543:42;16576:8;;16543:28;16557:13;;16543:9;:13;;:28;;;;:::i;:::-;:32;;:42;;;;:::i;:::-;16516:69;;16596:18;16617:31;16631:16;16617:9;:13;;:31;;;;:::i;:::-;16596:52;;16665:11;;;;;;;;;;;:19;;;16692:16;16665:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;16661:62;;;;;;16751:12;;;;;;;;;;;16743:30;;:42;16774:10;16743:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16016:777;;;;;;10361:5:::0;10352:6;;:14;;;;;;;;;;;;;;;;;;15978:815::o;16801:90::-;16844:4;16882:1;16868:10;;:15;;16861:22;;16801:90;:::o;16899:111::-;16990:12;16977:10;:25;;;;16899:111::o;14658:161::-;14739:4;14765:11;:19;14777:6;14765:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;14788:11;:22;14800:9;14788:22;;;;;;;;;;;;;;;;;;;;;;;;;14765:45;14763:48;14756:55;;14658:161;;;;:::o;14827:938::-;14913:7;14933:17;14961:8;15095:4;;;;;;;;;;;15085:14;;:6;:14;;;15081:121;;15122:5;:13;15128:6;15122:13;;;;;;;;;;;;;;;;;;;;;;;;;15116:19;;15081:121;;;15174:5;:16;15180:9;15174:16;;;;;;;;;;;;;;;;;;;;;;;;;15168:22;;15081:121;15226:3;:53;;;;15267:12;15246:17;;15233:10;;:30;;;;:::i;:::-;:46;;15226:53;15222:495;;;15308:53;15346:14;;15308:33;15319:21;15338:1;15319:14;;:18;;:21;;;;:::i;:::-;15308:6;:10;;:33;;;;:::i;:::-;:37;;:53;;;;:::i;:::-;15296:65;;15394:30;15414:9;15394;:15;15404:4;;;;;;;;;;;15394:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;15376:9;:15;15386:4;;;;;;;;;;;15376:15;;;;;;;;;;;;;;;:48;;;;15461:4;;;;;;;;;;;15444:33;;15453:6;15444:33;;;15467:9;15444:33;;;;;;:::i;:::-;;;;;;;;15222:495;;;15522:40;15547:14;;15522:20;15533:8;;15522:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;15510:52;;15604:39;15633:9;15604;:24;15622:4;15604:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15577:9;:24;15595:4;15577:24;;;;;;;;;;;;;;;:66;;;;15688:4;15663:42;;15672:6;15663:42;;;15695:9;15663:42;;;;;;:::i;:::-;;;;;;;;15222:495;15736:21;15747:9;15736:6;:10;;:21;;;;:::i;:::-;15729:28;;;;14827:938;;;;;:::o;762:250::-;820:7;849:1;844;:6;840:47;;;874:1;867:8;;;;840:47;899:9;915:1;911;:5;;;;:::i;:::-;899:17;;944:1;939;935;:5;;;;:::i;:::-;:10;927:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1003:1;996:8;;;762:250;;;;;:::o;1018:132::-;1076:7;1103:39;1107:1;1110;1103:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1096:46;;1018:132;;;;:::o;1156:345::-;1242:7;1341:1;1337;:5;1344:12;1329:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1368:9;1384:1;1380;:5;;;;:::i;:::-;1368:17;;1492:1;1485:8;;;1156:345;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;597:143;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:119;;;860:79;;:::i;:::-;822:119;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;746:329;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:119;;;1203:79;;:::i;:::-;1165:119;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1081:345;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:119;;;1563:79;;:::i;:::-;1525:119;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1432:474;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:119;;;2060:79;;:::i;:::-;2022:119;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;1912:619;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:119;;;2665:79;;:::i;:::-;2627:119;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2537:468;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:119;;;3142:79;;:::i;:::-;3104:119;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3011:474;;;;;:::o;3491:468::-;3556:6;3564;3613:2;3601:9;3592:7;3588:23;3584:32;3581:119;;;3619:79;;:::i;:::-;3581:119;3739:1;3764:50;3806:7;3797:6;3786:9;3782:22;3764:50;:::i;:::-;3754:60;;3710:114;3863:2;3889:53;3934:7;3925:6;3914:9;3910:22;3889:53;:::i;:::-;3879:63;;3834:118;3491:468;;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;3965:329;;;;:::o;4300:351::-;4370:6;4419:2;4407:9;4398:7;4394:23;4390:32;4387:119;;;4425:79;;:::i;:::-;4387:119;4545:1;4570:64;4626:7;4617:6;4606:9;4602:22;4570:64;:::i;:::-;4560:74;;4516:128;4300:351;;;;:::o;4657:619::-;4734:6;4742;4750;4799:2;4787:9;4778:7;4774:23;4770:32;4767:119;;;4805:79;;:::i;:::-;4767:119;4925:1;4950:53;4995:7;4986:6;4975:9;4971:22;4950:53;:::i;:::-;4940:63;;4896:117;5052:2;5078:53;5123:7;5114:6;5103:9;5099:22;5078:53;:::i;:::-;5068:63;;5023:118;5180:2;5206:53;5251:7;5242:6;5231:9;5227:22;5206:53;:::i;:::-;5196:63;;5151:118;4657:619;;;;;:::o;5282:179::-;5351:10;5372:46;5414:3;5406:6;5372:46;:::i;:::-;5450:4;5445:3;5441:14;5427:28;;5282:179;;;;:::o;5467:147::-;5562:45;5601:5;5562:45;:::i;:::-;5557:3;5550:58;5467:147;;:::o;5620:108::-;5697:24;5715:5;5697:24;:::i;:::-;5692:3;5685:37;5620:108;;:::o;5734:118::-;5821:24;5839:5;5821:24;:::i;:::-;5816:3;5809:37;5734:118;;:::o;5888:732::-;6007:3;6036:54;6084:5;6036:54;:::i;:::-;6106:86;6185:6;6180:3;6106:86;:::i;:::-;6099:93;;6216:56;6266:5;6216:56;:::i;:::-;6295:7;6326:1;6311:284;6336:6;6333:1;6330:13;6311:284;;;6412:6;6406:13;6439:63;6498:3;6483:13;6439:63;:::i;:::-;6432:70;;6525:60;6578:6;6525:60;:::i;:::-;6515:70;;6371:224;6358:1;6355;6351:9;6346:14;;6311:284;;;6315:14;6611:3;6604:10;;6012:608;;;5888:732;;;;:::o;6626:109::-;6707:21;6722:5;6707:21;:::i;:::-;6702:3;6695:34;6626:109;;:::o;6741:167::-;6846:55;6895:5;6846:55;:::i;:::-;6841:3;6834:68;6741:167;;:::o;6914:147::-;7009:45;7048:5;7009:45;:::i;:::-;7004:3;6997:58;6914:147;;:::o;7067:364::-;7155:3;7183:39;7216:5;7183:39;:::i;:::-;7238:71;7302:6;7297:3;7238:71;:::i;:::-;7231:78;;7318:52;7363:6;7358:3;7351:4;7344:5;7340:16;7318:52;:::i;:::-;7395:29;7417:6;7395:29;:::i;:::-;7390:3;7386:39;7379:46;;7159:272;7067:364;;;;:::o;7437:365::-;7579:3;7600:66;7664:1;7659:3;7600:66;:::i;:::-;7593:73;;7675:93;7764:3;7675:93;:::i;:::-;7793:2;7788:3;7784:12;7777:19;;7437:365;;;:::o;7808:366::-;7950:3;7971:67;8035:2;8030:3;7971:67;:::i;:::-;7964:74;;8047:93;8136:3;8047:93;:::i;:::-;8165:2;8160:3;8156:12;8149:19;;7808:366;;;:::o;8180:::-;8322:3;8343:67;8407:2;8402:3;8343:67;:::i;:::-;8336:74;;8419:93;8508:3;8419:93;:::i;:::-;8537:2;8532:3;8528:12;8521:19;;8180:366;;;:::o;8552:::-;8694:3;8715:67;8779:2;8774:3;8715:67;:::i;:::-;8708:74;;8791:93;8880:3;8791:93;:::i;:::-;8909:2;8904:3;8900:12;8893:19;;8552:366;;;:::o;8924:::-;9066:3;9087:67;9151:2;9146:3;9087:67;:::i;:::-;9080:74;;9163:93;9252:3;9163:93;:::i;:::-;9281:2;9276:3;9272:12;9265:19;;8924:366;;;:::o;9296:::-;9438:3;9459:67;9523:2;9518:3;9459:67;:::i;:::-;9452:74;;9535:93;9624:3;9535:93;:::i;:::-;9653:2;9648:3;9644:12;9637:19;;9296:366;;;:::o;9668:118::-;9755:24;9773:5;9755:24;:::i;:::-;9750:3;9743:37;9668:118;;:::o;9792:112::-;9875:22;9891:5;9875:22;:::i;:::-;9870:3;9863:35;9792:112;;:::o;9910:222::-;10003:4;10041:2;10030:9;10026:18;10018:26;;10054:71;10122:1;10111:9;10107:17;10098:6;10054:71;:::i;:::-;9910:222;;;;:::o;10138:238::-;10239:4;10277:2;10266:9;10262:18;10254:26;;10290:79;10366:1;10355:9;10351:17;10342:6;10290:79;:::i;:::-;10138:238;;;;:::o;10382:348::-;10511:4;10549:2;10538:9;10534:18;10526:26;;10562:71;10630:1;10619:9;10615:17;10606:6;10562:71;:::i;:::-;10643:80;10719:2;10708:9;10704:18;10695:6;10643:80;:::i;:::-;10382:348;;;;;:::o;10736:332::-;10857:4;10895:2;10884:9;10880:18;10872:26;;10908:71;10976:1;10965:9;10961:17;10952:6;10908:71;:::i;:::-;10989:72;11057:2;11046:9;11042:18;11033:6;10989:72;:::i;:::-;10736:332;;;;;:::o;11074:210::-;11161:4;11199:2;11188:9;11184:18;11176:26;;11212:65;11274:1;11263:9;11259:17;11250:6;11212:65;:::i;:::-;11074:210;;;;:::o;11290:258::-;11401:4;11439:2;11428:9;11424:18;11416:26;;11452:89;11538:1;11527:9;11523:17;11514:6;11452:89;:::i;:::-;11290:258;;;;:::o;11554:313::-;11667:4;11705:2;11694:9;11690:18;11682:26;;11754:9;11748:4;11744:20;11740:1;11729:9;11725:17;11718:47;11782:78;11855:4;11846:6;11782:78;:::i;:::-;11774:86;;11554:313;;;;:::o;11873:419::-;12039:4;12077:2;12066:9;12062:18;12054:26;;12126:9;12120:4;12116:20;12112:1;12101:9;12097:17;12090:47;12154:131;12280:4;12154:131;:::i;:::-;12146:139;;11873:419;;;:::o;12298:::-;12464:4;12502:2;12491:9;12487:18;12479:26;;12551:9;12545:4;12541:20;12537:1;12526:9;12522:17;12515:47;12579:131;12705:4;12579:131;:::i;:::-;12571:139;;12298:419;;;:::o;12723:::-;12889:4;12927:2;12916:9;12912:18;12904:26;;12976:9;12970:4;12966:20;12962:1;12951:9;12947:17;12940:47;13004:131;13130:4;13004:131;:::i;:::-;12996:139;;12723:419;;;:::o;13148:::-;13314:4;13352:2;13341:9;13337:18;13329:26;;13401:9;13395:4;13391:20;13387:1;13376:9;13372:17;13365:47;13429:131;13555:4;13429:131;:::i;:::-;13421:139;;13148:419;;;:::o;13573:::-;13739:4;13777:2;13766:9;13762:18;13754:26;;13826:9;13820:4;13816:20;13812:1;13801:9;13797:17;13790:47;13854:131;13980:4;13854:131;:::i;:::-;13846:139;;13573:419;;;:::o;13998:::-;14164:4;14202:2;14191:9;14187:18;14179:26;;14251:9;14245:4;14241:20;14237:1;14226:9;14222:17;14215:47;14279:131;14405:4;14279:131;:::i;:::-;14271:139;;13998:419;;;:::o;14423:222::-;14516:4;14554:2;14543:9;14539:18;14531:26;;14567:71;14635:1;14624:9;14620:17;14611:6;14567:71;:::i;:::-;14423:222;;;;:::o;14651:831::-;14914:4;14952:3;14941:9;14937:19;14929:27;;14966:71;15034:1;15023:9;15019:17;15010:6;14966:71;:::i;:::-;15047:80;15123:2;15112:9;15108:18;15099:6;15047:80;:::i;:::-;15174:9;15168:4;15164:20;15159:2;15148:9;15144:18;15137:48;15202:108;15305:4;15296:6;15202:108;:::i;:::-;15194:116;;15320:72;15388:2;15377:9;15373:18;15364:6;15320:72;:::i;:::-;15402:73;15470:3;15459:9;15455:19;15446:6;15402:73;:::i;:::-;14651:831;;;;;;;;:::o;15488:214::-;15577:4;15615:2;15604:9;15600:18;15592:26;;15628:67;15692:1;15681:9;15677:17;15668:6;15628:67;:::i;:::-;15488:214;;;;:::o;15789:132::-;15856:4;15879:3;15871:11;;15909:4;15904:3;15900:14;15892:22;;15789:132;;;:::o;15927:114::-;15994:6;16028:5;16022:12;16012:22;;15927:114;;;:::o;16047:99::-;16099:6;16133:5;16127:12;16117:22;;16047:99;;;:::o;16152:113::-;16222:4;16254;16249:3;16245:14;16237:22;;16152:113;;;:::o;16271:184::-;16370:11;16404:6;16399:3;16392:19;16444:4;16439:3;16435:14;16420:29;;16271:184;;;;:::o;16461:169::-;16545:11;16579:6;16574:3;16567:19;16619:4;16614:3;16610:14;16595:29;;16461:169;;;;:::o;16636:305::-;16676:3;16695:20;16713:1;16695:20;:::i;:::-;16690:25;;16729:20;16747:1;16729:20;:::i;:::-;16724:25;;16883:1;16815:66;16811:74;16808:1;16805:81;16802:107;;;16889:18;;:::i;:::-;16802:107;16933:1;16930;16926:9;16919:16;;16636:305;;;;:::o;16947:185::-;16987:1;17004:20;17022:1;17004:20;:::i;:::-;16999:25;;17038:20;17056:1;17038:20;:::i;:::-;17033:25;;17077:1;17067:35;;17082:18;;:::i;:::-;17067:35;17124:1;17121;17117:9;17112:14;;16947:185;;;;:::o;17138:348::-;17178:7;17201:20;17219:1;17201:20;:::i;:::-;17196:25;;17235:20;17253:1;17235:20;:::i;:::-;17230:25;;17423:1;17355:66;17351:74;17348:1;17345:81;17340:1;17333:9;17326:17;17322:105;17319:131;;;17430:18;;:::i;:::-;17319:131;17478:1;17475;17471:9;17460:20;;17138:348;;;;:::o;17492:191::-;17532:4;17552:20;17570:1;17552:20;:::i;:::-;17547:25;;17586:20;17604:1;17586:20;:::i;:::-;17581:25;;17625:1;17622;17619:8;17616:34;;;17630:18;;:::i;:::-;17616:34;17675:1;17672;17668:9;17660:17;;17492:191;;;;:::o;17689:96::-;17726:7;17755:24;17773:5;17755:24;:::i;:::-;17744:35;;17689:96;;;:::o;17791:104::-;17836:7;17865:24;17883:5;17865:24;:::i;:::-;17854:35;;17791:104;;;:::o;17901:90::-;17935:7;17978:5;17971:13;17964:21;17953:32;;17901:90;;;:::o;17997:126::-;18034:7;18074:42;18067:5;18063:54;18052:65;;17997:126;;;:::o;18129:77::-;18166:7;18195:5;18184:16;;18129:77;;;:::o;18212:86::-;18247:7;18287:4;18280:5;18276:16;18265:27;;18212:86;;;:::o;18304:134::-;18362:9;18395:37;18426:5;18395:37;:::i;:::-;18382:50;;18304:134;;;:::o;18444:144::-;18512:9;18545:37;18576:5;18545:37;:::i;:::-;18532:50;;18444:144;;;:::o;18594:121::-;18652:9;18685:24;18703:5;18685:24;:::i;:::-;18672:37;;18594:121;;;:::o;18721:126::-;18771:9;18804:37;18835:5;18804:37;:::i;:::-;18791:50;;18721:126;;;:::o;18853:113::-;18903:9;18936:24;18954:5;18936:24;:::i;:::-;18923:37;;18853:113;;;:::o;18972:307::-;19040:1;19050:113;19064:6;19061:1;19058:13;19050:113;;;19149:1;19144:3;19140:11;19134:18;19130:1;19125:3;19121:11;19114:39;19086:2;19083:1;19079:10;19074:15;;19050:113;;;19181:6;19178:1;19175:13;19172:101;;;19261:1;19252:6;19247:3;19243:16;19236:27;19172:101;19021:258;18972:307;;;:::o;19285:180::-;19333:77;19330:1;19323:88;19430:4;19427:1;19420:15;19454:4;19451:1;19444:15;19471:180;19519:77;19516:1;19509:88;19616:4;19613:1;19606:15;19640:4;19637:1;19630:15;19657:180;19705:77;19702:1;19695:88;19802:4;19799:1;19792:15;19826:4;19823:1;19816:15;19843:180;19891:77;19888:1;19881:88;19988:4;19985:1;19978:15;20012:4;20009:1;20002:15;20152:117;20261:1;20258;20251:12;20275:102;20316:6;20367:2;20363:7;20358:2;20351:5;20347:14;20343:28;20333:38;;20275:102;;;:::o;20383:156::-;20523:8;20519:1;20511:6;20507:14;20500:32;20383:156;:::o;20545:177::-;20685:29;20681:1;20673:6;20669:14;20662:53;20545:177;:::o;20728:171::-;20868:23;20864:1;20856:6;20852:14;20845:47;20728:171;:::o;20905:181::-;21045:33;21041:1;21033:6;21029:14;21022:57;20905:181;:::o;21092:220::-;21232:34;21228:1;21220:6;21216:14;21209:58;21301:3;21296:2;21288:6;21284:15;21277:28;21092:220;:::o;21318:172::-;21458:24;21454:1;21446:6;21442:14;21435:48;21318:172;:::o;21496:122::-;21569:24;21587:5;21569:24;:::i;:::-;21562:5;21559:35;21549:63;;21608:1;21605;21598:12;21549:63;21496:122;:::o;21624:138::-;21705:32;21731:5;21705:32;:::i;:::-;21698:5;21695:43;21685:71;;21752:1;21749;21742:12;21685:71;21624:138;:::o;21768:116::-;21838:21;21853:5;21838:21;:::i;:::-;21831:5;21828:32;21818:60;;21874:1;21871;21864:12;21818:60;21768:116;:::o;21890:122::-;21963:24;21981:5;21963:24;:::i;:::-;21956:5;21953:35;21943:63;;22002:1;21999;21992:12;21943:63;21890:122;:::o
Swarm Source
ipfs://3f9a53d1a710868cfd9a30eddbc89b6cf27499784d787c9ef9ed8e88a21cc489
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.