ERC-20
Overview
Max Total Supply
10,000,000 TWEET
Holders
915
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
20,092.150905747171398078 TWEETValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TweetMoney
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-12 */ //https://tweet.money //https://t.me/tweetmoney_portal //https://x.com/0xtweetweet // SPDX-License-Identifier:MIT pragma solidity 0.8.20; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } // Dex Factory contract interface interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } // Dex Router contract interface interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = payable(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED if (_status == _ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { _status = _NOT_ENTERED; } function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } contract TweetMoney is Context, IERC20, Ownable,ReentrancyGuard { string private _name; string private _symbol; uint8 private _decimals = 18; uint256 private _totalSupply; uint256 public minSwapAmount; uint256 public maxTxnAmount; uint256 public maxWalletAmount; bool public trading; uint256 public launchedAt; uint256 public taxFeeOnBuy = 25; uint256 public taxFeeOnSell = 25; uint256 public percentDivider = 100; bool public distributeAndLiquifyStatus = true; address public feeReceiver; // fee receiver bool public feesStatus = true; // enable by default IDexRouter public dexRouter; //Uniswap router declaration address public dexPair; //Uniswap pair address declaration mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isLimitExmpt; mapping(address => bool) public isWalletExmpt; event ExcludeFromFee(address indexed account, bool isExcluded); event NewSwapAmount(uint256 newAmount); event DistributionStatus(bool Status); event FeeStatus(bool Status); event FeeUpdated(uint256 amount); event feeReceiverUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor( string memory __name, string memory __symbol, uint256 __supply, uint256 __maxTxnAmount, uint256 __maxWalletAmount, address __feeReceiver, address __router ) { _name = __name; _symbol = __symbol; _totalSupply = __supply; _balances[owner()] = _totalSupply; maxTxnAmount = __maxTxnAmount; maxWalletAmount = __maxWalletAmount; feeReceiver = __feeReceiver; minSwapAmount = _totalSupply / 2000; //exclude owner and this contract from fees isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[address(dexRouter)] = true; IDexRouter _dexRouter = IDexRouter(__router); // Create a dex pair for this new ERC20 address _dexPair = IDexFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); dexPair = _dexPair; // set the rest of the contract variables dexRouter = _dexRouter; isLimitExmpt[owner()] = true; isLimitExmpt[dexPair] = true; isLimitExmpt[address(this)] = true; isLimitExmpt[address(dexRouter)] = true; isWalletExmpt[owner()] = true; isWalletExmpt[dexPair] = true; isWalletExmpt[address(this)] = true; isWalletExmpt[address(dexRouter)] = true; emit Transfer(address(0), owner(), _totalSupply); } // Public viewable functions function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + (addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue ); return true; } function calculateBuyTax(uint256 amount) public view returns (uint256) { uint256 fee = (amount * taxFeeOnBuy) / percentDivider; return fee; } function calculateSellTax(uint256 amount) public view returns (uint256) { uint256 fee = (amount * taxFeeOnSell) / percentDivider; return fee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "Approve from the zero address"); require(spender != address(0), "Approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "Tansfer from the zero address"); require(to != address(0), "Transfer to the zero address"); require(amount > 0, " Amount must be greater than zero"); if (!isLimitExmpt[from] && !isLimitExmpt[to]) { require(amount <= maxTxnAmount, "Max txn limit exceeds"); // trading disable till launch if (!trading) { require(dexPair != from && dexPair != to, "Trading is disable"); } } if (!isWalletExmpt[to]) { require( balanceOf(to) + amount <= maxWalletAmount, "Max Wallet limit exceeds" ); } // swap and liquify distributeAndLiquify(from, to); //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to isExcludedFromFee account then remove the fee if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) { takeFee = false; } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from, to, amount, takeFee); } //this method is responsible for processing all fee, if takeFee is true function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (dexPair == sender && takeFee) { uint256 allFee; uint256 tTransferAmount; allFee = calculateBuyTax(amount); tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else if (dexPair == recipient && takeFee) { uint256 allFee = calculateSellTax(amount); uint256 tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + (amount); emit Transfer(sender, recipient, amount); } } function takeTokenFee(address sender, uint256 amount) private { _balances[address(this)] = _balances[address(this)] + amount; emit Transfer(sender, address(this), amount); } // Withdraw stuck ETH function removeETH(uint256 _amount) external onlyOwner { require(address(this).balance >= _amount, "Invalid Amount"); payable(msg.sender).transfer(_amount); emit Transfer(address(this), msg.sender, _amount); } function launch() external onlyOwner { require(!trading, "Already enabled"); trading = true; launchedAt = block.timestamp; } //callable by contract function distributeAndLiquify(address from, address to) private { uint256 contractTokenBalance = balanceOf(address(this)); if ( contractTokenBalance >= minSwapAmount && from != dexPair && distributeAndLiquifyStatus && !(from == address(this) && to == dexPair) // swap 1 time ) { // approve contract _approve(address(this), address(dexRouter), minSwapAmount); // lock into liquidty pool Utils.swapTokensForEth(address(dexRouter), minSwapAmount); uint256 ethForMarketing = address(this).balance; // sending Eth to Marketing wallet if (ethForMarketing > 0) payable(feeReceiver).transfer(ethForMarketing); } } function setMaxTxnAmount(uint256 amount) external onlyOwner { require(amount >= _totalSupply / 100); maxTxnAmount = amount; } function setMaxWalletAmount(uint256 amount) external onlyOwner { require(amount >= _totalSupply / 100); maxWalletAmount = amount; } function removeMaxWalletMaxTrxAmount() external onlyOwner { maxWalletAmount = _totalSupply; maxTxnAmount = _totalSupply; } // to change buy fee function updateBuyTax(uint256 _taxFee) external onlyOwner { require(_taxFee <= taxFeeOnBuy, "Buy fee can't be more than current fee."); taxFeeOnBuy = _taxFee; emit FeeUpdated(taxFeeOnBuy); } // to change sell fee function updateSellTax(uint256 _taxFee) external onlyOwner { require( _taxFee <= taxFeeOnSell, "Sell fee can't be more than current fee." ); taxFeeOnSell = _taxFee; emit FeeUpdated(taxFeeOnSell); } //to change swap fee function changeSwapAmount(uint256 _amount) external onlyOwner { require(_amount > 0, "min swap amount should be greater than zero"); minSwapAmount = _amount * 1e18; emit NewSwapAmount(minSwapAmount); } function setDistributionStatus(bool _value) external onlyOwner { // Check if the new value is different from the current state require( _value != distributeAndLiquifyStatus, "Value must be different from current state" ); distributeAndLiquifyStatus = _value; emit DistributionStatus(_value); } // to change fee receiver wallet function updateFeeWallet(address newfeeReceiver) external onlyOwner { require( newfeeReceiver != address(0), "Ownable: new feeReceiver is the zero address" ); emit feeReceiverUpdated(newfeeReceiver, feeReceiver); feeReceiver = newfeeReceiver; } //to receive ETH from dexRouter when swapping receive() external payable {} } // Library dex swap library Utils { function swapTokensForEth( address routerAddress, uint256 tokenAmount ) internal { IDexRouter dexRouter = IDexRouter(routerAddress); // generate the Dex pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp + 300 ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"__name","type":"string"},{"internalType":"string","name":"__symbol","type":"string"},{"internalType":"uint256","name":"__supply","type":"uint256"},{"internalType":"uint256","name":"__maxTxnAmount","type":"uint256"},{"internalType":"uint256","name":"__maxWalletAmount","type":"uint256"},{"internalType":"address","name":"__feeReceiver","type":"address"},{"internalType":"address","name":"__router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"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":"bool","name":"Status","type":"bool"}],"name":"DistributionStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"FeeStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"NewSwapAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"feeReceiverUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isLimitExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxWalletMaxTrxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newfeeReceiver","type":"address"}],"name":"updateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601260045f6101000a81548160ff021916908360ff1602179055506019600b556019600c556064600d556001600e5f6101000a81548160ff0219169083151502179055506001600e60156101000a81548160ff0219169083151502179055503480156200006f575f80fd5b5060405162004e4238038062004e42833981810160405281019062000095919062000b79565b620000a56200092d60201b60201c565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360018081905550866002908162000174919062000e93565b50856003908162000186919062000e93565b508460058190555060055460115f620001a46200093460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550836007819055508260088190555081600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107d060055462000242919062000fa4565b600681905550600160135f6200025d6200093460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000fdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000452573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000478919062000fdb565b6040518363ffffffff1660e01b8152600401620004979291906200101c565b6020604051808303815f875af1158015620004b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004da919062000fdb565b90508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160145f620005716200093460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f620007166200093460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008b66200093460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000916919062001058565b60405180910390a350505050505050505062001073565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620009bc8262000974565b810181811067ffffffffffffffff82111715620009de57620009dd62000984565b5b80604052505050565b5f620009f26200095b565b905062000a008282620009b1565b919050565b5f67ffffffffffffffff82111562000a225762000a2162000984565b5b62000a2d8262000974565b9050602081019050919050565b5f5b8381101562000a5957808201518184015260208101905062000a3c565b5f8484015250505050565b5f62000a7a62000a748462000a05565b620009e7565b90508281526020810184848401111562000a995762000a9862000970565b5b62000aa684828562000a3a565b509392505050565b5f82601f83011262000ac55762000ac46200096c565b5b815162000ad784826020860162000a64565b91505092915050565b5f819050919050565b62000af48162000ae0565b811462000aff575f80fd5b50565b5f8151905062000b128162000ae9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b438262000b18565b9050919050565b62000b558162000b37565b811462000b60575f80fd5b50565b5f8151905062000b738162000b4a565b92915050565b5f805f805f805f60e0888a03121562000b975762000b9662000964565b5b5f88015167ffffffffffffffff81111562000bb75762000bb662000968565b5b62000bc58a828b0162000aae565b975050602088015167ffffffffffffffff81111562000be95762000be862000968565b5b62000bf78a828b0162000aae565b965050604062000c0a8a828b0162000b02565b955050606062000c1d8a828b0162000b02565b945050608062000c308a828b0162000b02565b93505060a062000c438a828b0162000b63565b92505060c062000c568a828b0162000b63565b91505092959891949750929550565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000cb457607f821691505b60208210810362000cca5762000cc962000c6f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000d2e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cf1565b62000d3a868362000cf1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000d7b62000d7562000d6f8462000ae0565b62000d52565b62000ae0565b9050919050565b5f819050919050565b62000d968362000d5b565b62000dae62000da58262000d82565b84845462000cfd565b825550505050565b5f90565b62000dc462000db6565b62000dd181848462000d8b565b505050565b5b8181101562000df85762000dec5f8262000dba565b60018101905062000dd7565b5050565b601f82111562000e475762000e118162000cd0565b62000e1c8462000ce2565b8101602085101562000e2c578190505b62000e4462000e3b8562000ce2565b83018262000dd6565b50505b505050565b5f82821c905092915050565b5f62000e695f198460080262000e4c565b1980831691505092915050565b5f62000e83838362000e58565b9150826002028217905092915050565b62000e9e8262000c65565b67ffffffffffffffff81111562000eba5762000eb962000984565b5b62000ec6825462000c9c565b62000ed382828562000dfc565b5f60209050601f83116001811462000f09575f841562000ef4578287015190505b62000f00858262000e76565b86555062000f6f565b601f19841662000f198662000cd0565b5f5b8281101562000f425784890151825560018201915060208501945060208101905062000f1b565b8683101562000f62578489015162000f5e601f89168262000e58565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000fb08262000ae0565b915062000fbd8362000ae0565b92508262000fd05762000fcf62000f77565b5b828204905092915050565b5f6020828403121562000ff35762000ff262000964565b5b5f620010028482850162000b63565b91505092915050565b620010168162000b37565b82525050565b5f604082019050620010315f8301856200100b565b6200104060208301846200100b565b9392505050565b620010528162000ae0565b82525050565b5f6020820190506200106d5f83018462001047565b92915050565b613dc180620010815f395ff3fe608060405260043610610254575f3560e01c806374010ece11610138578063aa4bde28116100b5578063dd62ed3e11610079578063dd62ed3e146108af578063ec44acf2146108eb578063ede50eb814610915578063f242ab4114610951578063f2fde38b1461097b578063fe6f1b05146109a35761025b565b8063aa4bde28146107dd578063ab4ebc1e14610807578063b3f0067414610831578063bf56b3711461085b578063cf46f24c146108855761025b565b80638da5cb5b116100fc5780638da5cb5b146106e757806395d89b41146107115780639c0b9d741461073b578063a457c2d714610765578063a9059cbb146107a15761025b565b806374010ece146105f357806379777b4e1461061b57806386cb8fb114610645578063879dd3c5146106815780638bae9480146106ab5761025b565b806327a14fc2116101d15780635342acb4116101955780635342acb4146104eb578063540b8a271461052757806366718524146105635780636fd0cfb31461058b57806370a08231146105a1578063715018a6146105dd5761025b565b806327a14fc21461040b578063313ce56714610433578063338246e21461045d5780633950935114610487578063436d3340146104c35761025b565b80630ce5fd36116102185780630ce5fd361461032d57806312185a391461035557806318160ddd1461037d5780631e9b197e146103a757806323b872dd146103cf5761025b565b806301339c211461025f57806306fdde03146102755780630758d9241461029f578063095ea7b3146102c95780630a2d140c146103055761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109cd565b005b348015610280575f80fd5b50610289610ad3565b6040516102969190612ed7565b60405180910390f35b3480156102aa575f80fd5b506102b3610b63565b6040516102c09190612f71565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea9190612ffc565b610b88565b6040516102fc9190613054565b60405180910390f35b348015610310575f80fd5b5061032b60048036038101906103269190613097565b610ba5565b005b348015610338575f80fd5b50610353600480360381019061034e91906130c2565b610ce0565b005b348015610360575f80fd5b5061037b600480360381019061037691906130c2565b610e0c565b005b348015610388575f80fd5b50610391610f28565b60405161039e91906130fc565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c891906130c2565b610f31565b005b3480156103da575f80fd5b506103f560048036038101906103f09190613115565b6110b4565b6040516104029190613054565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906130c2565b611167565b005b34801561043e575f80fd5b5061044761121f565b6040516104549190613180565b60405180910390f35b348015610468575f80fd5b50610471611234565b60405161047e91906130fc565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a89190612ffc565b61123a565b6040516104ba9190613054565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e491906130c2565b6112e1565b005b3480156104f6575f80fd5b50610511600480360381019061050c9190613199565b6113fd565b60405161051e9190613054565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190613199565b61141a565b60405161055a9190613054565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190613199565b611437565b005b348015610596575f80fd5b5061059f6115f9565b005b3480156105ac575f80fd5b506105c760048036038101906105c29190613199565b6116a1565b6040516105d491906130fc565b60405180910390f35b3480156105e8575f80fd5b506105f16116e7565b005b3480156105fe575f80fd5b50610619600480360381019061061491906130c2565b611835565b005b348015610626575f80fd5b5061062f6118ed565b60405161063c9190613054565b60405180910390f35b348015610650575f80fd5b5061066b60048036038101906106669190613199565b6118ff565b6040516106789190613054565b60405180910390f35b34801561068c575f80fd5b5061069561191c565b6040516106a29190613054565b60405180910390f35b3480156106b6575f80fd5b506106d160048036038101906106cc91906130c2565b61192f565b6040516106de91906130fc565b60405180910390f35b3480156106f2575f80fd5b506106fb611957565b60405161070891906131d3565b60405180910390f35b34801561071c575f80fd5b5061072561197e565b6040516107329190612ed7565b60405180910390f35b348015610746575f80fd5b5061074f611a0e565b60405161075c91906130fc565b60405180910390f35b348015610770575f80fd5b5061078b60048036038101906107869190612ffc565b611a14565b6040516107989190613054565b60405180910390f35b3480156107ac575f80fd5b506107c760048036038101906107c29190612ffc565b611abb565b6040516107d49190613054565b60405180910390f35b3480156107e8575f80fd5b506107f1611ad8565b6040516107fe91906130fc565b60405180910390f35b348015610812575f80fd5b5061081b611ade565b60405161082891906130fc565b60405180910390f35b34801561083c575f80fd5b50610845611ae4565b60405161085291906131d3565b60405180910390f35b348015610866575f80fd5b5061086f611b0a565b60405161087c91906130fc565b60405180910390f35b348015610890575f80fd5b50610899611b10565b6040516108a691906130fc565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d091906131ec565b611b16565b6040516108e291906130fc565b60405180910390f35b3480156108f6575f80fd5b506108ff611b98565b60405161090c9190613054565b60405180910390f35b348015610920575f80fd5b5061093b600480360381019061093691906130c2565b611baa565b60405161094891906130fc565b60405180910390f35b34801561095c575f80fd5b50610965611bd2565b60405161097291906131d3565b60405180910390f35b348015610986575f80fd5b506109a1600480360381019061099c9190613199565b611bf7565b005b3480156109ae575f80fd5b506109b7611db4565b6040516109c491906130fc565b60405180910390f35b6109d5611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5890613274565b60405180910390fd5b60095f9054906101000a900460ff1615610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa7906132dc565b60405180910390fd5b600160095f6101000a81548160ff02191690831515021790555042600a81905550565b606060028054610ae290613327565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0e90613327565b8015610b595780601f10610b3057610100808354040283529160200191610b59565b820191905f5260205f20905b815481529060010190602001808311610b3c57829003601f168201915b5050505050905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b9b610b94611dba565b8484611dc1565b6001905092915050565b610bad611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090613274565b60405180910390fd5b600e5f9054906101000a900460ff16151581151503610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c84906133c7565b60405180910390fd5b80600e5f6101000a81548160ff0219169083151502179055507f0ff846c521f32cbf9b5885504ef4a918e437ceb78c26a4b3bdde29162fc36dd381604051610cd59190613054565b60405180910390a150565b610ce8611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90613274565b60405180910390fd5b5f8111610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90613455565b60405180910390fd5b670de0b6b3a764000081610dca91906134a0565b6006819055507f2e6bb606f8e40581f3aead29e6b2d80455a891e6b1a8cee3624f74a93f015593600654604051610e0191906130fc565b60405180910390a150565b610e14611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790613274565b60405180910390fd5b600c54811115610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90613551565b60405180910390fd5b80600c819055507f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76600c54604051610f1d91906130fc565b60405180910390a150565b5f600554905090565b610f39611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90613274565b60405180910390fd5b80471015611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906135b9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561104b573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a991906130fc565b60405180910390a350565b5f6110c0848484611f84565b61115c846110cc611dba565b8460125f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f611113611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461115791906135d7565b611dc1565b600190509392505050565b61116f611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290613274565b60405180910390fd5b606460055461120a9190613637565b811015611215575f80fd5b8060088190555050565b5f60045f9054906101000a900460ff16905090565b60065481565b5f6112d7611246611dba565b848460125f611253611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d29190613667565b611dc1565b6001905092915050565b6112e9611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613274565b60405180910390fd5b600b548111156113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b19061370a565b60405180910390fd5b80600b819055507f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76600b546040516113f291906130fc565b60405180910390a150565b6013602052805f5260405f205f915054906101000a900460ff1681565b6014602052805f5260405f205f915054906101000a900460ff1681565b61143f611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613798565b60405180910390fd5b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f94223efa5e0ef633fcdce676def839a7ea220f7f45a1c693a4540846bc1ee14d60405160405180910390a380600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611601611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613274565b60405180910390fd5b600554600881905550600554600781905550565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6116ef611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61183d611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613274565b60405180910390fd5b60646005546118d89190613637565b8110156118e3575f80fd5b8060078190555050565b600e5f9054906101000a900460ff1681565b6015602052805f5260405f205f915054906101000a900460ff1681565b600e60159054906101000a900460ff1681565b5f80600d54600b548461194291906134a0565b61194c9190613637565b905080915050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461198d90613327565b80601f01602080910402602001604051908101604052809291908181526020018280546119b990613327565b8015611a045780601f106119db57610100808354040283529160200191611a04565b820191905f5260205f20905b8154815290600101906020018083116119e757829003601f168201915b5050505050905090565b600c5481565b5f611ab1611a20611dba565b848460125f611a2d611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aac91906135d7565b611dc1565b6001905092915050565b5f611ace611ac7611dba565b8484611f84565b6001905092915050565b60085481565b600b5481565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b60075481565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095f9054906101000a900460ff1681565b5f80600d54600c5484611bbd91906134a0565b611bc79190613637565b905080915050919050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bff611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613826565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e269061388e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906138f6565b60405180910390fd5b8060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f7791906130fc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe99061395e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612057906139c6565b60405180910390fd5b5f81116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613a54565b60405180910390fd5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612140575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122885760075481111561218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190613abc565b60405180910390fd5b60095f9054906101000a900460ff16612287578273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561224757508173ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d90613b24565b60405180910390fd5b5b5b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661232f57600854816122e3846116a1565b6122ed9190613667565b111561232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613b8c565b60405180910390fd5b5b612339838361240c565b5f6001905060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123d9575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806123f15750600e60159054906101000a900460ff16155b156123fa575f90505b612406848484846125f8565b50505050565b5f612416306116a1565b90506006548110158015612477575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561248e5750600e5f9054906101000a900460ff165b801561251e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561251c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b155b156125f35761255130600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654611dc1565b61257e600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654612b7f565b5f4790505f8111156125f157600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125ef573d5f803e3d5ffd5b505b505b505050565b8373ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156126515750805b156127fb575f806126618461192f565b9150818461266f91906135d7565b90508360115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ba91906135d7565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127449190613667565b60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e291906130fc565b60405180910390a36127f48683612d5a565b5050612b79565b8273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156128545750805b156129fe575f61286383611baa565b90505f818461287291906135d7565b90508360115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128bd91906135d7565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129479190613667565b60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129e591906130fc565b60405180910390a36129f78683612d5a565b5050612b78565b8160115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a4791906135d7565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad19190613667565b60115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6f91906130fc565b60405180910390a35b5b50505050565b5f8290505f600267ffffffffffffffff811115612b9f57612b9e613baa565b5b604051908082528060200260200182016040528015612bcd5781602001602082028036833780820191505090505b50905030815f81518110612be457612be3613bd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c8b9190613c18565b81600181518110612c9f57612c9e613bd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947845f843061012c42612d079190613667565b6040518663ffffffff1660e01b8152600401612d27959493929190613d33565b5f604051808303815f87803b158015612d3e575f80fd5b505af1158015612d50573d5f803e3d5ffd5b5050505050505050565b8060115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612da39190613667565b60115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e4191906130fc565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e84578082015181840152602081019050612e69565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ea982612e4d565b612eb38185612e57565b9350612ec3818560208601612e67565b612ecc81612e8f565b840191505092915050565b5f6020820190508181035f830152612eef8184612e9f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612f39612f34612f2f84612ef7565b612f16565b612ef7565b9050919050565b5f612f4a82612f1f565b9050919050565b5f612f5b82612f40565b9050919050565b612f6b81612f51565b82525050565b5f602082019050612f845f830184612f62565b92915050565b5f80fd5b5f612f9882612ef7565b9050919050565b612fa881612f8e565b8114612fb2575f80fd5b50565b5f81359050612fc381612f9f565b92915050565b5f819050919050565b612fdb81612fc9565b8114612fe5575f80fd5b50565b5f81359050612ff681612fd2565b92915050565b5f806040838503121561301257613011612f8a565b5b5f61301f85828601612fb5565b925050602061303085828601612fe8565b9150509250929050565b5f8115159050919050565b61304e8161303a565b82525050565b5f6020820190506130675f830184613045565b92915050565b6130768161303a565b8114613080575f80fd5b50565b5f813590506130918161306d565b92915050565b5f602082840312156130ac576130ab612f8a565b5b5f6130b984828501613083565b91505092915050565b5f602082840312156130d7576130d6612f8a565b5b5f6130e484828501612fe8565b91505092915050565b6130f681612fc9565b82525050565b5f60208201905061310f5f8301846130ed565b92915050565b5f805f6060848603121561312c5761312b612f8a565b5b5f61313986828701612fb5565b935050602061314a86828701612fb5565b925050604061315b86828701612fe8565b9150509250925092565b5f60ff82169050919050565b61317a81613165565b82525050565b5f6020820190506131935f830184613171565b92915050565b5f602082840312156131ae576131ad612f8a565b5b5f6131bb84828501612fb5565b91505092915050565b6131cd81612f8e565b82525050565b5f6020820190506131e65f8301846131c4565b92915050565b5f806040838503121561320257613201612f8a565b5b5f61320f85828601612fb5565b925050602061322085828601612fb5565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e602083612e57565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f6132c6600f83612e57565b91506132d182613292565b602082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333e57607f821691505b602082108103613351576133506132fa565b5b50919050565b7f56616c7565206d75737420626520646966666572656e742066726f6d206375725f8201527f72656e7420737461746500000000000000000000000000000000000000000000602082015250565b5f6133b1602a83612e57565b91506133bc82613357565b604082019050919050565b5f6020820190508181035f8301526133de816133a5565b9050919050565b7f6d696e207377617020616d6f756e742073686f756c64206265206772656174655f8201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b5f61343f602b83612e57565b915061344a826133e5565b604082019050919050565b5f6020820190508181035f83015261346c81613433565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134aa82612fc9565b91506134b583612fc9565b92508282026134c381612fc9565b915082820484148315176134da576134d9613473565b5b5092915050565b7f53656c6c206665652063616e2774206265206d6f7265207468616e20637572725f8201527f656e74206665652e000000000000000000000000000000000000000000000000602082015250565b5f61353b602883612e57565b9150613546826134e1565b604082019050919050565b5f6020820190508181035f8301526135688161352f565b9050919050565b7f496e76616c696420416d6f756e740000000000000000000000000000000000005f82015250565b5f6135a3600e83612e57565b91506135ae8261356f565b602082019050919050565b5f6020820190508181035f8301526135d081613597565b9050919050565b5f6135e182612fc9565b91506135ec83612fc9565b925082820390508181111561360457613603613473565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61364182612fc9565b915061364c83612fc9565b92508261365c5761365b61360a565b5b828204905092915050565b5f61367182612fc9565b915061367c83612fc9565b925082820190508082111561369457613693613473565b5b92915050565b7f427579206665652063616e2774206265206d6f7265207468616e2063757272655f8201527f6e74206665652e00000000000000000000000000000000000000000000000000602082015250565b5f6136f4602783612e57565b91506136ff8261369a565b604082019050919050565b5f6020820190508181035f830152613721816136e8565b9050919050565b7f4f776e61626c653a206e657720666565526563656976657220697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f613782602c83612e57565b915061378d82613728565b604082019050919050565b5f6020820190508181035f8301526137af81613776565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613810602683612e57565b915061381b826137b6565b604082019050919050565b5f6020820190508181035f83015261383d81613804565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613878601d83612e57565b915061388382613844565b602082019050919050565b5f6020820190508181035f8301526138a58161386c565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f6138e0601b83612e57565b91506138eb826138ac565b602082019050919050565b5f6020820190508181035f83015261390d816138d4565b9050919050565b7f54616e736665722066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613948601d83612e57565b915061395382613914565b602082019050919050565b5f6020820190508181035f8301526139758161393c565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6139b0601c83612e57565b91506139bb8261397c565b602082019050919050565b5f6020820190508181035f8301526139dd816139a4565b9050919050565b7f20416d6f756e74206d7573742062652067726561746572207468616e207a65725f8201527f6f00000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a3e602183612e57565b9150613a49826139e4565b604082019050919050565b5f6020820190508181035f830152613a6b81613a32565b9050919050565b7f4d61782074786e206c696d6974206578636565647300000000000000000000005f82015250565b5f613aa6601583612e57565b9150613ab182613a72565b602082019050919050565b5f6020820190508181035f830152613ad381613a9a565b9050919050565b7f54726164696e672069732064697361626c6500000000000000000000000000005f82015250565b5f613b0e601283612e57565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b7f4d61782057616c6c6574206c696d6974206578636565647300000000000000005f82015250565b5f613b76601883612e57565b9150613b8182613b42565b602082019050919050565b5f6020820190508181035f830152613ba381613b6a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c1281612f9f565b92915050565b5f60208284031215613c2d57613c2c612f8a565b5b5f613c3a84828501613c04565b91505092915050565b5f819050919050565b5f613c66613c61613c5c84613c43565b612f16565b612fc9565b9050919050565b613c7681613c4c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cae81612f8e565b82525050565b5f613cbf8383613ca5565b60208301905092915050565b5f602082019050919050565b5f613ce182613c7c565b613ceb8185613c86565b9350613cf683613c96565b805f5b83811015613d26578151613d0d8882613cb4565b9750613d1883613ccb565b925050600181019050613cf9565b5085935050505092915050565b5f60a082019050613d465f8301886130ed565b613d536020830187613c6d565b8181036040830152613d658186613cd7565b9050613d7460608301856131c4565b613d8160808301846130ed565b969550505050505056fea2646970667358221220f03b334603277bca7b3a663fbb10d2ba60f8e40977ea72d4e45ca7aa6c8728e064736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000084595161401484a00000000000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000054b40b1f852bda000000000000000000000000000009808f392528dc9fa537d8fad6dfb0508bad15de60000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000000000000000000000000000000000000000005545745455400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055457454554000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610254575f3560e01c806374010ece11610138578063aa4bde28116100b5578063dd62ed3e11610079578063dd62ed3e146108af578063ec44acf2146108eb578063ede50eb814610915578063f242ab4114610951578063f2fde38b1461097b578063fe6f1b05146109a35761025b565b8063aa4bde28146107dd578063ab4ebc1e14610807578063b3f0067414610831578063bf56b3711461085b578063cf46f24c146108855761025b565b80638da5cb5b116100fc5780638da5cb5b146106e757806395d89b41146107115780639c0b9d741461073b578063a457c2d714610765578063a9059cbb146107a15761025b565b806374010ece146105f357806379777b4e1461061b57806386cb8fb114610645578063879dd3c5146106815780638bae9480146106ab5761025b565b806327a14fc2116101d15780635342acb4116101955780635342acb4146104eb578063540b8a271461052757806366718524146105635780636fd0cfb31461058b57806370a08231146105a1578063715018a6146105dd5761025b565b806327a14fc21461040b578063313ce56714610433578063338246e21461045d5780633950935114610487578063436d3340146104c35761025b565b80630ce5fd36116102185780630ce5fd361461032d57806312185a391461035557806318160ddd1461037d5780631e9b197e146103a757806323b872dd146103cf5761025b565b806301339c211461025f57806306fdde03146102755780630758d9241461029f578063095ea7b3146102c95780630a2d140c146103055761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109cd565b005b348015610280575f80fd5b50610289610ad3565b6040516102969190612ed7565b60405180910390f35b3480156102aa575f80fd5b506102b3610b63565b6040516102c09190612f71565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea9190612ffc565b610b88565b6040516102fc9190613054565b60405180910390f35b348015610310575f80fd5b5061032b60048036038101906103269190613097565b610ba5565b005b348015610338575f80fd5b50610353600480360381019061034e91906130c2565b610ce0565b005b348015610360575f80fd5b5061037b600480360381019061037691906130c2565b610e0c565b005b348015610388575f80fd5b50610391610f28565b60405161039e91906130fc565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c891906130c2565b610f31565b005b3480156103da575f80fd5b506103f560048036038101906103f09190613115565b6110b4565b6040516104029190613054565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906130c2565b611167565b005b34801561043e575f80fd5b5061044761121f565b6040516104549190613180565b60405180910390f35b348015610468575f80fd5b50610471611234565b60405161047e91906130fc565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a89190612ffc565b61123a565b6040516104ba9190613054565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e491906130c2565b6112e1565b005b3480156104f6575f80fd5b50610511600480360381019061050c9190613199565b6113fd565b60405161051e9190613054565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190613199565b61141a565b60405161055a9190613054565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190613199565b611437565b005b348015610596575f80fd5b5061059f6115f9565b005b3480156105ac575f80fd5b506105c760048036038101906105c29190613199565b6116a1565b6040516105d491906130fc565b60405180910390f35b3480156105e8575f80fd5b506105f16116e7565b005b3480156105fe575f80fd5b50610619600480360381019061061491906130c2565b611835565b005b348015610626575f80fd5b5061062f6118ed565b60405161063c9190613054565b60405180910390f35b348015610650575f80fd5b5061066b60048036038101906106669190613199565b6118ff565b6040516106789190613054565b60405180910390f35b34801561068c575f80fd5b5061069561191c565b6040516106a29190613054565b60405180910390f35b3480156106b6575f80fd5b506106d160048036038101906106cc91906130c2565b61192f565b6040516106de91906130fc565b60405180910390f35b3480156106f2575f80fd5b506106fb611957565b60405161070891906131d3565b60405180910390f35b34801561071c575f80fd5b5061072561197e565b6040516107329190612ed7565b60405180910390f35b348015610746575f80fd5b5061074f611a0e565b60405161075c91906130fc565b60405180910390f35b348015610770575f80fd5b5061078b60048036038101906107869190612ffc565b611a14565b6040516107989190613054565b60405180910390f35b3480156107ac575f80fd5b506107c760048036038101906107c29190612ffc565b611abb565b6040516107d49190613054565b60405180910390f35b3480156107e8575f80fd5b506107f1611ad8565b6040516107fe91906130fc565b60405180910390f35b348015610812575f80fd5b5061081b611ade565b60405161082891906130fc565b60405180910390f35b34801561083c575f80fd5b50610845611ae4565b60405161085291906131d3565b60405180910390f35b348015610866575f80fd5b5061086f611b0a565b60405161087c91906130fc565b60405180910390f35b348015610890575f80fd5b50610899611b10565b6040516108a691906130fc565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d091906131ec565b611b16565b6040516108e291906130fc565b60405180910390f35b3480156108f6575f80fd5b506108ff611b98565b60405161090c9190613054565b60405180910390f35b348015610920575f80fd5b5061093b600480360381019061093691906130c2565b611baa565b60405161094891906130fc565b60405180910390f35b34801561095c575f80fd5b50610965611bd2565b60405161097291906131d3565b60405180910390f35b348015610986575f80fd5b506109a1600480360381019061099c9190613199565b611bf7565b005b3480156109ae575f80fd5b506109b7611db4565b6040516109c491906130fc565b60405180910390f35b6109d5611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5890613274565b60405180910390fd5b60095f9054906101000a900460ff1615610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa7906132dc565b60405180910390fd5b600160095f6101000a81548160ff02191690831515021790555042600a81905550565b606060028054610ae290613327565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0e90613327565b8015610b595780601f10610b3057610100808354040283529160200191610b59565b820191905f5260205f20905b815481529060010190602001808311610b3c57829003601f168201915b5050505050905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b9b610b94611dba565b8484611dc1565b6001905092915050565b610bad611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090613274565b60405180910390fd5b600e5f9054906101000a900460ff16151581151503610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c84906133c7565b60405180910390fd5b80600e5f6101000a81548160ff0219169083151502179055507f0ff846c521f32cbf9b5885504ef4a918e437ceb78c26a4b3bdde29162fc36dd381604051610cd59190613054565b60405180910390a150565b610ce8611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90613274565b60405180910390fd5b5f8111610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90613455565b60405180910390fd5b670de0b6b3a764000081610dca91906134a0565b6006819055507f2e6bb606f8e40581f3aead29e6b2d80455a891e6b1a8cee3624f74a93f015593600654604051610e0191906130fc565b60405180910390a150565b610e14611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790613274565b60405180910390fd5b600c54811115610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90613551565b60405180910390fd5b80600c819055507f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76600c54604051610f1d91906130fc565b60405180910390a150565b5f600554905090565b610f39611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90613274565b60405180910390fd5b80471015611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906135b9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561104b573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a991906130fc565b60405180910390a350565b5f6110c0848484611f84565b61115c846110cc611dba565b8460125f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f611113611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461115791906135d7565b611dc1565b600190509392505050565b61116f611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290613274565b60405180910390fd5b606460055461120a9190613637565b811015611215575f80fd5b8060088190555050565b5f60045f9054906101000a900460ff16905090565b60065481565b5f6112d7611246611dba565b848460125f611253611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d29190613667565b611dc1565b6001905092915050565b6112e9611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613274565b60405180910390fd5b600b548111156113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b19061370a565b60405180910390fd5b80600b819055507f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76600b546040516113f291906130fc565b60405180910390a150565b6013602052805f5260405f205f915054906101000a900460ff1681565b6014602052805f5260405f205f915054906101000a900460ff1681565b61143f611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613798565b60405180910390fd5b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f94223efa5e0ef633fcdce676def839a7ea220f7f45a1c693a4540846bc1ee14d60405160405180910390a380600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611601611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613274565b60405180910390fd5b600554600881905550600554600781905550565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6116ef611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61183d611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613274565b60405180910390fd5b60646005546118d89190613637565b8110156118e3575f80fd5b8060078190555050565b600e5f9054906101000a900460ff1681565b6015602052805f5260405f205f915054906101000a900460ff1681565b600e60159054906101000a900460ff1681565b5f80600d54600b548461194291906134a0565b61194c9190613637565b905080915050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461198d90613327565b80601f01602080910402602001604051908101604052809291908181526020018280546119b990613327565b8015611a045780601f106119db57610100808354040283529160200191611a04565b820191905f5260205f20905b8154815290600101906020018083116119e757829003601f168201915b5050505050905090565b600c5481565b5f611ab1611a20611dba565b848460125f611a2d611dba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aac91906135d7565b611dc1565b6001905092915050565b5f611ace611ac7611dba565b8484611f84565b6001905092915050565b60085481565b600b5481565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b60075481565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095f9054906101000a900460ff1681565b5f80600d54600c5484611bbd91906134a0565b611bc79190613637565b905080915050919050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bff611dba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8290613274565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613826565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e269061388e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906138f6565b60405180910390fd5b8060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f7791906130fc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe99061395e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612057906139c6565b60405180910390fd5b5f81116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613a54565b60405180910390fd5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612140575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122885760075481111561218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190613abc565b60405180910390fd5b60095f9054906101000a900460ff16612287578273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561224757508173ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d90613b24565b60405180910390fd5b5b5b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661232f57600854816122e3846116a1565b6122ed9190613667565b111561232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613b8c565b60405180910390fd5b5b612339838361240c565b5f6001905060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123d9575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806123f15750600e60159054906101000a900460ff16155b156123fa575f90505b612406848484846125f8565b50505050565b5f612416306116a1565b90506006548110158015612477575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561248e5750600e5f9054906101000a900460ff165b801561251e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561251c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b155b156125f35761255130600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654611dc1565b61257e600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654612b7f565b5f4790505f8111156125f157600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125ef573d5f803e3d5ffd5b505b505b505050565b8373ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156126515750805b156127fb575f806126618461192f565b9150818461266f91906135d7565b90508360115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ba91906135d7565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127449190613667565b60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e291906130fc565b60405180910390a36127f48683612d5a565b5050612b79565b8273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156128545750805b156129fe575f61286383611baa565b90505f818461287291906135d7565b90508360115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128bd91906135d7565b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129479190613667565b60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129e591906130fc565b60405180910390a36129f78683612d5a565b5050612b78565b8160115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a4791906135d7565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad19190613667565b60115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6f91906130fc565b60405180910390a35b5b50505050565b5f8290505f600267ffffffffffffffff811115612b9f57612b9e613baa565b5b604051908082528060200260200182016040528015612bcd5781602001602082028036833780820191505090505b50905030815f81518110612be457612be3613bd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c8b9190613c18565b81600181518110612c9f57612c9e613bd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947845f843061012c42612d079190613667565b6040518663ffffffff1660e01b8152600401612d27959493929190613d33565b5f604051808303815f87803b158015612d3e575f80fd5b505af1158015612d50573d5f803e3d5ffd5b5050505050505050565b8060115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612da39190613667565b60115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e4191906130fc565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e84578082015181840152602081019050612e69565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ea982612e4d565b612eb38185612e57565b9350612ec3818560208601612e67565b612ecc81612e8f565b840191505092915050565b5f6020820190508181035f830152612eef8184612e9f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612f39612f34612f2f84612ef7565b612f16565b612ef7565b9050919050565b5f612f4a82612f1f565b9050919050565b5f612f5b82612f40565b9050919050565b612f6b81612f51565b82525050565b5f602082019050612f845f830184612f62565b92915050565b5f80fd5b5f612f9882612ef7565b9050919050565b612fa881612f8e565b8114612fb2575f80fd5b50565b5f81359050612fc381612f9f565b92915050565b5f819050919050565b612fdb81612fc9565b8114612fe5575f80fd5b50565b5f81359050612ff681612fd2565b92915050565b5f806040838503121561301257613011612f8a565b5b5f61301f85828601612fb5565b925050602061303085828601612fe8565b9150509250929050565b5f8115159050919050565b61304e8161303a565b82525050565b5f6020820190506130675f830184613045565b92915050565b6130768161303a565b8114613080575f80fd5b50565b5f813590506130918161306d565b92915050565b5f602082840312156130ac576130ab612f8a565b5b5f6130b984828501613083565b91505092915050565b5f602082840312156130d7576130d6612f8a565b5b5f6130e484828501612fe8565b91505092915050565b6130f681612fc9565b82525050565b5f60208201905061310f5f8301846130ed565b92915050565b5f805f6060848603121561312c5761312b612f8a565b5b5f61313986828701612fb5565b935050602061314a86828701612fb5565b925050604061315b86828701612fe8565b9150509250925092565b5f60ff82169050919050565b61317a81613165565b82525050565b5f6020820190506131935f830184613171565b92915050565b5f602082840312156131ae576131ad612f8a565b5b5f6131bb84828501612fb5565b91505092915050565b6131cd81612f8e565b82525050565b5f6020820190506131e65f8301846131c4565b92915050565b5f806040838503121561320257613201612f8a565b5b5f61320f85828601612fb5565b925050602061322085828601612fb5565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e602083612e57565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f6132c6600f83612e57565b91506132d182613292565b602082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333e57607f821691505b602082108103613351576133506132fa565b5b50919050565b7f56616c7565206d75737420626520646966666572656e742066726f6d206375725f8201527f72656e7420737461746500000000000000000000000000000000000000000000602082015250565b5f6133b1602a83612e57565b91506133bc82613357565b604082019050919050565b5f6020820190508181035f8301526133de816133a5565b9050919050565b7f6d696e207377617020616d6f756e742073686f756c64206265206772656174655f8201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b5f61343f602b83612e57565b915061344a826133e5565b604082019050919050565b5f6020820190508181035f83015261346c81613433565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134aa82612fc9565b91506134b583612fc9565b92508282026134c381612fc9565b915082820484148315176134da576134d9613473565b5b5092915050565b7f53656c6c206665652063616e2774206265206d6f7265207468616e20637572725f8201527f656e74206665652e000000000000000000000000000000000000000000000000602082015250565b5f61353b602883612e57565b9150613546826134e1565b604082019050919050565b5f6020820190508181035f8301526135688161352f565b9050919050565b7f496e76616c696420416d6f756e740000000000000000000000000000000000005f82015250565b5f6135a3600e83612e57565b91506135ae8261356f565b602082019050919050565b5f6020820190508181035f8301526135d081613597565b9050919050565b5f6135e182612fc9565b91506135ec83612fc9565b925082820390508181111561360457613603613473565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61364182612fc9565b915061364c83612fc9565b92508261365c5761365b61360a565b5b828204905092915050565b5f61367182612fc9565b915061367c83612fc9565b925082820190508082111561369457613693613473565b5b92915050565b7f427579206665652063616e2774206265206d6f7265207468616e2063757272655f8201527f6e74206665652e00000000000000000000000000000000000000000000000000602082015250565b5f6136f4602783612e57565b91506136ff8261369a565b604082019050919050565b5f6020820190508181035f830152613721816136e8565b9050919050565b7f4f776e61626c653a206e657720666565526563656976657220697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f613782602c83612e57565b915061378d82613728565b604082019050919050565b5f6020820190508181035f8301526137af81613776565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613810602683612e57565b915061381b826137b6565b604082019050919050565b5f6020820190508181035f83015261383d81613804565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613878601d83612e57565b915061388382613844565b602082019050919050565b5f6020820190508181035f8301526138a58161386c565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f6138e0601b83612e57565b91506138eb826138ac565b602082019050919050565b5f6020820190508181035f83015261390d816138d4565b9050919050565b7f54616e736665722066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613948601d83612e57565b915061395382613914565b602082019050919050565b5f6020820190508181035f8301526139758161393c565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6139b0601c83612e57565b91506139bb8261397c565b602082019050919050565b5f6020820190508181035f8301526139dd816139a4565b9050919050565b7f20416d6f756e74206d7573742062652067726561746572207468616e207a65725f8201527f6f00000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a3e602183612e57565b9150613a49826139e4565b604082019050919050565b5f6020820190508181035f830152613a6b81613a32565b9050919050565b7f4d61782074786e206c696d6974206578636565647300000000000000000000005f82015250565b5f613aa6601583612e57565b9150613ab182613a72565b602082019050919050565b5f6020820190508181035f830152613ad381613a9a565b9050919050565b7f54726164696e672069732064697361626c6500000000000000000000000000005f82015250565b5f613b0e601283612e57565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b7f4d61782057616c6c6574206c696d6974206578636565647300000000000000005f82015250565b5f613b76601883612e57565b9150613b8182613b42565b602082019050919050565b5f6020820190508181035f830152613ba381613b6a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c1281612f9f565b92915050565b5f60208284031215613c2d57613c2c612f8a565b5b5f613c3a84828501613c04565b91505092915050565b5f819050919050565b5f613c66613c61613c5c84613c43565b612f16565b612fc9565b9050919050565b613c7681613c4c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cae81612f8e565b82525050565b5f613cbf8383613ca5565b60208301905092915050565b5f602082019050919050565b5f613ce182613c7c565b613ceb8185613c86565b9350613cf683613c96565b805f5b83811015613d26578151613d0d8882613cb4565b9750613d1883613ccb565b925050600181019050613cf9565b5085935050505092915050565b5f60a082019050613d465f8301886130ed565b613d536020830187613c6d565b8181036040830152613d658186613cd7565b9050613d7460608301856131c4565b613d8160808301846130ed565b969550505050505056fea2646970667358221220f03b334603277bca7b3a663fbb10d2ba60f8e40977ea72d4e45ca7aa6c8728e064736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000084595161401484a00000000000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000054b40b1f852bda000000000000000000000000000009808f392528dc9fa537d8fad6dfb0508bad15de60000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000000000000000000000000000000000000000005545745455400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055457454554000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : __name (string): TWEET
Arg [1] : __symbol (string): TWEET
Arg [2] : __supply (uint256): 10000000000000000000000000
Arg [3] : __maxTxnAmount (uint256): 10000000000000000000000
Arg [4] : __maxWalletAmount (uint256): 25000000000000000000000
Arg [5] : __feeReceiver (address): 0x9808f392528dc9fA537d8fad6dfB0508BaD15de6
Arg [6] : __router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [3] : 00000000000000000000000000000000000000000000021e19e0c9bab2400000
Arg [4] : 00000000000000000000000000000000000000000000054b40b1f852bda00000
Arg [5] : 0000000000000000000000009808f392528dc9fa537d8fad6dfb0508bad15de6
Arg [6] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 5457454554000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [10] : 5457454554000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
4204:12054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13129:156;;;;;;;;;;;;;:::i;:::-;;7322:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4848:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8210:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15440:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15199:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14899:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7599:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12878:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8404:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14299:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7508:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4401:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14640:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5105:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5161:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15856:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14461:145;;;;;;;;;;;;;:::i;:::-;;7707:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2774:157;;;;;;;;;;;;;:::i;:::-;;14143:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4686:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4789:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9370:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2560:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7413:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4605:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9062:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7834:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4470:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4567:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4740:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4533:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4436:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8034:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4507:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9542:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4912:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4644:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13129:156;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13186:7:::1;;;;;;;;;;;13185:8;13177:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;13234:4;13224:7;;:14;;;;;;;;;;;;;;;;;;13262:15;13249:10;:28;;;;13129:156::o:0;7322:83::-;7359:13;7392:5;7385:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7322:83;:::o;4848:27::-;;;;;;;;;;;;;:::o;8210:186::-;8310:4;8327:39;8336:12;:10;:12::i;:::-;8350:7;8359:6;8327:8;:39::i;:::-;8384:4;8377:11;;8210:186;;;;:::o;15440:369::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15617:26:::1;;;;;;;;;;;15607:36;;:6;:36;;::::0;15585:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15753:6;15724:26;;:35;;;;;;;;;;;;;;;;;;15775:26;15794:6;15775:26;;;;;;:::i;:::-;;;;;;;;15440:369:::0;:::o;15199:233::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15290:1:::1;15280:7;:11;15272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15376:4;15366:7;:14;;;;:::i;:::-;15350:13;:30;;;;15396:28;15410:13;;15396:28;;;;;;:::i;:::-;;;;;;;;15199:233:::0;:::o;14899:266::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15002:12:::1;;14991:7;:23;;14969:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;15108:7;15093:12;:22;;;;15133:24;15144:12;;15133:24;;;;;;:::i;:::-;;;;;;;;14899:266:::0;:::o;7599:100::-;7652:7;7679:12;;7672:19;;7599:100;:::o;12878:243::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12977:7:::1;12952:21;:32;;12944:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13022:10;13014:28;;:37;13043:7;13014:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13093:10;13069:44;;13086:4;13069:44;;;13105:7;13069:44;;;;;;:::i;:::-;;;;;;;;12878:243:::0;:::o;8404:350::-;8536:4;8553:36;8563:6;8571:9;8582:6;8553:9;:36::i;:::-;8600:124;8623:6;8644:12;:10;:12::i;:::-;8707:6;8671:11;:19;8683:6;8671:19;;;;;;;;;;;;;;;:33;8691:12;:10;:12::i;:::-;8671:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8600:8;:124::i;:::-;8742:4;8735:11;;8404:350;;;;;:::o;14299:154::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14406:3:::1;14391:12;;:18;;;;:::i;:::-;14381:6;:28;;14373:37;;;::::0;::::1;;14439:6;14421:15;:24;;;;14299:154:::0;:::o;7508:83::-;7549:5;7574:9;;;;;;;;;;;7567:16;;7508:83;:::o;4401:28::-;;;;:::o;8762:292::-;8875:4;8892:132;8915:12;:10;:12::i;:::-;8942:7;9002:10;8964:11;:25;8976:12;:10;:12::i;:::-;8964:25;;;;;;;;;;;;;;;:34;8990:7;8964:34;;;;;;;;;;;;;;;;:49;;;;:::i;:::-;8892:8;:132::i;:::-;9042:4;9035:11;;8762:292;;;;:::o;14640:224::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14728:11:::1;;14717:7;:22;;14709:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14808:7;14794:11;:21;;;;14833:23;14844:11;;14833:23;;;;;;:::i;:::-;;;;;;;;14640:224:::0;:::o;5105:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5161:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;15856:311::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15983:1:::1;15957:28;;:14;:28;;::::0;15935:122:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16108:11;;;;;;;;;;;16073:47;;16092:14;16073:47;;;;;;;;;;;;16145:14;16131:11;;:28;;;;;;;;;;;;;;;;;;15856:311:::0;:::o;14461:145::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14548:12:::1;;14530:15;:30;;;;14586:12;;14571;:27;;;;14461:145::o:0;7707:119::-;7773:7;7800:9;:18;7810:7;7800:18;;;;;;;;;;;;;;;;7793:25;;7707:119;;;:::o;2774:157::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2881:1:::1;2844:40;;2865:6;::::0;::::1;;;;;;;;2844:40;;;;;;;;;;;;2920:1;2895:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2774:157::o:0;14143:148::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14247:3:::1;14232:12;;:18;;;;:::i;:::-;14222:6;:28;;14214:37;;;::::0;::::1;;14277:6;14262:12;:21;;;;14143:148:::0;:::o;4686:45::-;;;;;;;;;;;;;:::o;5212:::-;;;;;;;;;;;;;;;;;;;;;;:::o;4789:29::-;;;;;;;;;;;;;:::o;9370:164::-;9432:7;9452:11;9491:14;;9476:11;;9467:6;:20;;;;:::i;:::-;9466:39;;;;:::i;:::-;9452:53;;9523:3;9516:10;;;9370:164;;;:::o;2560:79::-;2598:7;2625:6;;;;;;;;;;;2618:13;;2560:79;:::o;7413:87::-;7452:13;7485:7;7478:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:87;:::o;4605:32::-;;;;:::o;9062:300::-;9180:4;9197:135;9220:12;:10;:12::i;:::-;9247:7;9306:15;9269:11;:25;9281:12;:10;:12::i;:::-;9269:25;;;;;;;;;;;;;;;:34;9295:7;9269:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;9197:8;:135::i;:::-;9350:4;9343:11;;9062:300;;;;:::o;7834:192::-;7937:4;7954:42;7964:12;:10;:12::i;:::-;7978:9;7989:6;7954:9;:42::i;:::-;8014:4;8007:11;;7834:192;;;;:::o;4470:30::-;;;;:::o;4567:31::-;;;;:::o;4740:26::-;;;;;;;;;;;;;:::o;4533:25::-;;;;:::o;4436:27::-;;;;:::o;8034:168::-;8140:7;8167:11;:18;8179:5;8167:18;;;;;;;;;;;;;;;:27;8186:7;8167:27;;;;;;;;;;;;;;;;8160:34;;8034:168;;;;:::o;4507:19::-;;;;;;;;;;;;;:::o;9542:166::-;9605:7;9625:11;9665:14;;9649:12;;9640:6;:21;;;;:::i;:::-;9639:40;;;;:::i;:::-;9625:54;;9697:3;9690:10;;;9542:166;;;:::o;4912:22::-;;;;;;;;;;;;;:::o;2939:281::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3062:1:::1;3042:22;;:8;:22;;::::0;3020:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3175:8;3146:38;;3167:6;::::0;::::1;;;;;;;;3146:38;;;;;;;;;;;;3204:8;3195:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2939:281:::0;:::o;4644:35::-;;;;:::o;1894:115::-;1947:15;1990:10;1975:26;;1894:115;:::o;9716:323::-;9826:1;9809:19;;:5;:19;;;9801:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9900:1;9881:21;;:7;:21;;;9873:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9977:6;9947:11;:18;9959:5;9947:18;;;;;;;;;;;;;;;:27;9966:7;9947:27;;;;;;;;;;;;;;;:36;;;;10015:7;9999:32;;10008:5;9999:32;;;10024:6;9999:32;;;;;;:::i;:::-;;;;;;;;9716:323;;;:::o;10047:1275::-;10151:1;10135:18;;:4;:18;;;10127:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10220:1;10206:16;;:2;:16;;;10198:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10283:1;10274:6;:10;10266:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10338:12;:18;10351:4;10338:18;;;;;;;;;;;;;;;;;;;;;;;;;10337:19;:40;;;;;10361:12;:16;10374:2;10361:16;;;;;;;;;;;;;;;;;;;;;;;;;10360:17;10337:40;10333:301;;;10412:12;;10402:6;:22;;10394:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10516:7;;;;;;;;;;;10511:112;;10563:4;10552:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;10582:2;10571:13;;:7;;;;;;;;;;;:13;;;;10552:32;10544:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10511:112;10333:301;10651:13;:17;10665:2;10651:17;;;;;;;;;;;;;;;;;;;;;;;;;10646:178;;10737:15;;10727:6;10711:13;10721:2;10711:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10685:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;10646:178;10865:30;10886:4;10892:2;10865:20;:30::i;:::-;10969:12;10984:4;10969:19;;11088:17;:23;11106:4;11088:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;11115:17;:21;11133:2;11115:21;;;;;;;;;;;;;;;;;;;;;;;;;11088:48;:63;;;;11141:10;;;;;;;;;;;11140:11;11088:63;11084:111;;;11178:5;11168:15;;11084:111;11273:41;11288:4;11294:2;11298:6;11306:7;11273:14;:41::i;:::-;10116:1206;10047:1275;;;:::o;13323:812::-;13398:28;13429:24;13447:4;13429:9;:24::i;:::-;13398:55;;13508:13;;13484:20;:37;;:69;;;;;13546:7;;;;;;;;;;;13538:15;;:4;:15;;;;13484:69;:112;;;;;13570:26;;;;;;;;;;;13484:112;:170;;;;;13631:4;13615:21;;:4;:21;;;:38;;;;;13646:7;;;;;;;;;;;13640:13;;:2;:13;;;13615:38;13613:41;13484:170;13466:662;;;13729:58;13746:4;13761:9;;;;;;;;;;;13773:13;;13729:8;:58::i;:::-;13844:57;13875:9;;;;;;;;;;;13887:13;;13844:22;:57::i;:::-;13916:23;13942:21;13916:47;;14050:1;14032:15;:19;14028:88;;;14078:11;;;;;;;;;;;14070:29;;:46;14100:15;14070:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14028:88;13681:447;13466:662;13387:748;13323:812;;:::o;11407:1230::-;11573:6;11562:17;;:7;;;;;;;;;;;:17;;;:28;;;;;11583:7;11562:28;11558:1072;;;11607:14;11636:23;11683;11699:6;11683:15;:23::i;:::-;11674:32;;11748:6;11739;:15;;;;:::i;:::-;11721:33;;11811:6;11791:9;:17;11801:6;11791:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;11771:9;:17;11781:6;11771:17;;;;;;;;;;;;;;;:46;;;;11878:15;11855:9;:20;11865:9;11855:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;11832:9;:20;11842:9;11832:20;;;;;;;;;;;;;;;:61;;;;11930:9;11913:44;;11922:6;11913:44;;;11941:15;11913:44;;;;;;:::i;:::-;;;;;;;;11974:28;11987:6;11995;11974:12;:28::i;:::-;11592:422;;11558:1072;;;12035:9;12024:20;;:7;;;;;;;;;;;:20;;;:31;;;;;12048:7;12024:31;12020:610;;;12072:14;12089:24;12106:6;12089:16;:24::i;:::-;12072:41;;12128:23;12163:6;12154;:15;;;;:::i;:::-;12128:41;;12224:6;12204:9;:17;12214:6;12204:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12184:9;:17;12194:6;12184:17;;;;;;;;;;;;;;;:46;;;;12291:15;12268:9;:20;12278:9;12268:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;12245:9;:20;12255:9;12245:20;;;;;;;;;;;;;;;:61;;;;12343:9;12326:44;;12335:6;12326:44;;;12354:15;12326:44;;;;;;:::i;:::-;;;;;;;;12387:28;12400:6;12408;12387:12;:28::i;:::-;12057:370;;12020:610;;;12488:6;12468:9;:17;12478:6;12468:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12448:9;:17;12458:6;12448:17;;;;;;;;;;;;;;;:46;;;;12556:6;12532:9;:20;12542:9;12532:20;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;12509:9;:20;12519:9;12509:20;;;;;;;;;;;;;;;:54;;;;12600:9;12583:35;;12592:6;12583:35;;;12611:6;12583:35;;;;;;:::i;:::-;;;;;;;;12020:610;11558:1072;11407:1230;;;;:::o;16304:614::-;16419:20;16453:13;16419:48;;16536:21;16574:1;16560:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16536:40;;16605:4;16587;16592:1;16587:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16631:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16621:4;16626:1;16621:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16686:9;:60;;;16761:11;16787:1;16831:4;16858;16896:3;16878:15;:21;;;;:::i;:::-;16686:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16408:510;;16304:614;;:::o;12645:198::-;12772:6;12745:9;:24;12763:4;12745:24;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;12718:9;:24;12736:4;12718:24;;;;;;;;;;;;;;;:60;;;;12821:4;12796:39;;12805:6;12796:39;;;12828:6;12796:39;;;;;;:::i;:::-;;;;;;;;12645:198;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:60::-;1509:3;1530:5;1523:12;;1481:60;;;:::o;1547:142::-;1597:9;1630:53;1648:34;1657:24;1675:5;1657:24;:::i;:::-;1648:34;:::i;:::-;1630:53;:::i;:::-;1617:66;;1547:142;;;:::o;1695:126::-;1745:9;1778:37;1809:5;1778:37;:::i;:::-;1765:50;;1695:126;;;:::o;1827:144::-;1895:9;1928:37;1959:5;1928:37;:::i;:::-;1915:50;;1827:144;;;:::o;1977:167::-;2082:55;2131:5;2082:55;:::i;:::-;2077:3;2070:68;1977:167;;:::o;2150:258::-;2261:4;2299:2;2288:9;2284:18;2276:26;;2312:89;2398:1;2387:9;2383:17;2374:6;2312:89;:::i;:::-;2150:258;;;;:::o;2495:117::-;2604:1;2601;2594:12;2741:96;2778:7;2807:24;2825:5;2807:24;:::i;:::-;2796:35;;2741:96;;;:::o;2843:122::-;2916:24;2934:5;2916:24;:::i;:::-;2909:5;2906:35;2896:63;;2955:1;2952;2945:12;2896:63;2843:122;:::o;2971:139::-;3017:5;3055:6;3042:20;3033:29;;3071:33;3098:5;3071:33;:::i;:::-;2971:139;;;;:::o;3116:77::-;3153:7;3182:5;3171:16;;3116:77;;;:::o;3199:122::-;3272:24;3290:5;3272:24;:::i;:::-;3265:5;3262:35;3252:63;;3311:1;3308;3301:12;3252:63;3199:122;:::o;3327:139::-;3373:5;3411:6;3398:20;3389:29;;3427:33;3454:5;3427:33;:::i;:::-;3327:139;;;;:::o;3472:474::-;3540:6;3548;3597:2;3585:9;3576:7;3572:23;3568:32;3565:119;;;3603:79;;:::i;:::-;3565:119;3723:1;3748:53;3793:7;3784:6;3773:9;3769:22;3748:53;:::i;:::-;3738:63;;3694:117;3850:2;3876:53;3921:7;3912:6;3901:9;3897:22;3876:53;:::i;:::-;3866:63;;3821:118;3472:474;;;;;:::o;3952:90::-;3986:7;4029:5;4022:13;4015:21;4004:32;;3952:90;;;:::o;4048:109::-;4129:21;4144:5;4129:21;:::i;:::-;4124:3;4117:34;4048:109;;:::o;4163:210::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:65;4363:1;4352:9;4348:17;4339:6;4301:65;:::i;:::-;4163:210;;;;:::o;4379:116::-;4449:21;4464:5;4449:21;:::i;:::-;4442:5;4439:32;4429:60;;4485:1;4482;4475:12;4429:60;4379:116;:::o;4501:133::-;4544:5;4582:6;4569:20;4560:29;;4598:30;4622:5;4598:30;:::i;:::-;4501:133;;;;:::o;4640:323::-;4696:6;4745:2;4733:9;4724:7;4720:23;4716:32;4713:119;;;4751:79;;:::i;:::-;4713:119;4871:1;4896:50;4938:7;4929:6;4918:9;4914:22;4896:50;:::i;:::-;4886:60;;4842:114;4640:323;;;;:::o;4969:329::-;5028:6;5077:2;5065:9;5056:7;5052:23;5048:32;5045:119;;;5083:79;;:::i;:::-;5045:119;5203:1;5228:53;5273:7;5264:6;5253:9;5249:22;5228:53;:::i;:::-;5218:63;;5174:117;4969:329;;;;:::o;5304:118::-;5391:24;5409:5;5391:24;:::i;:::-;5386:3;5379:37;5304:118;;:::o;5428:222::-;5521:4;5559:2;5548:9;5544:18;5536:26;;5572:71;5640:1;5629:9;5625:17;5616:6;5572:71;:::i;:::-;5428:222;;;;:::o;5656:619::-;5733:6;5741;5749;5798:2;5786:9;5777:7;5773:23;5769:32;5766:119;;;5804:79;;:::i;:::-;5766:119;5924:1;5949:53;5994:7;5985:6;5974:9;5970:22;5949:53;:::i;:::-;5939:63;;5895:117;6051:2;6077:53;6122:7;6113:6;6102:9;6098:22;6077:53;:::i;:::-;6067:63;;6022:118;6179:2;6205:53;6250:7;6241:6;6230:9;6226:22;6205:53;:::i;:::-;6195:63;;6150:118;5656:619;;;;;:::o;6281:86::-;6316:7;6356:4;6349:5;6345:16;6334:27;;6281:86;;;:::o;6373:112::-;6456:22;6472:5;6456:22;:::i;:::-;6451:3;6444:35;6373:112;;:::o;6491:214::-;6580:4;6618:2;6607:9;6603:18;6595:26;;6631:67;6695:1;6684:9;6680:17;6671:6;6631:67;:::i;:::-;6491:214;;;;:::o;6711:329::-;6770:6;6819:2;6807:9;6798:7;6794:23;6790:32;6787:119;;;6825:79;;:::i;:::-;6787:119;6945:1;6970:53;7015:7;7006:6;6995:9;6991:22;6970:53;:::i;:::-;6960:63;;6916:117;6711:329;;;;:::o;7046:118::-;7133:24;7151:5;7133:24;:::i;:::-;7128:3;7121:37;7046:118;;:::o;7170:222::-;7263:4;7301:2;7290:9;7286:18;7278:26;;7314:71;7382:1;7371:9;7367:17;7358:6;7314:71;:::i;:::-;7170:222;;;;:::o;7398:474::-;7466:6;7474;7523:2;7511:9;7502:7;7498:23;7494:32;7491:119;;;7529:79;;:::i;:::-;7491:119;7649:1;7674:53;7719:7;7710:6;7699:9;7695:22;7674:53;:::i;:::-;7664:63;;7620:117;7776:2;7802:53;7847:7;7838:6;7827:9;7823:22;7802:53;:::i;:::-;7792:63;;7747:118;7398:474;;;;;:::o;7878:182::-;8018:34;8014:1;8006:6;8002:14;7995:58;7878:182;:::o;8066:366::-;8208:3;8229:67;8293:2;8288:3;8229:67;:::i;:::-;8222:74;;8305:93;8394:3;8305:93;:::i;:::-;8423:2;8418:3;8414:12;8407:19;;8066:366;;;:::o;8438:419::-;8604:4;8642:2;8631:9;8627:18;8619:26;;8691:9;8685:4;8681:20;8677:1;8666:9;8662:17;8655:47;8719:131;8845:4;8719:131;:::i;:::-;8711:139;;8438:419;;;:::o;8863:165::-;9003:17;8999:1;8991:6;8987:14;8980:41;8863:165;:::o;9034:366::-;9176:3;9197:67;9261:2;9256:3;9197:67;:::i;:::-;9190:74;;9273:93;9362:3;9273:93;:::i;:::-;9391:2;9386:3;9382:12;9375:19;;9034:366;;;:::o;9406:419::-;9572:4;9610:2;9599:9;9595:18;9587:26;;9659:9;9653:4;9649:20;9645:1;9634:9;9630:17;9623:47;9687:131;9813:4;9687:131;:::i;:::-;9679:139;;9406:419;;;:::o;9831:180::-;9879:77;9876:1;9869:88;9976:4;9973:1;9966:15;10000:4;9997:1;9990:15;10017:320;10061:6;10098:1;10092:4;10088:12;10078:22;;10145:1;10139:4;10135:12;10166:18;10156:81;;10222:4;10214:6;10210:17;10200:27;;10156:81;10284:2;10276:6;10273:14;10253:18;10250:38;10247:84;;10303:18;;:::i;:::-;10247:84;10068:269;10017:320;;;:::o;10343:229::-;10483:34;10479:1;10471:6;10467:14;10460:58;10552:12;10547:2;10539:6;10535:15;10528:37;10343:229;:::o;10578:366::-;10720:3;10741:67;10805:2;10800:3;10741:67;:::i;:::-;10734:74;;10817:93;10906:3;10817:93;:::i;:::-;10935:2;10930:3;10926:12;10919:19;;10578:366;;;:::o;10950:419::-;11116:4;11154:2;11143:9;11139:18;11131:26;;11203:9;11197:4;11193:20;11189:1;11178:9;11174:17;11167:47;11231:131;11357:4;11231:131;:::i;:::-;11223:139;;10950:419;;;:::o;11375:230::-;11515:34;11511:1;11503:6;11499:14;11492:58;11584:13;11579:2;11571:6;11567:15;11560:38;11375:230;:::o;11611:366::-;11753:3;11774:67;11838:2;11833:3;11774:67;:::i;:::-;11767:74;;11850:93;11939:3;11850:93;:::i;:::-;11968:2;11963:3;11959:12;11952:19;;11611:366;;;:::o;11983:419::-;12149:4;12187:2;12176:9;12172:18;12164:26;;12236:9;12230:4;12226:20;12222:1;12211:9;12207:17;12200:47;12264:131;12390:4;12264:131;:::i;:::-;12256:139;;11983:419;;;:::o;12408:180::-;12456:77;12453:1;12446:88;12553:4;12550:1;12543:15;12577:4;12574:1;12567:15;12594:410;12634:7;12657:20;12675:1;12657:20;:::i;:::-;12652:25;;12691:20;12709:1;12691:20;:::i;:::-;12686:25;;12746:1;12743;12739:9;12768:30;12786:11;12768:30;:::i;:::-;12757:41;;12947:1;12938:7;12934:15;12931:1;12928:22;12908:1;12901:9;12881:83;12858:139;;12977:18;;:::i;:::-;12858:139;12642:362;12594:410;;;;:::o;13010:227::-;13150:34;13146:1;13138:6;13134:14;13127:58;13219:10;13214:2;13206:6;13202:15;13195:35;13010:227;:::o;13243:366::-;13385:3;13406:67;13470:2;13465:3;13406:67;:::i;:::-;13399:74;;13482:93;13571:3;13482:93;:::i;:::-;13600:2;13595:3;13591:12;13584:19;;13243:366;;;:::o;13615:419::-;13781:4;13819:2;13808:9;13804:18;13796:26;;13868:9;13862:4;13858:20;13854:1;13843:9;13839:17;13832:47;13896:131;14022:4;13896:131;:::i;:::-;13888:139;;13615:419;;;:::o;14040:164::-;14180:16;14176:1;14168:6;14164:14;14157:40;14040:164;:::o;14210:366::-;14352:3;14373:67;14437:2;14432:3;14373:67;:::i;:::-;14366:74;;14449:93;14538:3;14449:93;:::i;:::-;14567:2;14562:3;14558:12;14551:19;;14210:366;;;:::o;14582:419::-;14748:4;14786:2;14775:9;14771:18;14763:26;;14835:9;14829:4;14825:20;14821:1;14810:9;14806:17;14799:47;14863:131;14989:4;14863:131;:::i;:::-;14855:139;;14582:419;;;:::o;15007:194::-;15047:4;15067:20;15085:1;15067:20;:::i;:::-;15062:25;;15101:20;15119:1;15101:20;:::i;:::-;15096:25;;15145:1;15142;15138:9;15130:17;;15169:1;15163:4;15160:11;15157:37;;;15174:18;;:::i;:::-;15157:37;15007:194;;;;:::o;15207:180::-;15255:77;15252:1;15245:88;15352:4;15349:1;15342:15;15376:4;15373:1;15366:15;15393:185;15433:1;15450:20;15468:1;15450:20;:::i;:::-;15445:25;;15484:20;15502:1;15484:20;:::i;:::-;15479:25;;15523:1;15513:35;;15528:18;;:::i;:::-;15513:35;15570:1;15567;15563:9;15558:14;;15393:185;;;;:::o;15584:191::-;15624:3;15643:20;15661:1;15643:20;:::i;:::-;15638:25;;15677:20;15695:1;15677:20;:::i;:::-;15672:25;;15720:1;15717;15713:9;15706:16;;15741:3;15738:1;15735:10;15732:36;;;15748:18;;:::i;:::-;15732:36;15584:191;;;;:::o;15781:226::-;15921:34;15917:1;15909:6;15905:14;15898:58;15990:9;15985:2;15977:6;15973:15;15966:34;15781:226;:::o;16013:366::-;16155:3;16176:67;16240:2;16235:3;16176:67;:::i;:::-;16169:74;;16252:93;16341:3;16252:93;:::i;:::-;16370:2;16365:3;16361:12;16354:19;;16013:366;;;:::o;16385:419::-;16551:4;16589:2;16578:9;16574:18;16566:26;;16638:9;16632:4;16628:20;16624:1;16613:9;16609:17;16602:47;16666:131;16792:4;16666:131;:::i;:::-;16658:139;;16385:419;;;:::o;16810:231::-;16950:34;16946:1;16938:6;16934:14;16927:58;17019:14;17014:2;17006:6;17002:15;16995:39;16810:231;:::o;17047:366::-;17189:3;17210:67;17274:2;17269:3;17210:67;:::i;:::-;17203:74;;17286:93;17375:3;17286:93;:::i;:::-;17404:2;17399:3;17395:12;17388:19;;17047:366;;;:::o;17419:419::-;17585:4;17623:2;17612:9;17608:18;17600:26;;17672:9;17666:4;17662:20;17658:1;17647:9;17643:17;17636:47;17700:131;17826:4;17700:131;:::i;:::-;17692:139;;17419:419;;;:::o;17844:225::-;17984:34;17980:1;17972:6;17968:14;17961:58;18053:8;18048:2;18040:6;18036:15;18029:33;17844:225;:::o;18075:366::-;18217:3;18238:67;18302:2;18297:3;18238:67;:::i;:::-;18231:74;;18314:93;18403:3;18314:93;:::i;:::-;18432:2;18427:3;18423:12;18416:19;;18075:366;;;:::o;18447:419::-;18613:4;18651:2;18640:9;18636:18;18628:26;;18700:9;18694:4;18690:20;18686:1;18675:9;18671:17;18664:47;18728:131;18854:4;18728:131;:::i;:::-;18720:139;;18447:419;;;:::o;18872:179::-;19012:31;19008:1;19000:6;18996:14;18989:55;18872:179;:::o;19057:366::-;19199:3;19220:67;19284:2;19279:3;19220:67;:::i;:::-;19213:74;;19296:93;19385:3;19296:93;:::i;:::-;19414:2;19409:3;19405:12;19398:19;;19057:366;;;:::o;19429:419::-;19595:4;19633:2;19622:9;19618:18;19610:26;;19682:9;19676:4;19672:20;19668:1;19657:9;19653:17;19646:47;19710:131;19836:4;19710:131;:::i;:::-;19702:139;;19429:419;;;:::o;19854:177::-;19994:29;19990:1;19982:6;19978:14;19971:53;19854:177;:::o;20037:366::-;20179:3;20200:67;20264:2;20259:3;20200:67;:::i;:::-;20193:74;;20276:93;20365:3;20276:93;:::i;:::-;20394:2;20389:3;20385:12;20378:19;;20037:366;;;:::o;20409:419::-;20575:4;20613:2;20602:9;20598:18;20590:26;;20662:9;20656:4;20652:20;20648:1;20637:9;20633:17;20626:47;20690:131;20816:4;20690:131;:::i;:::-;20682:139;;20409:419;;;:::o;20834:179::-;20974:31;20970:1;20962:6;20958:14;20951:55;20834:179;:::o;21019:366::-;21161:3;21182:67;21246:2;21241:3;21182:67;:::i;:::-;21175:74;;21258:93;21347:3;21258:93;:::i;:::-;21376:2;21371:3;21367:12;21360:19;;21019:366;;;:::o;21391:419::-;21557:4;21595:2;21584:9;21580:18;21572:26;;21644:9;21638:4;21634:20;21630:1;21619:9;21615:17;21608:47;21672:131;21798:4;21672:131;:::i;:::-;21664:139;;21391:419;;;:::o;21816:178::-;21956:30;21952:1;21944:6;21940:14;21933:54;21816:178;:::o;22000:366::-;22142:3;22163:67;22227:2;22222:3;22163:67;:::i;:::-;22156:74;;22239:93;22328:3;22239:93;:::i;:::-;22357:2;22352:3;22348:12;22341:19;;22000:366;;;:::o;22372:419::-;22538:4;22576:2;22565:9;22561:18;22553:26;;22625:9;22619:4;22615:20;22611:1;22600:9;22596:17;22589:47;22653:131;22779:4;22653:131;:::i;:::-;22645:139;;22372:419;;;:::o;22797:220::-;22937:34;22933:1;22925:6;22921:14;22914:58;23006:3;23001:2;22993:6;22989:15;22982:28;22797:220;:::o;23023:366::-;23165:3;23186:67;23250:2;23245:3;23186:67;:::i;:::-;23179:74;;23262:93;23351:3;23262:93;:::i;:::-;23380:2;23375:3;23371:12;23364:19;;23023:366;;;:::o;23395:419::-;23561:4;23599:2;23588:9;23584:18;23576:26;;23648:9;23642:4;23638:20;23634:1;23623:9;23619:17;23612:47;23676:131;23802:4;23676:131;:::i;:::-;23668:139;;23395:419;;;:::o;23820:171::-;23960:23;23956:1;23948:6;23944:14;23937:47;23820:171;:::o;23997:366::-;24139:3;24160:67;24224:2;24219:3;24160:67;:::i;:::-;24153:74;;24236:93;24325:3;24236:93;:::i;:::-;24354:2;24349:3;24345:12;24338:19;;23997:366;;;:::o;24369:419::-;24535:4;24573:2;24562:9;24558:18;24550:26;;24622:9;24616:4;24612:20;24608:1;24597:9;24593:17;24586:47;24650:131;24776:4;24650:131;:::i;:::-;24642:139;;24369:419;;;:::o;24794:168::-;24934:20;24930:1;24922:6;24918:14;24911:44;24794:168;:::o;24968:366::-;25110:3;25131:67;25195:2;25190:3;25131:67;:::i;:::-;25124:74;;25207:93;25296:3;25207:93;:::i;:::-;25325:2;25320:3;25316:12;25309:19;;24968:366;;;:::o;25340:419::-;25506:4;25544:2;25533:9;25529:18;25521:26;;25593:9;25587:4;25583:20;25579:1;25568:9;25564:17;25557:47;25621:131;25747:4;25621:131;:::i;:::-;25613:139;;25340:419;;;:::o;25765:174::-;25905:26;25901:1;25893:6;25889:14;25882:50;25765:174;:::o;25945:366::-;26087:3;26108:67;26172:2;26167:3;26108:67;:::i;:::-;26101:74;;26184:93;26273:3;26184:93;:::i;:::-;26302:2;26297:3;26293:12;26286:19;;25945:366;;;:::o;26317:419::-;26483:4;26521:2;26510:9;26506:18;26498:26;;26570:9;26564:4;26560:20;26556:1;26545:9;26541:17;26534:47;26598:131;26724:4;26598:131;:::i;:::-;26590:139;;26317:419;;;:::o;26742:180::-;26790:77;26787:1;26780:88;26887:4;26884:1;26877:15;26911:4;26908:1;26901:15;26928:180;26976:77;26973:1;26966:88;27073:4;27070:1;27063:15;27097:4;27094:1;27087:15;27114:143;27171:5;27202:6;27196:13;27187:22;;27218:33;27245:5;27218:33;:::i;:::-;27114:143;;;;:::o;27263:351::-;27333:6;27382:2;27370:9;27361:7;27357:23;27353:32;27350:119;;;27388:79;;:::i;:::-;27350:119;27508:1;27533:64;27589:7;27580:6;27569:9;27565:22;27533:64;:::i;:::-;27523:74;;27479:128;27263:351;;;;:::o;27620:85::-;27665:7;27694:5;27683:16;;27620:85;;;:::o;27711:158::-;27769:9;27802:61;27820:42;27829:32;27855:5;27829:32;:::i;:::-;27820:42;:::i;:::-;27802:61;:::i;:::-;27789:74;;27711:158;;;:::o;27875:147::-;27970:45;28009:5;27970:45;:::i;:::-;27965:3;27958:58;27875:147;;:::o;28028:114::-;28095:6;28129:5;28123:12;28113:22;;28028:114;;;:::o;28148:184::-;28247:11;28281:6;28276:3;28269:19;28321:4;28316:3;28312:14;28297:29;;28148:184;;;;:::o;28338:132::-;28405:4;28428:3;28420:11;;28458:4;28453:3;28449:14;28441:22;;28338:132;;;:::o;28476:108::-;28553:24;28571:5;28553:24;:::i;:::-;28548:3;28541:37;28476:108;;:::o;28590:179::-;28659:10;28680:46;28722:3;28714:6;28680:46;:::i;:::-;28758:4;28753:3;28749:14;28735:28;;28590:179;;;;:::o;28775:113::-;28845:4;28877;28872:3;28868:14;28860:22;;28775:113;;;:::o;28924:732::-;29043:3;29072:54;29120:5;29072:54;:::i;:::-;29142:86;29221:6;29216:3;29142:86;:::i;:::-;29135:93;;29252:56;29302:5;29252:56;:::i;:::-;29331:7;29362:1;29347:284;29372:6;29369:1;29366:13;29347:284;;;29448:6;29442:13;29475:63;29534:3;29519:13;29475:63;:::i;:::-;29468:70;;29561:60;29614:6;29561:60;:::i;:::-;29551:70;;29407:224;29394:1;29391;29387:9;29382:14;;29347:284;;;29351:14;29647:3;29640:10;;29048:608;;;28924:732;;;;:::o;29662:831::-;29925:4;29963:3;29952:9;29948:19;29940:27;;29977:71;30045:1;30034:9;30030:17;30021:6;29977:71;:::i;:::-;30058:80;30134:2;30123:9;30119:18;30110:6;30058:80;:::i;:::-;30185:9;30179:4;30175:20;30170:2;30159:9;30155:18;30148:48;30213:108;30316:4;30307:6;30213:108;:::i;:::-;30205:116;;30331:72;30399:2;30388:9;30384:18;30375:6;30331:72;:::i;:::-;30413:73;30481:3;30470:9;30466:19;30457:6;30413:73;:::i;:::-;29662:831;;;;;;;;:::o
Swarm Source
ipfs://f03b334603277bca7b3a663fbb10d2ba60f8e40977ea72d4e45ca7aa6c8728e0
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.