ERC-20
Overview
Max Total Supply
420,000,000 MINIPEPE
Holders
52
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,071,841.124028552496105112 MINIPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MINIPEPE
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-20 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address _newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, _newOwner); _owner = _newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MINIPEPE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isOutFromFee; mapping (address => bool) private isBlacklisted; uint256 private time; uint256 private bTime; uint256 private _totalSupply = 420 * 10**6 * 10**18; struct TaxStructure { uint256 totalPc; uint256 pcMarketing; uint256 pcBuyback; uint256 pcLP; } TaxStructure private sellTax = TaxStructure(40,20,10,10); TaxStructure private buyTax = TaxStructure(40,20,10,10); TaxStructure private ZERO = TaxStructure(0,0,0,0); TaxStructure private initialTax = TaxStructure(100,100,0,0); TaxStructure private initialSellTax = TaxStructure(100,100,0,0); string private constant _name = unicode"MINI PEPE"; string private constant _symbol = unicode"MINIPEPE"; uint8 private constant _decimals = 18; uint256 private _maxTxAmount = _totalSupply.div(100); uint256 private _maxWalletAmount = _totalSupply.div(50); uint256 private liquidityParkedTokens = 0; uint256 private marketingParkedTokens = 0; uint256 private buybackParkedTokens = 0; uint256 private minBalance = _totalSupply.div(10000); address payable private _marketingWallet; address payable private _buybackWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2PairAddress; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _marketingWallet = payable(0x5F7711f1c8a9d083016CbCad45e8679674548539); _buybackWallet = payable(0x4Bc85048f7f9ff85C976eF2E592e1b2DAEc356ec); _balOwned[owner()] = _totalSupply; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2PairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _isOutFromFee[owner()] = true; _isOutFromFee[address(this)] = true; _isOutFromFee[uniswapV2PairAddress] = true; emit Transfer(address(0),address(this),_totalSupply); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balOwned[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()].sub(amount, "MINI PEPE: transfer amount exceeds allowance")); return true; } function updateBuyTax(uint256 _marketing,uint256 _buyback,uint256 _lp) external onlyOwner { buyTax.pcLP = _lp; buyTax.pcMarketing = _marketing; buyTax.pcBuyback = _buyback; buyTax.totalPc = _marketing.add(_lp).add(_buyback); require(buyTax.totalPc < 100,"MINI PEPE: Buy tax can not greater than 10%"); } function updateSellTax(uint256 _marketing,uint256 _buyback,uint256 _lp) external onlyOwner { sellTax.pcLP = _lp; sellTax.pcMarketing = _marketing; sellTax.pcBuyback = _buyback; sellTax.totalPc = _marketing.add(_lp).add(_buyback); require(sellTax.totalPc < 100,"MINI PEPE: Sell tax can not greater than 10%"); } function updateLimits(uint256 maxTransactionPer,uint256 maxWalletPer) external onlyOwner { require(maxTransactionPer > 1 && maxWalletPer > 1,"MINI PEPE: Max wallet and max transction limits should be greater than 1%"); _maxTxAmount = _totalSupply.mul(maxTransactionPer).div(100); _maxWalletAmount = _totalSupply.mul(maxWalletPer).div(100); } function removeLimits() external onlyOwner{ _maxTxAmount = _totalSupply; } function excludeFromFees(address[] calldata target) external onlyOwner{ for(uint i=0;i<target.length;i++) _isOutFromFee[target[i]] = true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "MINI PEPE: Approving from the zero address"); require(spender != address(0), "MINI PEPE: Approving 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), "MINI PEPE: Transfer from the zero address"); require(to != address(0), "MINI PEPE: Transfer to the zero address"); if (from != owner() && to != owner()) { require(tradingOpen,"MINI PEPE: trading != true"); require(!isBlacklisted[from] && !isBlacklisted[to]); TaxStructure storage _tax = ZERO; if(!_isOutFromFee[to]){ require((_balOwned[to] + amount) <= _maxWalletAmount,"MINI PEPE: Max Wallet Limit"); require(amount <= _maxTxAmount,"MINI PEPE: Max TxAmount Limit"); if (from == uniswapV2PairAddress && to != address(uniswapV2Router)){ _tax = buyTax; } if(bTime > block.number){ _tax = initialTax; } } else if (to == uniswapV2PairAddress && from != address(uniswapV2Router) && ! _isOutFromFee[from]) { if(block.timestamp > time){ _tax = sellTax; }else{ _tax = initialSellTax; } } if (!inSwap && from != uniswapV2PairAddress && swapEnabled && !_isOutFromFee[from] && balanceOf(address(this)) > minBalance) { swapBack(); } if(_tax.totalPc>0){ uint256 txTax = amount.mul(_tax.totalPc).div(1000); amount = amount.sub(txTax); liquidityParkedTokens = liquidityParkedTokens.add(txTax.mul(_tax.pcLP).div(_tax.totalPc)); marketingParkedTokens = marketingParkedTokens.add(txTax.mul(_tax.pcMarketing).div(_tax.totalPc)); buybackParkedTokens = buybackParkedTokens.add(txTax.mul(_tax.pcBuyback).div(_tax.totalPc)); _transferStandard(from,address(this),txTax); } } _transferStandard(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethValue) private { _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethValue}(address(this),tokenAmount,0,0,address(0xdEaD),block.timestamp); } function swapBack() private lockTheSwap { uint256 contractTokenBalance = balanceOf(address(this)); uint256 totalTokensToSwap = liquidityParkedTokens + marketingParkedTokens + buybackParkedTokens; bool success; if (contractTokenBalance == 0 || totalTokensToSwap == 0) { return; } if (contractTokenBalance > minBalance * 20) { contractTokenBalance = minBalance * 20; } // Halve the amount of liquidity tokens uint256 liquidityTokens = (contractTokenBalance * liquidityParkedTokens) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(marketingParkedTokens).div(totalTokensToSwap); uint256 ethForBuyback = ethBalance.mul(buybackParkedTokens).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForBuyback; liquidityParkedTokens = 0; marketingParkedTokens = 0; buybackParkedTokens = 0; (success, ) = address(_buybackWallet).call{value: ethForBuyback}(""); if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); } (success, ) = address(_marketingWallet).call{ value: address(this).balance }(""); } function enableTrading() external onlyOwner { require(!tradingOpen,"trading is already open"); swapEnabled = true; tradingOpen = true; time = block.timestamp + (10 minutes); bTime = block.number + 2; } function setBlacklist(address[] memory _isBlacklisted) public onlyOwner { for (uint i = 0; i < _isBlacklisted.length; i++) { isBlacklisted[_isBlacklisted[i]] = true; } } function removeBlacklist(address[] memory notbot) public onlyOwner { for(uint i=0;i<notbot.length;i++){isBlacklisted[notbot[i]] = false;} } function _transferStandard(address sender, address recipient, uint256 tAmount) private { _balOwned[sender] = _balOwned[sender].sub(tAmount); _balOwned[recipient] = _balOwned[recipient].add(tAmount); emit Transfer(sender, recipient, tAmount); } receive() external payable {} function manualSwap() external onlyOwner{ swapBack(); } function recoverTokens(address tokenAddress) external onlyOwner { require(tokenAddress != uniswapV2PairAddress); IERC20 _token = IERC20(tokenAddress); _token.transfer(msg.sender,_token.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"target","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_isBlacklisted","type":"address[]"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"},{"internalType":"uint256","name":"_lp","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionPer","type":"uint256"},{"internalType":"uint256","name":"maxWalletPer","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"},{"internalType":"uint256","name":"_lp","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526b015b6a759f4835dc2400000060085560405180608001604052806028815260200160148152602001600a8152602001600a815250600960008201518160000155602082015181600101556040820151816002015560608201518160030155505060405180608001604052806028815260200160148152602001600a8152602001600a815250600d600082015181600001556020820151816001015560408201518160020155606082015181600301555050604051806080016040528060008152602001600081526020016000815260200160008152506011600082015181600001556020820151816001015560408201518160020155606082015181600301555050604051806080016040528060648152602001606481526020016000815260200160008152506015600082015181600001556020820151816001015560408201518160020155606082015181600301555050604051806080016040528060648152602001606481526020016000815260200160008152506019600082015181600001556020820151816001015560408201518160020155606082015181600301555050620001c660646008546200081560201b620015f11790919060201c565b601d55620001e660326008546200081560201b620015f11790919060201c565b601e556000601f5560006020556000602155620002166127106008546200081560201b620015f11790919060201c565b6022556000602660156101000a81548160ff0219169083151502179055506000602660166101000a81548160ff0219169083151502179055506000620002616200086760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350735f7711f1c8a9d083016cbcad45e8679674548539602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734bc85048f7f9ff85c976ef2e592e1b2daec356ec602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620003c06200086f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004bc57600080fd5b505afa158015620004d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f7919062000917565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200057c57600080fd5b505afa15801562000591573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b7919062000917565b6040518363ffffffff1660e01b8152600401620005d6929190620009ac565b602060405180830381600087803b158015620005f157600080fd5b505af115801562000606573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200062c919062000917565b602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620006826200086f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620008079190620009fd565b60405180910390a362000b41565b60006200085f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200089860201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d99190620009d9565b60405180910390fd5b5060008385620008f3919062000a36565b9050809150509392505050565b600081519050620009118162000b27565b92915050565b60006020828403121562000930576200092f62000b11565b5b6000620009408482850162000900565b91505092915050565b620009548162000a6e565b82525050565b6000620009678262000a1a565b62000973818562000a25565b93506200098581856020860162000aac565b620009908162000b16565b840191505092915050565b620009a68162000aa2565b82525050565b6000604082019050620009c3600083018562000949565b620009d2602083018462000949565b9392505050565b60006020820190508181036000830152620009f581846200095a565b905092915050565b600060208201905062000a1460008301846200099b565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a438262000aa2565b915062000a508362000aa2565b92508262000a635762000a6262000ae2565b5b828204905092915050565b600062000a7b8262000a82565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000acc57808201518184015260208101905062000aaf565b8381111562000adc576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b62000b328162000a6e565b811462000b3e57600080fd5b50565b613c148062000b516000396000f3fe6080604052600436106101395760003560e01c80637911ef9d116100ab578063a0a485ca1161006f578063a0a485ca146103d3578063a2240e19146103fc578063a9059cbb14610425578063bf77249114610462578063dd62ed3e1461048b578063f2fde38b146104c857610140565b80637911ef9d146103145780638a8c523c1461033d5780638da5cb5b1461035457806392f428701461037f57806395d89b41146103a857610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce5671461026757806351bc3c851461029257806370a08231146102a9578063715018a6146102e6578063751039fc146102fd57610140565b806305f936501461014557806306fdde031461016e578063095ea7b31461019957806316114acd146101d657806318160ddd146101ff57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612d13565b6104f1565b005b34801561017a57600080fd5b5061018361061f565b60405161019091906131a4565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190612ba3565b61065c565b6040516101cd9190613189565b60405180910390f35b3480156101e257600080fd5b506101fd60048036038101906101f89190612ab6565b61067a565b005b34801561020b57600080fd5b50610214610889565b6040516102219190613386565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612b50565b610893565b60405161025e9190613189565b60405180910390f35b34801561027357600080fd5b5061027c61096c565b60405161028991906133fb565b60405180910390f35b34801561029e57600080fd5b506102a7610975565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612ab6565b610a14565b6040516102dd9190613386565b60405180910390f35b3480156102f257600080fd5b506102fb610a5d565b005b34801561030957600080fd5b50610312610bb0565b005b34801561032057600080fd5b5061033b60048036038101906103369190612c30565b610c50565b005b34801561034957600080fd5b50610352610d7a565b005b34801561036057600080fd5b50610369610ebe565b60405161037691906130e4565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190612be3565b610ee7565b005b3480156103b457600080fd5b506103bd611021565b6040516103ca91906131a4565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612d13565b61105e565b005b34801561040857600080fd5b50610423600480360381019061041e9190612cd3565b61118c565b005b34801561043157600080fd5b5061044c60048036038101906104479190612ba3565b6112d0565b6040516104599190613189565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612c30565b6112ee565b005b34801561049757600080fd5b506104b260048036038101906104ad9190612b10565b611418565b6040516104bf9190613386565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190612ab6565b61149f565b005b6104f961163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90613306565b60405180910390fd5b8060096003018190555082600960010181905550816009600201819055506105c9826105bb838661164390919063ffffffff16565b61164390919063ffffffff16565b60096000018190555060646009600001541061061a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061190613366565b60405180910390fd5b505050565b60606040518060400160405280600981526020017f4d494e4920504550450000000000000000000000000000000000000000000000815250905090565b600061067061066961163b565b84846116a1565b6001905092915050565b61068261163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613306565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561076a57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107c591906130e4565b60206040518083038186803b1580156107dd57600080fd5b505afa1580156107f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108159190612ca6565b6040518363ffffffff1660e01b81526004016108329291906130ff565b602060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190612c79565b505050565b6000600854905090565b60006108a084848461186c565b610961846108ac61163b565b61095c856040518060600160405280602c8152602001613bb3602c9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061091261163b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120189092919063ffffffff16565b6116a1565b600190509392505050565b60006012905090565b61097d61163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0190613306565b60405180910390fd5b610a1261207c565b565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a6561163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613306565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bb861163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613306565b60405180910390fd5b600854601d81905550565b610c5861163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90613306565b60405180910390fd5b60005b8151811015610d7657600060056000848481518110610d0a57610d0961374e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d6e906136a7565b915050610ce8565b5050565b610d8261163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690613306565b60405180910390fd5b602660149054906101000a900460ff1615610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5690613326565b60405180910390fd5b6001602660166101000a81548160ff0219169083151502179055506001602660146101000a81548160ff02191690831515021790555061025842610ea391906134c7565b600681905550600243610eb691906134c7565b600781905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610eef61163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613306565b60405180910390fd5b60005b8282905081101561101c57600160046000858585818110610fa357610fa261374e565b5b9050602002016020810190610fb89190612ab6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611014906136a7565b915050610f7f565b505050565b60606040518060400160405280600881526020017f4d494e4950455045000000000000000000000000000000000000000000000000815250905090565b61106661163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613306565b60405180910390fd5b80600d6003018190555082600d6001018190555081600d6002018190555061113682611128838661164390919063ffffffff16565b61164390919063ffffffff16565b600d600001819055506064600d6000015410611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e906131e6565b60405180910390fd5b505050565b61119461163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890613306565b60405180910390fd5b6001821180156112315750600181115b611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906131c6565b60405180910390fd5b611298606461128a8460085461235c90919063ffffffff16565b6115f190919063ffffffff16565b601d819055506112c660646112b88360085461235c90919063ffffffff16565b6115f190919063ffffffff16565b601e819055505050565b60006112e46112dd61163b565b848461186c565b6001905092915050565b6112f661163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90613306565b60405180910390fd5b60005b8151811015611414576001600560008484815181106113a8576113a761374e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061140c906136a7565b915050611386565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114a761163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613306565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061163383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d7565b905092915050565b600033905090565b600080828461165291906134c7565b905083811015611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90613206565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613266565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177890613346565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161185f9190613386565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d390613226565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906132a6565b60405180910390fd5b611954610ebe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c25750611992610ebe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200857602660149054906101000a900460ff16611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90613286565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611aba5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ac357600080fd5b600060119050600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb757601e5482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6891906134c7565b1115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613246565b60405180910390fd5b601d54821115611bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be5906132e6565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c995750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca357600d90505b436007541115611cb257601590505b611dd7565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d625750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611db85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd657600654421115611dd05760099050611dd5565b601990505b5b5b602660159054906101000a900460ff16158015611e425750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e5a5750602660169054906101000a900460ff165b8015611eb05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ec55750602254611ec330610a14565b115b15611ed357611ed261207c565b5b600081600001541115612006576000611f0d6103e8611eff84600001548661235c90919063ffffffff16565b6115f190919063ffffffff16565b9050611f22818461243a90919063ffffffff16565b9250611f65611f548360000154611f4685600301548561235c90919063ffffffff16565b6115f190919063ffffffff16565b601f5461164390919063ffffffff16565b601f81905550611fac611f9b8360000154611f8d85600101548561235c90919063ffffffff16565b6115f190919063ffffffff16565b60205461164390919063ffffffff16565b602081905550611ff3611fe28360000154611fd485600201548561235c90919063ffffffff16565b6115f190919063ffffffff16565b60215461164390919063ffffffff16565b602181905550612004853083612484565b505b505b612013838383612484565b505050565b6000838311158290612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205791906131a4565b60405180910390fd5b506000838561206f91906135a8565b9050809150509392505050565b6001602660156101000a81548160ff02191690831515021790555060006120a230610a14565b90506000602154602054601f546120b991906134c7565b6120c391906134c7565b90506000808314806120d55750600082145b156120e25750505061233f565b60146022546120f1919061354e565b83111561210a576014602254612107919061354e565b92505b6000600283601f548661211d919061354e565b612127919061351d565b612131919061351d565b90506000612148828661243a90919063ffffffff16565b9050600047905061215882612618565b600061216d824761243a90919063ffffffff16565b905060006121988761218a6020548561235c90919063ffffffff16565b6115f190919063ffffffff16565b905060006121c3886121b56021548661235c90919063ffffffff16565b6115f190919063ffffffff16565b905060008183856121d491906135a8565b6121de91906135a8565b90506000601f8190555060006020819055506000602181905550602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161223e906130cf565b60006040518083038185875af1925050503d806000811461227b576040519150601f19603f3d011682016040523d82523d6000602084013e612280565b606091505b5050809850506000871180156122965750600081115b156122a6576122a5878261286a565b5b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516122ec906130cf565b60006040518083038185875af1925050503d8060008114612329576040519150601f19603f3d011682016040523d82523d6000602084013e61232e565b606091505b505080985050505050505050505050505b6000602660156101000a81548160ff021916908315150217905550565b60008083141561236f57600090506123d1565b6000828461237d919061354e565b905082848261238c919061351d565b146123cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c3906132c6565b60405180910390fd5b809150505b92915050565b6000808311829061241e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241591906131a4565b60405180910390fd5b506000838561242d919061351d565b9050809150509392505050565b600061247c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612018565b905092915050565b6124d681600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243a90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061256b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161260b9190613386565b60405180910390a3505050565b6000600267ffffffffffffffff8111156126355761263461377d565b5b6040519080825280602002602001820160405280156126635781602001602082028036833780820191505090505b509050308160008151811061267b5761267a61374e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561271d57600080fd5b505afa158015612731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127559190612ae3565b816001815181106127695761276861374e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127d030602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a1565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128349594939291906133a1565b600060405180830381600087803b15801561284e57600080fd5b505af1158015612862573d6000803e3d6000fd5b505050505050565b61289730602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a1565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161290096959493929190613128565b6060604051808303818588803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129529190612d66565b5050505050565b600061296c6129678461343b565b613416565b9050808382526020820190508285602086028201111561298f5761298e6137b6565b5b60005b858110156129bf57816129a588826129c9565b845260208401935060208301925050600181019050612992565b5050509392505050565b6000813590506129d881613b6d565b92915050565b6000815190506129ed81613b6d565b92915050565b60008083601f840112612a0957612a086137b1565b5b8235905067ffffffffffffffff811115612a2657612a256137ac565b5b602083019150836020820283011115612a4257612a416137b6565b5b9250929050565b600082601f830112612a5e57612a5d6137b1565b5b8135612a6e848260208601612959565b91505092915050565b600081519050612a8681613b84565b92915050565b600081359050612a9b81613b9b565b92915050565b600081519050612ab081613b9b565b92915050565b600060208284031215612acc57612acb6137c0565b5b6000612ada848285016129c9565b91505092915050565b600060208284031215612af957612af86137c0565b5b6000612b07848285016129de565b91505092915050565b60008060408385031215612b2757612b266137c0565b5b6000612b35858286016129c9565b9250506020612b46858286016129c9565b9150509250929050565b600080600060608486031215612b6957612b686137c0565b5b6000612b77868287016129c9565b9350506020612b88868287016129c9565b9250506040612b9986828701612a8c565b9150509250925092565b60008060408385031215612bba57612bb96137c0565b5b6000612bc8858286016129c9565b9250506020612bd985828601612a8c565b9150509250929050565b60008060208385031215612bfa57612bf96137c0565b5b600083013567ffffffffffffffff811115612c1857612c176137bb565b5b612c24858286016129f3565b92509250509250929050565b600060208284031215612c4657612c456137c0565b5b600082013567ffffffffffffffff811115612c6457612c636137bb565b5b612c7084828501612a49565b91505092915050565b600060208284031215612c8f57612c8e6137c0565b5b6000612c9d84828501612a77565b91505092915050565b600060208284031215612cbc57612cbb6137c0565b5b6000612cca84828501612aa1565b91505092915050565b60008060408385031215612cea57612ce96137c0565b5b6000612cf885828601612a8c565b9250506020612d0985828601612a8c565b9150509250929050565b600080600060608486031215612d2c57612d2b6137c0565b5b6000612d3a86828701612a8c565b9350506020612d4b86828701612a8c565b9250506040612d5c86828701612a8c565b9150509250925092565b600080600060608486031215612d7f57612d7e6137c0565b5b6000612d8d86828701612aa1565b9350506020612d9e86828701612aa1565b9250506040612daf86828701612aa1565b9150509250925092565b6000612dc58383612dd1565b60208301905092915050565b612dda816135dc565b82525050565b612de9816135dc565b82525050565b6000612dfa82613477565b612e04818561349a565b9350612e0f83613467565b8060005b83811015612e40578151612e278882612db9565b9750612e328361348d565b925050600181019050612e13565b5085935050505092915050565b612e56816135ee565b82525050565b612e6581613631565b82525050565b6000612e7682613482565b612e8081856134b6565b9350612e90818560208601613643565b612e99816137c5565b840191505092915050565b6000612eb16049836134b6565b9150612ebc826137d6565b606082019050919050565b6000612ed4602b836134b6565b9150612edf8261384b565b604082019050919050565b6000612ef7601b836134b6565b9150612f028261389a565b602082019050919050565b6000612f1a6029836134b6565b9150612f25826138c3565b604082019050919050565b6000612f3d601b836134b6565b9150612f4882613912565b602082019050919050565b6000612f60602a836134b6565b9150612f6b8261393b565b604082019050919050565b6000612f83601a836134b6565b9150612f8e8261398a565b602082019050919050565b6000612fa66027836134b6565b9150612fb1826139b3565b604082019050919050565b6000612fc96021836134b6565b9150612fd482613a02565b604082019050919050565b6000612fec601d836134b6565b9150612ff782613a51565b602082019050919050565b600061300f6020836134b6565b915061301a82613a7a565b602082019050919050565b60006130326000836134ab565b915061303d82613aa3565b600082019050919050565b60006130556017836134b6565b915061306082613aa6565b602082019050919050565b60006130786028836134b6565b915061308382613acf565b604082019050919050565b600061309b602c836134b6565b91506130a682613b1e565b604082019050919050565b6130ba8161361a565b82525050565b6130c981613624565b82525050565b60006130da82613025565b9150819050919050565b60006020820190506130f96000830184612de0565b92915050565b60006040820190506131146000830185612de0565b61312160208301846130b1565b9392505050565b600060c08201905061313d6000830189612de0565b61314a60208301886130b1565b6131576040830187612e5c565b6131646060830186612e5c565b6131716080830185612de0565b61317e60a08301846130b1565b979650505050505050565b600060208201905061319e6000830184612e4d565b92915050565b600060208201905081810360008301526131be8184612e6b565b905092915050565b600060208201905081810360008301526131df81612ea4565b9050919050565b600060208201905081810360008301526131ff81612ec7565b9050919050565b6000602082019050818103600083015261321f81612eea565b9050919050565b6000602082019050818103600083015261323f81612f0d565b9050919050565b6000602082019050818103600083015261325f81612f30565b9050919050565b6000602082019050818103600083015261327f81612f53565b9050919050565b6000602082019050818103600083015261329f81612f76565b9050919050565b600060208201905081810360008301526132bf81612f99565b9050919050565b600060208201905081810360008301526132df81612fbc565b9050919050565b600060208201905081810360008301526132ff81612fdf565b9050919050565b6000602082019050818103600083015261331f81613002565b9050919050565b6000602082019050818103600083015261333f81613048565b9050919050565b6000602082019050818103600083015261335f8161306b565b9050919050565b6000602082019050818103600083015261337f8161308e565b9050919050565b600060208201905061339b60008301846130b1565b92915050565b600060a0820190506133b660008301886130b1565b6133c36020830187612e5c565b81810360408301526133d58186612def565b90506133e46060830185612de0565b6133f160808301846130b1565b9695505050505050565b600060208201905061341060008301846130c0565b92915050565b6000613420613431565b905061342c8282613676565b919050565b6000604051905090565b600067ffffffffffffffff8211156134565761345561377d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134d28261361a565b91506134dd8361361a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613512576135116136f0565b5b828201905092915050565b60006135288261361a565b91506135338361361a565b9250826135435761354261371f565b5b828204905092915050565b60006135598261361a565b91506135648361361a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561359d5761359c6136f0565b5b828202905092915050565b60006135b38261361a565b91506135be8361361a565b9250828210156135d1576135d06136f0565b5b828203905092915050565b60006135e7826135fa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061363c8261361a565b9050919050565b60005b83811015613661578082015181840152602081019050613646565b83811115613670576000848401525b50505050565b61367f826137c5565b810181811067ffffffffffffffff8211171561369e5761369d61377d565b5b80604052505050565b60006136b28261361a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136e5576136e46136f0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d494e4920504550453a204d61782077616c6c657420616e64206d617820747260008201527f616e736374696f6e206c696d6974732073686f756c642062652067726561746560208201527f72207468616e2031250000000000000000000000000000000000000000000000604082015250565b7f4d494e4920504550453a20427579207461782063616e206e6f7420677265617460008201527f6572207468616e20313025000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d494e4920504550453a205472616e736665722066726f6d20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a204d61782057616c6c6574204c696d69740000000000600082015250565b7f4d494e4920504550453a20417070726f76696e672066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a2074726164696e6720213d2074727565000000000000600082015250565b7f4d494e4920504550453a205472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a204d6178205478416d6f756e74204c696d6974000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4d494e4920504550453a20417070726f76696e6720746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a2053656c6c207461782063616e206e6f74206772656160008201527f746572207468616e203130250000000000000000000000000000000000000000602082015250565b613b76816135dc565b8114613b8157600080fd5b50565b613b8d816135ee565b8114613b9857600080fd5b50565b613ba48161361a565b8114613baf57600080fd5b5056fe4d494e4920504550453a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ad117c7b4752717509d153729929afe9c391571537cd4ec58a2e829c83ce98164736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101395760003560e01c80637911ef9d116100ab578063a0a485ca1161006f578063a0a485ca146103d3578063a2240e19146103fc578063a9059cbb14610425578063bf77249114610462578063dd62ed3e1461048b578063f2fde38b146104c857610140565b80637911ef9d146103145780638a8c523c1461033d5780638da5cb5b1461035457806392f428701461037f57806395d89b41146103a857610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce5671461026757806351bc3c851461029257806370a08231146102a9578063715018a6146102e6578063751039fc146102fd57610140565b806305f936501461014557806306fdde031461016e578063095ea7b31461019957806316114acd146101d657806318160ddd146101ff57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612d13565b6104f1565b005b34801561017a57600080fd5b5061018361061f565b60405161019091906131a4565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190612ba3565b61065c565b6040516101cd9190613189565b60405180910390f35b3480156101e257600080fd5b506101fd60048036038101906101f89190612ab6565b61067a565b005b34801561020b57600080fd5b50610214610889565b6040516102219190613386565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612b50565b610893565b60405161025e9190613189565b60405180910390f35b34801561027357600080fd5b5061027c61096c565b60405161028991906133fb565b60405180910390f35b34801561029e57600080fd5b506102a7610975565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612ab6565b610a14565b6040516102dd9190613386565b60405180910390f35b3480156102f257600080fd5b506102fb610a5d565b005b34801561030957600080fd5b50610312610bb0565b005b34801561032057600080fd5b5061033b60048036038101906103369190612c30565b610c50565b005b34801561034957600080fd5b50610352610d7a565b005b34801561036057600080fd5b50610369610ebe565b60405161037691906130e4565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190612be3565b610ee7565b005b3480156103b457600080fd5b506103bd611021565b6040516103ca91906131a4565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612d13565b61105e565b005b34801561040857600080fd5b50610423600480360381019061041e9190612cd3565b61118c565b005b34801561043157600080fd5b5061044c60048036038101906104479190612ba3565b6112d0565b6040516104599190613189565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612c30565b6112ee565b005b34801561049757600080fd5b506104b260048036038101906104ad9190612b10565b611418565b6040516104bf9190613386565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190612ab6565b61149f565b005b6104f961163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90613306565b60405180910390fd5b8060096003018190555082600960010181905550816009600201819055506105c9826105bb838661164390919063ffffffff16565b61164390919063ffffffff16565b60096000018190555060646009600001541061061a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061190613366565b60405180910390fd5b505050565b60606040518060400160405280600981526020017f4d494e4920504550450000000000000000000000000000000000000000000000815250905090565b600061067061066961163b565b84846116a1565b6001905092915050565b61068261163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613306565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561076a57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107c591906130e4565b60206040518083038186803b1580156107dd57600080fd5b505afa1580156107f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108159190612ca6565b6040518363ffffffff1660e01b81526004016108329291906130ff565b602060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190612c79565b505050565b6000600854905090565b60006108a084848461186c565b610961846108ac61163b565b61095c856040518060600160405280602c8152602001613bb3602c9139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061091261163b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120189092919063ffffffff16565b6116a1565b600190509392505050565b60006012905090565b61097d61163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0190613306565b60405180910390fd5b610a1261207c565b565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a6561163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613306565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bb861163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613306565b60405180910390fd5b600854601d81905550565b610c5861163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90613306565b60405180910390fd5b60005b8151811015610d7657600060056000848481518110610d0a57610d0961374e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d6e906136a7565b915050610ce8565b5050565b610d8261163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690613306565b60405180910390fd5b602660149054906101000a900460ff1615610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5690613326565b60405180910390fd5b6001602660166101000a81548160ff0219169083151502179055506001602660146101000a81548160ff02191690831515021790555061025842610ea391906134c7565b600681905550600243610eb691906134c7565b600781905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610eef61163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613306565b60405180910390fd5b60005b8282905081101561101c57600160046000858585818110610fa357610fa261374e565b5b9050602002016020810190610fb89190612ab6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611014906136a7565b915050610f7f565b505050565b60606040518060400160405280600881526020017f4d494e4950455045000000000000000000000000000000000000000000000000815250905090565b61106661163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613306565b60405180910390fd5b80600d6003018190555082600d6001018190555081600d6002018190555061113682611128838661164390919063ffffffff16565b61164390919063ffffffff16565b600d600001819055506064600d6000015410611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e906131e6565b60405180910390fd5b505050565b61119461163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890613306565b60405180910390fd5b6001821180156112315750600181115b611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906131c6565b60405180910390fd5b611298606461128a8460085461235c90919063ffffffff16565b6115f190919063ffffffff16565b601d819055506112c660646112b88360085461235c90919063ffffffff16565b6115f190919063ffffffff16565b601e819055505050565b60006112e46112dd61163b565b848461186c565b6001905092915050565b6112f661163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90613306565b60405180910390fd5b60005b8151811015611414576001600560008484815181106113a8576113a761374e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061140c906136a7565b915050611386565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114a761163b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613306565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061163383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d7565b905092915050565b600033905090565b600080828461165291906134c7565b905083811015611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90613206565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613266565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177890613346565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161185f9190613386565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d390613226565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906132a6565b60405180910390fd5b611954610ebe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c25750611992610ebe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200857602660149054906101000a900460ff16611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90613286565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611aba5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ac357600080fd5b600060119050600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb757601e5482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6891906134c7565b1115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613246565b60405180910390fd5b601d54821115611bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be5906132e6565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c995750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca357600d90505b436007541115611cb257601590505b611dd7565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d625750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611db85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd657600654421115611dd05760099050611dd5565b601990505b5b5b602660159054906101000a900460ff16158015611e425750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e5a5750602660169054906101000a900460ff165b8015611eb05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ec55750602254611ec330610a14565b115b15611ed357611ed261207c565b5b600081600001541115612006576000611f0d6103e8611eff84600001548661235c90919063ffffffff16565b6115f190919063ffffffff16565b9050611f22818461243a90919063ffffffff16565b9250611f65611f548360000154611f4685600301548561235c90919063ffffffff16565b6115f190919063ffffffff16565b601f5461164390919063ffffffff16565b601f81905550611fac611f9b8360000154611f8d85600101548561235c90919063ffffffff16565b6115f190919063ffffffff16565b60205461164390919063ffffffff16565b602081905550611ff3611fe28360000154611fd485600201548561235c90919063ffffffff16565b6115f190919063ffffffff16565b60215461164390919063ffffffff16565b602181905550612004853083612484565b505b505b612013838383612484565b505050565b6000838311158290612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205791906131a4565b60405180910390fd5b506000838561206f91906135a8565b9050809150509392505050565b6001602660156101000a81548160ff02191690831515021790555060006120a230610a14565b90506000602154602054601f546120b991906134c7565b6120c391906134c7565b90506000808314806120d55750600082145b156120e25750505061233f565b60146022546120f1919061354e565b83111561210a576014602254612107919061354e565b92505b6000600283601f548661211d919061354e565b612127919061351d565b612131919061351d565b90506000612148828661243a90919063ffffffff16565b9050600047905061215882612618565b600061216d824761243a90919063ffffffff16565b905060006121988761218a6020548561235c90919063ffffffff16565b6115f190919063ffffffff16565b905060006121c3886121b56021548661235c90919063ffffffff16565b6115f190919063ffffffff16565b905060008183856121d491906135a8565b6121de91906135a8565b90506000601f8190555060006020819055506000602181905550602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161223e906130cf565b60006040518083038185875af1925050503d806000811461227b576040519150601f19603f3d011682016040523d82523d6000602084013e612280565b606091505b5050809850506000871180156122965750600081115b156122a6576122a5878261286a565b5b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516122ec906130cf565b60006040518083038185875af1925050503d8060008114612329576040519150601f19603f3d011682016040523d82523d6000602084013e61232e565b606091505b505080985050505050505050505050505b6000602660156101000a81548160ff021916908315150217905550565b60008083141561236f57600090506123d1565b6000828461237d919061354e565b905082848261238c919061351d565b146123cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c3906132c6565b60405180910390fd5b809150505b92915050565b6000808311829061241e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241591906131a4565b60405180910390fd5b506000838561242d919061351d565b9050809150509392505050565b600061247c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612018565b905092915050565b6124d681600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243a90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061256b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161260b9190613386565b60405180910390a3505050565b6000600267ffffffffffffffff8111156126355761263461377d565b5b6040519080825280602002602001820160405280156126635781602001602082028036833780820191505090505b509050308160008151811061267b5761267a61374e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561271d57600080fd5b505afa158015612731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127559190612ae3565b816001815181106127695761276861374e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127d030602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a1565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128349594939291906133a1565b600060405180830381600087803b15801561284e57600080fd5b505af1158015612862573d6000803e3d6000fd5b505050505050565b61289730602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a1565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161290096959493929190613128565b6060604051808303818588803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129529190612d66565b5050505050565b600061296c6129678461343b565b613416565b9050808382526020820190508285602086028201111561298f5761298e6137b6565b5b60005b858110156129bf57816129a588826129c9565b845260208401935060208301925050600181019050612992565b5050509392505050565b6000813590506129d881613b6d565b92915050565b6000815190506129ed81613b6d565b92915050565b60008083601f840112612a0957612a086137b1565b5b8235905067ffffffffffffffff811115612a2657612a256137ac565b5b602083019150836020820283011115612a4257612a416137b6565b5b9250929050565b600082601f830112612a5e57612a5d6137b1565b5b8135612a6e848260208601612959565b91505092915050565b600081519050612a8681613b84565b92915050565b600081359050612a9b81613b9b565b92915050565b600081519050612ab081613b9b565b92915050565b600060208284031215612acc57612acb6137c0565b5b6000612ada848285016129c9565b91505092915050565b600060208284031215612af957612af86137c0565b5b6000612b07848285016129de565b91505092915050565b60008060408385031215612b2757612b266137c0565b5b6000612b35858286016129c9565b9250506020612b46858286016129c9565b9150509250929050565b600080600060608486031215612b6957612b686137c0565b5b6000612b77868287016129c9565b9350506020612b88868287016129c9565b9250506040612b9986828701612a8c565b9150509250925092565b60008060408385031215612bba57612bb96137c0565b5b6000612bc8858286016129c9565b9250506020612bd985828601612a8c565b9150509250929050565b60008060208385031215612bfa57612bf96137c0565b5b600083013567ffffffffffffffff811115612c1857612c176137bb565b5b612c24858286016129f3565b92509250509250929050565b600060208284031215612c4657612c456137c0565b5b600082013567ffffffffffffffff811115612c6457612c636137bb565b5b612c7084828501612a49565b91505092915050565b600060208284031215612c8f57612c8e6137c0565b5b6000612c9d84828501612a77565b91505092915050565b600060208284031215612cbc57612cbb6137c0565b5b6000612cca84828501612aa1565b91505092915050565b60008060408385031215612cea57612ce96137c0565b5b6000612cf885828601612a8c565b9250506020612d0985828601612a8c565b9150509250929050565b600080600060608486031215612d2c57612d2b6137c0565b5b6000612d3a86828701612a8c565b9350506020612d4b86828701612a8c565b9250506040612d5c86828701612a8c565b9150509250925092565b600080600060608486031215612d7f57612d7e6137c0565b5b6000612d8d86828701612aa1565b9350506020612d9e86828701612aa1565b9250506040612daf86828701612aa1565b9150509250925092565b6000612dc58383612dd1565b60208301905092915050565b612dda816135dc565b82525050565b612de9816135dc565b82525050565b6000612dfa82613477565b612e04818561349a565b9350612e0f83613467565b8060005b83811015612e40578151612e278882612db9565b9750612e328361348d565b925050600181019050612e13565b5085935050505092915050565b612e56816135ee565b82525050565b612e6581613631565b82525050565b6000612e7682613482565b612e8081856134b6565b9350612e90818560208601613643565b612e99816137c5565b840191505092915050565b6000612eb16049836134b6565b9150612ebc826137d6565b606082019050919050565b6000612ed4602b836134b6565b9150612edf8261384b565b604082019050919050565b6000612ef7601b836134b6565b9150612f028261389a565b602082019050919050565b6000612f1a6029836134b6565b9150612f25826138c3565b604082019050919050565b6000612f3d601b836134b6565b9150612f4882613912565b602082019050919050565b6000612f60602a836134b6565b9150612f6b8261393b565b604082019050919050565b6000612f83601a836134b6565b9150612f8e8261398a565b602082019050919050565b6000612fa66027836134b6565b9150612fb1826139b3565b604082019050919050565b6000612fc96021836134b6565b9150612fd482613a02565b604082019050919050565b6000612fec601d836134b6565b9150612ff782613a51565b602082019050919050565b600061300f6020836134b6565b915061301a82613a7a565b602082019050919050565b60006130326000836134ab565b915061303d82613aa3565b600082019050919050565b60006130556017836134b6565b915061306082613aa6565b602082019050919050565b60006130786028836134b6565b915061308382613acf565b604082019050919050565b600061309b602c836134b6565b91506130a682613b1e565b604082019050919050565b6130ba8161361a565b82525050565b6130c981613624565b82525050565b60006130da82613025565b9150819050919050565b60006020820190506130f96000830184612de0565b92915050565b60006040820190506131146000830185612de0565b61312160208301846130b1565b9392505050565b600060c08201905061313d6000830189612de0565b61314a60208301886130b1565b6131576040830187612e5c565b6131646060830186612e5c565b6131716080830185612de0565b61317e60a08301846130b1565b979650505050505050565b600060208201905061319e6000830184612e4d565b92915050565b600060208201905081810360008301526131be8184612e6b565b905092915050565b600060208201905081810360008301526131df81612ea4565b9050919050565b600060208201905081810360008301526131ff81612ec7565b9050919050565b6000602082019050818103600083015261321f81612eea565b9050919050565b6000602082019050818103600083015261323f81612f0d565b9050919050565b6000602082019050818103600083015261325f81612f30565b9050919050565b6000602082019050818103600083015261327f81612f53565b9050919050565b6000602082019050818103600083015261329f81612f76565b9050919050565b600060208201905081810360008301526132bf81612f99565b9050919050565b600060208201905081810360008301526132df81612fbc565b9050919050565b600060208201905081810360008301526132ff81612fdf565b9050919050565b6000602082019050818103600083015261331f81613002565b9050919050565b6000602082019050818103600083015261333f81613048565b9050919050565b6000602082019050818103600083015261335f8161306b565b9050919050565b6000602082019050818103600083015261337f8161308e565b9050919050565b600060208201905061339b60008301846130b1565b92915050565b600060a0820190506133b660008301886130b1565b6133c36020830187612e5c565b81810360408301526133d58186612def565b90506133e46060830185612de0565b6133f160808301846130b1565b9695505050505050565b600060208201905061341060008301846130c0565b92915050565b6000613420613431565b905061342c8282613676565b919050565b6000604051905090565b600067ffffffffffffffff8211156134565761345561377d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134d28261361a565b91506134dd8361361a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613512576135116136f0565b5b828201905092915050565b60006135288261361a565b91506135338361361a565b9250826135435761354261371f565b5b828204905092915050565b60006135598261361a565b91506135648361361a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561359d5761359c6136f0565b5b828202905092915050565b60006135b38261361a565b91506135be8361361a565b9250828210156135d1576135d06136f0565b5b828203905092915050565b60006135e7826135fa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061363c8261361a565b9050919050565b60005b83811015613661578082015181840152602081019050613646565b83811115613670576000848401525b50505050565b61367f826137c5565b810181811067ffffffffffffffff8211171561369e5761369d61377d565b5b80604052505050565b60006136b28261361a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136e5576136e46136f0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d494e4920504550453a204d61782077616c6c657420616e64206d617820747260008201527f616e736374696f6e206c696d6974732073686f756c642062652067726561746560208201527f72207468616e2031250000000000000000000000000000000000000000000000604082015250565b7f4d494e4920504550453a20427579207461782063616e206e6f7420677265617460008201527f6572207468616e20313025000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d494e4920504550453a205472616e736665722066726f6d20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a204d61782057616c6c6574204c696d69740000000000600082015250565b7f4d494e4920504550453a20417070726f76696e672066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a2074726164696e6720213d2074727565000000000000600082015250565b7f4d494e4920504550453a205472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a204d6178205478416d6f756e74204c696d6974000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4d494e4920504550453a20417070726f76696e6720746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4d494e4920504550453a2053656c6c207461782063616e206e6f74206772656160008201527f746572207468616e203130250000000000000000000000000000000000000000602082015250565b613b76816135dc565b8114613b8157600080fd5b50565b613b8d816135ee565b8114613b9857600080fd5b50565b613ba48161361a565b8114613baf57600080fd5b5056fe4d494e4920504550453a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ad117c7b4752717509d153729929afe9c391571537cd4ec58a2e829c83ce98164736f6c63430008070033
Deployed Bytecode Sourcemap
3700:11317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7852:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6155:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6993:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14765:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6432:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7162:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14688:69;;;;;;;;;;;;;:::i;:::-;;6540:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:148;;;;;;;;;;;;;:::i;:::-;;8601:88;;;;;;;;;;;;;:::i;:::-;;14202:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13722:251;;;;;;;;;;;;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8699:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6246:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7493:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8220:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6667:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13985:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6842:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7852:360;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7969:3:::1;7954:7;:12;;:18;;;;8005:10;7983:7;:19;;:32;;;;8046:8;8026:7;:17;;:28;;;;8083:33;8107:8;8083:19;8098:3;8083:10;:14;;:19;;;;:::i;:::-;:23;;:33;;;;:::i;:::-;8065:7;:15;;:51;;;;8153:3;8135:7;:15;;;:21;8127:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:360:::0;;;:::o;6155:83::-;6192:13;6225:5;;;;;;;;;;;;;;;;;6218:12;;6155:83;:::o;6993:161::-;7068:4;7085:39;7094:12;:10;:12::i;:::-;7108:7;7117:6;7085:8;:39::i;:::-;7142:4;7135:11;;6993:161;;;;:::o;14765:245::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14864:20:::1;;;;;;;;;;;14848:36;;:12;:36;;;;14840:45;;;::::0;::::1;;14896:13;14919:12;14896:36;;14943:6;:15;;;14959:10;14970:6;:16;;;14995:4;14970:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14943:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14829:181;14765:245:::0;:::o;6432:100::-;6485:7;6512:12;;6505:19;;6432:100;:::o;7162:317::-;7260:4;7277:36;7287:6;7295:9;7306:6;7277:9;:36::i;:::-;7324:125;7333:6;7341:12;:10;:12::i;:::-;7355:93;7393:6;7355:93;;;;;;;;;;;;;;;;;:11;:19;7367:6;7355:19;;;;;;;;;;;;;;;:33;7375:12;:10;:12::i;:::-;7355:33;;;;;;;;;;;;;;;;:37;;:93;;;;;:::i;:::-;7324:8;:125::i;:::-;7467:4;7460:11;;7162:317;;;;;:::o;6341:83::-;6382:5;4756:2;6400:16;;6341:83;:::o;14688:69::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14739:10:::1;:8;:10::i;:::-;14688:69::o:0;6540:119::-;6606:7;6633:9;:18;6643:7;6633:18;;;;;;;;;;;;;;;;6626:25;;6540:119;;;:::o;2779:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2886:1:::1;2849:40;;2870:6;::::0;::::1;;;;;;;;2849:40;;;;;;;;;;;;2917:1;2900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2779:148::o:0;8601:88::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8669:12:::1;;8654;:27;;;;8601:88::o:0;14202:153::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14284:6:::1;14280:68;14295:6;:13;14293:1;:15;14280:68;;;14341:5;14314:13;:24;14328:6;14335:1;14328:9;;;;;;;;:::i;:::-;;;;;;;;14314:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14309:3;;;;;:::i;:::-;;;;14280:68;;;;14202:153:::0;:::o;13722:251::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13786:11:::1;;;;;;;;;;;13785:12;13777:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13849:4;13835:11;;:18;;;;;;;;;;;;;;;;;;13878:4;13864:11;;:18;;;;;;;;;;;;;;;;;;13919:10;13900:15;:30;;;;:::i;:::-;13893:4;:37;;;;13964:1;13949:12;:16;;;;:::i;:::-;13941:5;:24;;;;13722:251::o:0;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;8699:167::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8784:6:::1;8780:78;8795:6;;:13;;8793:1;:15;8780:78;;;8854:4;8827:13;:24;8841:6;;8848:1;8841:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8827:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;8809:3;;;;;:::i;:::-;;;;8780:78;;;;8699:167:::0;;:::o;6246:87::-;6285:13;6318:7;;;;;;;;;;;;;;;;;6311:14;;6246:87;:::o;7493:353::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7608:3:::1;7594:6;:11;;:17;;;;7643:10;7622:6;:18;;:31;;;;7683:8;7664:6;:16;;:27;;;;7719:33;7743:8;7719:19;7734:3;7719:10;:14;;:19;;;;:::i;:::-;:23;;:33;;;;:::i;:::-;7702:6;:14;;:50;;;;7788:3;7771:6;:14;;;:20;7763:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7493:353:::0;;;:::o;8220:373::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8348:1:::1;8328:17;:21;:41;;;;;8368:1;8353:12;:16;8328:41;8320:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;8472:44;8512:3;8472:35;8489:17;8472:12;;:16;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;8457:12;:59;;;;8546:39;8581:3;8546:30;8563:12;8546;;:16;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;8527:16;:58;;;;8220:373:::0;;:::o;6667:167::-;6745:4;6762:42;6772:12;:10;:12::i;:::-;6786:9;6797:6;6762:9;:42::i;:::-;6822:4;6815:11;;6667:167;;;;:::o;13985:205::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14073:6:::1;14068:115;14089:14;:21;14085:1;:25;14068:115;;;14167:4;14132:13;:32;14146:14;14161:1;14146:17;;;;;;;;:::i;:::-;;;;;;;;14132:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14112:3;;;;;:::i;:::-;;;;14068:115;;;;13985:205:::0;:::o;6842:143::-;6923:7;6950:11;:18;6962:5;6950:18;;;;;;;;;;;;;;;:27;6969:7;6950:27;;;;;;;;;;;;;;;;6943:34;;6842:143;;;;:::o;2598:173::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:9:::1;2685:39;;2706:6;::::0;::::1;;;;;;;;2685:39;;;;;;;;;;;;2744:9;2735:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2598:173:::0;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908:179;;;;:::o;8879:347::-;8989:1;8972:19;;:5;:19;;;;8964:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9076:1;9057:21;;:7;:21;;;;9049:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9164:6;9134:11;:18;9146:5;9134:18;;;;;;;;;;;;;;;:27;9153:7;9134:27;;;;;;;;;;;;;;;:36;;;;9202:7;9186:32;;9195:5;9186:32;;;9211:6;9186:32;;;;;;:::i;:::-;;;;;;;;8879:347;;;:::o;9234:2088::-;9338:1;9322:18;;:4;:18;;;;9314:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9419:1;9405:16;;:2;:16;;;;9397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9490:7;:5;:7::i;:::-;9482:15;;:4;:15;;;;:32;;;;;9507:7;:5;:7::i;:::-;9501:13;;:2;:13;;;;9482:32;9478:1781;;;9539:11;;;;;;;;;;;9531:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9604:13;:19;9618:4;9604:19;;;;;;;;;;;;;;;;;;;;;;;;;9603:20;:42;;;;;9628:13;:17;9642:2;9628:17;;;;;;;;;;;;;;;;;;;;;;;;;9627:18;9603:42;9595:51;;;;;;9663:25;9691:4;9663:32;;9714:13;:17;9728:2;9714:17;;;;;;;;;;;;;;;;;;;;;;;;;9710:764;;9787:16;;9776:6;9760:9;:13;9770:2;9760:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;9759:44;;9751:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;9871:12;;9861:6;:22;;9853:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9947:20;;;;;;;;;;;9939:28;;:4;:28;;;:62;;;;;9985:15;;;;;;;;;;;9971:30;;:2;:30;;;;9939:62;9935:123;;;10032:6;10025:13;;9935:123;10087:12;10079:5;;:20;10076:84;;;10130:10;10123:17;;10076:84;9710:764;;;10206:20;;;;;;;;;;;10200:26;;:2;:26;;;:62;;;;;10246:15;;;;;;;;;;;10230:32;;:4;:32;;;;10200:62;:87;;;;;10268:13;:19;10282:4;10268:19;;;;;;;;;;;;;;;;;;;;;;;;;10266:21;10200:87;10196:278;;;10329:4;;10311:15;:22;10308:151;;;10364:7;10357:14;;10308:151;;;10425:14;10418:21;;10308:151;10196:278;9710:764;10521:6;;;;;;;;;;;10520:7;:39;;;;;10539:20;;;;;;;;;;;10531:28;;:4;:28;;;;10520:39;:54;;;;;10563:11;;;;;;;;;;;10520:54;:78;;;;;10579:13;:19;10593:4;10579:19;;;;;;;;;;;;;;;;;;;;;;;;;10578:20;10520:78;:119;;;;;10629:10;;10602:24;10620:4;10602:9;:24::i;:::-;:37;10520:119;10516:174;;;10664:10;:8;:10::i;:::-;10516:174;10722:1;10709:4;:12;;;:14;10706:542;;;10743:13;10759:34;10788:4;10759:24;10770:4;:12;;;10759:6;:10;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;10743:50;;10821:17;10832:5;10821:6;:10;;:17;;;;:::i;:::-;10812:26;;10881:65;10907:38;10932:4;:12;;;10907:20;10917:4;:9;;;10907:5;:9;;:20;;;;:::i;:::-;:24;;:38;;;;:::i;:::-;10881:21;;:25;;:65;;;;:::i;:::-;10857:21;:89;;;;10989:72;11015:45;11047:4;:12;;;11015:27;11025:4;:16;;;11015:5;:9;;:27;;;;:::i;:::-;:31;;:45;;;;:::i;:::-;10989:21;;:25;;:72;;;;:::i;:::-;10965:21;:96;;;;11102:68;11126:43;11156:4;:12;;;11126:25;11136:4;:14;;;11126:5;:9;;:25;;;;:::i;:::-;:29;;:43;;;;:::i;:::-;11102:19;;:23;;:68;;;;:::i;:::-;11080:19;:90;;;;11189:43;11207:4;11220;11226:5;11189:17;:43::i;:::-;10724:524;10706:542;9516:1743;9478:1781;11281:33;11299:4;11304:2;11307:6;11281:17;:33::i;:::-;9234:2088;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;12092:1610::-;5428:4;5419:6;;:13;;;;;;;;;;;;;;;;;;12143:28:::1;12174:24;12192:4;12174:9;:24::i;:::-;12143:55;;12209:25;12285:19;;12261:21;;12237;;:45;;;;:::i;:::-;:67;;;;:::i;:::-;12209:95;;12315:12;12368:1:::0;12344:20:::1;:25;:51;;;;12394:1;12373:17;:22;12344:51;12340:90;;;12412:7;;;;;12340:90;12482:2;12469:10;;:15;;;;:::i;:::-;12446:20;:38;12442:109;;;12537:2;12524:10;;:15;;;;:::i;:::-;12501:38;;12442:109;12612:23;12707:1;12687:17;12662:21;;12639:20;:44;;;;:::i;:::-;12638:66;;;;:::i;:::-;:70;;;;:::i;:::-;12612:96;;12719:26;12748:41;12773:15;12748:20;:24;;:41;;;;:::i;:::-;12719:70;;12802:25;12830:21;12802:49;;12864:36;12881:18;12864:16;:36::i;:::-;12913:18;12934:44;12960:17;12934:21;:25;;:44;;;;:::i;:::-;12913:65;;12991:23;13017:60;13059:17;13017:37;13032:21;;13017:10;:14;;:37;;;;:::i;:::-;:41;;:60;;;;:::i;:::-;12991:86;;13090:21;13114:58;13154:17;13114:35;13129:19;;13114:10;:14;;:35;;;;:::i;:::-;:39;;:58;;;;:::i;:::-;13090:82;;13185:23;13242:13;13224:15;13211:10;:28;;;;:::i;:::-;:44;;;;:::i;:::-;13185:70;;13292:1;13268:21;:25;;;;13328:1;13304:21;:25;;;;13362:1;13340:19;:23;;;;13398:14;;;;;;;;;;;13390:28;;13426:13;13390:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13376:68;;;;;13479:1;13461:15;:19;:42;;;;;13502:1;13484:15;:19;13461:42;13457:121;;;13520:46;13533:15;13550;13520:12;:46::i;:::-;13457:121;13612:16;;;;;;;;;;;13604:30;;13656:21;13604:88;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13590:102;;;;;12132:1570;;;;;;;;;;5443:1;5464:5:::0;5455:6;;:14;;;;;;;;;;;;;;;;;;12092:1610::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;14363:276::-;14481:30;14503:7;14481:9;:17;14491:6;14481:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;14461:9;:17;14471:6;14461:17;;;;;;;;;;;;;;;:50;;;;14545:33;14570:7;14545:9;:20;14555:9;14545:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;14522:9;:20;14532:9;14522:20;;;;;;;;;;;;;;;:56;;;;14612:9;14595:36;;14604:6;14595:36;;;14623:7;14595:36;;;;;;:::i;:::-;;;;;;;;14363:276;;;:::o;11330:471::-;11396:21;11434:1;11420:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11396:40;;11465:4;11447;11452:1;11447:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11491:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11481:4;11486:1;11481:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11524:62;11541:4;11556:15;;;;;;;;;;;11574:11;11524:8;:62::i;:::-;11597:15;;;;;;;;;;;:66;;;11678:11;11704:1;11720:4;11747;11767:15;11597:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11385:416;11330:471;:::o;11815:269::-;11894:60;11911:4;11925:15;;;;;;;;;;;11942:11;11894:8;:60::i;:::-;11965:15;;;;;;;;;;;:31;;;12004:8;12022:4;12028:11;12040:1;12042;12052:6;12060:15;11965:111;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11815:269;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2030:137::-;2084:5;2115:6;2109:13;2100:22;;2131:30;2155:5;2131:30;:::i;:::-;2030:137;;;;:::o;2173:139::-;2219:5;2257:6;2244:20;2235:29;;2273:33;2300:5;2273:33;:::i;:::-;2173:139;;;;:::o;2318:143::-;2375:5;2406:6;2400:13;2391:22;;2422:33;2449:5;2422:33;:::i;:::-;2318:143;;;;:::o;2467:329::-;2526:6;2575:2;2563:9;2554:7;2550:23;2546:32;2543:119;;;2581:79;;:::i;:::-;2543:119;2701:1;2726:53;2771:7;2762:6;2751:9;2747:22;2726:53;:::i;:::-;2716:63;;2672:117;2467:329;;;;:::o;2802:351::-;2872:6;2921:2;2909:9;2900:7;2896:23;2892:32;2889:119;;;2927:79;;:::i;:::-;2889:119;3047:1;3072:64;3128:7;3119:6;3108:9;3104:22;3072:64;:::i;:::-;3062:74;;3018:128;2802:351;;;;:::o;3159:474::-;3227:6;3235;3284:2;3272:9;3263:7;3259:23;3255:32;3252:119;;;3290:79;;:::i;:::-;3252:119;3410:1;3435:53;3480:7;3471:6;3460:9;3456:22;3435:53;:::i;:::-;3425:63;;3381:117;3537:2;3563:53;3608:7;3599:6;3588:9;3584:22;3563:53;:::i;:::-;3553:63;;3508:118;3159:474;;;;;:::o;3639:619::-;3716:6;3724;3732;3781:2;3769:9;3760:7;3756:23;3752:32;3749:119;;;3787:79;;:::i;:::-;3749:119;3907:1;3932:53;3977:7;3968:6;3957:9;3953:22;3932:53;:::i;:::-;3922:63;;3878:117;4034:2;4060:53;4105:7;4096:6;4085:9;4081:22;4060:53;:::i;:::-;4050:63;;4005:118;4162:2;4188:53;4233:7;4224:6;4213:9;4209:22;4188:53;:::i;:::-;4178:63;;4133:118;3639:619;;;;;:::o;4264:474::-;4332:6;4340;4389:2;4377:9;4368:7;4364:23;4360:32;4357:119;;;4395:79;;:::i;:::-;4357:119;4515:1;4540:53;4585:7;4576:6;4565:9;4561:22;4540:53;:::i;:::-;4530:63;;4486:117;4642:2;4668:53;4713:7;4704:6;4693:9;4689:22;4668:53;:::i;:::-;4658:63;;4613:118;4264:474;;;;;:::o;4744:559::-;4830:6;4838;4887:2;4875:9;4866:7;4862:23;4858:32;4855:119;;;4893:79;;:::i;:::-;4855:119;5041:1;5030:9;5026:17;5013:31;5071:18;5063:6;5060:30;5057:117;;;5093:79;;:::i;:::-;5057:117;5206:80;5278:7;5269:6;5258:9;5254:22;5206:80;:::i;:::-;5188:98;;;;4984:312;4744:559;;;;;:::o;5309:539::-;5393:6;5442:2;5430:9;5421:7;5417:23;5413:32;5410:119;;;5448:79;;:::i;:::-;5410:119;5596:1;5585:9;5581:17;5568:31;5626:18;5618:6;5615:30;5612:117;;;5648:79;;:::i;:::-;5612:117;5753:78;5823:7;5814:6;5803:9;5799:22;5753:78;:::i;:::-;5743:88;;5539:302;5309:539;;;;:::o;5854:345::-;5921:6;5970:2;5958:9;5949:7;5945:23;5941:32;5938:119;;;5976:79;;:::i;:::-;5938:119;6096:1;6121:61;6174:7;6165:6;6154:9;6150:22;6121:61;:::i;:::-;6111:71;;6067:125;5854:345;;;;:::o;6205:351::-;6275:6;6324:2;6312:9;6303:7;6299:23;6295:32;6292:119;;;6330:79;;:::i;:::-;6292:119;6450:1;6475:64;6531:7;6522:6;6511:9;6507:22;6475:64;:::i;:::-;6465:74;;6421:128;6205:351;;;;:::o;6562:474::-;6630:6;6638;6687:2;6675:9;6666:7;6662:23;6658:32;6655:119;;;6693:79;;:::i;:::-;6655:119;6813:1;6838:53;6883:7;6874:6;6863:9;6859:22;6838:53;:::i;:::-;6828:63;;6784:117;6940:2;6966:53;7011:7;7002:6;6991:9;6987:22;6966:53;:::i;:::-;6956:63;;6911:118;6562:474;;;;;:::o;7042:619::-;7119:6;7127;7135;7184:2;7172:9;7163:7;7159:23;7155:32;7152:119;;;7190:79;;:::i;:::-;7152:119;7310:1;7335:53;7380:7;7371:6;7360:9;7356:22;7335:53;:::i;:::-;7325:63;;7281:117;7437:2;7463:53;7508:7;7499:6;7488:9;7484:22;7463:53;:::i;:::-;7453:63;;7408:118;7565:2;7591:53;7636:7;7627:6;7616:9;7612:22;7591:53;:::i;:::-;7581:63;;7536:118;7042:619;;;;;:::o;7667:663::-;7755:6;7763;7771;7820:2;7808:9;7799:7;7795:23;7791:32;7788:119;;;7826:79;;:::i;:::-;7788:119;7946:1;7971:64;8027:7;8018:6;8007:9;8003:22;7971:64;:::i;:::-;7961:74;;7917:128;8084:2;8110:64;8166:7;8157:6;8146:9;8142:22;8110:64;:::i;:::-;8100:74;;8055:129;8223:2;8249:64;8305:7;8296:6;8285:9;8281:22;8249:64;:::i;:::-;8239:74;;8194:129;7667:663;;;;;:::o;8336:179::-;8405:10;8426:46;8468:3;8460:6;8426:46;:::i;:::-;8504:4;8499:3;8495:14;8481:28;;8336:179;;;;:::o;8521:108::-;8598:24;8616:5;8598:24;:::i;:::-;8593:3;8586:37;8521:108;;:::o;8635:118::-;8722:24;8740:5;8722:24;:::i;:::-;8717:3;8710:37;8635:118;;:::o;8789:732::-;8908:3;8937:54;8985:5;8937:54;:::i;:::-;9007:86;9086:6;9081:3;9007:86;:::i;:::-;9000:93;;9117:56;9167:5;9117:56;:::i;:::-;9196:7;9227:1;9212:284;9237:6;9234:1;9231:13;9212:284;;;9313:6;9307:13;9340:63;9399:3;9384:13;9340:63;:::i;:::-;9333:70;;9426:60;9479:6;9426:60;:::i;:::-;9416:70;;9272:224;9259:1;9256;9252:9;9247:14;;9212:284;;;9216:14;9512:3;9505:10;;8913:608;;;8789:732;;;;:::o;9527:109::-;9608:21;9623:5;9608:21;:::i;:::-;9603:3;9596:34;9527:109;;:::o;9642:147::-;9737:45;9776:5;9737:45;:::i;:::-;9732:3;9725:58;9642:147;;:::o;9795:364::-;9883:3;9911:39;9944:5;9911:39;:::i;:::-;9966:71;10030:6;10025:3;9966:71;:::i;:::-;9959:78;;10046:52;10091:6;10086:3;10079:4;10072:5;10068:16;10046:52;:::i;:::-;10123:29;10145:6;10123:29;:::i;:::-;10118:3;10114:39;10107:46;;9887:272;9795:364;;;;:::o;10165:366::-;10307:3;10328:67;10392:2;10387:3;10328:67;:::i;:::-;10321:74;;10404:93;10493:3;10404:93;:::i;:::-;10522:2;10517:3;10513:12;10506:19;;10165:366;;;:::o;10537:::-;10679:3;10700:67;10764:2;10759:3;10700:67;:::i;:::-;10693:74;;10776:93;10865:3;10776:93;:::i;:::-;10894:2;10889:3;10885:12;10878:19;;10537:366;;;:::o;10909:::-;11051:3;11072:67;11136:2;11131:3;11072:67;:::i;:::-;11065:74;;11148:93;11237:3;11148:93;:::i;:::-;11266:2;11261:3;11257:12;11250:19;;10909:366;;;:::o;11281:::-;11423:3;11444:67;11508:2;11503:3;11444:67;:::i;:::-;11437:74;;11520:93;11609:3;11520:93;:::i;:::-;11638:2;11633:3;11629:12;11622:19;;11281:366;;;:::o;11653:::-;11795:3;11816:67;11880:2;11875:3;11816:67;:::i;:::-;11809:74;;11892:93;11981:3;11892:93;:::i;:::-;12010:2;12005:3;12001:12;11994:19;;11653:366;;;:::o;12025:::-;12167:3;12188:67;12252:2;12247:3;12188:67;:::i;:::-;12181:74;;12264:93;12353:3;12264:93;:::i;:::-;12382:2;12377:3;12373:12;12366:19;;12025:366;;;:::o;12397:::-;12539:3;12560:67;12624:2;12619:3;12560:67;:::i;:::-;12553:74;;12636:93;12725:3;12636:93;:::i;:::-;12754:2;12749:3;12745:12;12738:19;;12397:366;;;:::o;12769:::-;12911:3;12932:67;12996:2;12991:3;12932:67;:::i;:::-;12925:74;;13008:93;13097:3;13008:93;:::i;:::-;13126:2;13121:3;13117:12;13110:19;;12769:366;;;:::o;13141:::-;13283:3;13304:67;13368:2;13363:3;13304:67;:::i;:::-;13297:74;;13380:93;13469:3;13380:93;:::i;:::-;13498:2;13493:3;13489:12;13482:19;;13141:366;;;:::o;13513:::-;13655:3;13676:67;13740:2;13735:3;13676:67;:::i;:::-;13669:74;;13752:93;13841:3;13752:93;:::i;:::-;13870:2;13865:3;13861:12;13854:19;;13513:366;;;:::o;13885:::-;14027:3;14048:67;14112:2;14107:3;14048:67;:::i;:::-;14041:74;;14124:93;14213:3;14124:93;:::i;:::-;14242:2;14237:3;14233:12;14226:19;;13885:366;;;:::o;14257:398::-;14416:3;14437:83;14518:1;14513:3;14437:83;:::i;:::-;14430:90;;14529:93;14618:3;14529:93;:::i;:::-;14647:1;14642:3;14638:11;14631:18;;14257:398;;;:::o;14661:366::-;14803:3;14824:67;14888:2;14883:3;14824:67;:::i;:::-;14817:74;;14900:93;14989:3;14900:93;:::i;:::-;15018:2;15013:3;15009:12;15002:19;;14661:366;;;:::o;15033:::-;15175:3;15196:67;15260:2;15255:3;15196:67;:::i;:::-;15189:74;;15272:93;15361:3;15272:93;:::i;:::-;15390:2;15385:3;15381:12;15374:19;;15033:366;;;:::o;15405:::-;15547:3;15568:67;15632:2;15627:3;15568:67;:::i;:::-;15561:74;;15644:93;15733:3;15644:93;:::i;:::-;15762:2;15757:3;15753:12;15746:19;;15405:366;;;:::o;15777:118::-;15864:24;15882:5;15864:24;:::i;:::-;15859:3;15852:37;15777:118;;:::o;15901:112::-;15984:22;16000:5;15984:22;:::i;:::-;15979:3;15972:35;15901:112;;:::o;16019:379::-;16203:3;16225:147;16368:3;16225:147;:::i;:::-;16218:154;;16389:3;16382:10;;16019:379;;;:::o;16404:222::-;16497:4;16535:2;16524:9;16520:18;16512:26;;16548:71;16616:1;16605:9;16601:17;16592:6;16548:71;:::i;:::-;16404:222;;;;:::o;16632:332::-;16753:4;16791:2;16780:9;16776:18;16768:26;;16804:71;16872:1;16861:9;16857:17;16848:6;16804:71;:::i;:::-;16885:72;16953:2;16942:9;16938:18;16929:6;16885:72;:::i;:::-;16632:332;;;;;:::o;16970:807::-;17219:4;17257:3;17246:9;17242:19;17234:27;;17271:71;17339:1;17328:9;17324:17;17315:6;17271:71;:::i;:::-;17352:72;17420:2;17409:9;17405:18;17396:6;17352:72;:::i;:::-;17434:80;17510:2;17499:9;17495:18;17486:6;17434:80;:::i;:::-;17524;17600:2;17589:9;17585:18;17576:6;17524:80;:::i;:::-;17614:73;17682:3;17671:9;17667:19;17658:6;17614:73;:::i;:::-;17697;17765:3;17754:9;17750:19;17741:6;17697:73;:::i;:::-;16970:807;;;;;;;;;:::o;17783:210::-;17870:4;17908:2;17897:9;17893:18;17885:26;;17921:65;17983:1;17972:9;17968:17;17959:6;17921:65;:::i;:::-;17783:210;;;;:::o;17999:313::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:78;18300:4;18291:6;18227:78;:::i;:::-;18219:86;;17999:313;;;;:::o;18318:419::-;18484:4;18522:2;18511:9;18507:18;18499:26;;18571:9;18565:4;18561:20;18557:1;18546:9;18542:17;18535:47;18599:131;18725:4;18599:131;:::i;:::-;18591:139;;18318:419;;;:::o;18743:::-;18909:4;18947:2;18936:9;18932:18;18924:26;;18996:9;18990:4;18986:20;18982:1;18971:9;18967:17;18960:47;19024:131;19150:4;19024:131;:::i;:::-;19016:139;;18743:419;;;:::o;19168:::-;19334:4;19372:2;19361:9;19357:18;19349:26;;19421:9;19415:4;19411:20;19407:1;19396:9;19392:17;19385:47;19449:131;19575:4;19449:131;:::i;:::-;19441:139;;19168:419;;;:::o;19593:::-;19759:4;19797:2;19786:9;19782:18;19774:26;;19846:9;19840:4;19836:20;19832:1;19821:9;19817:17;19810:47;19874:131;20000:4;19874:131;:::i;:::-;19866:139;;19593:419;;;:::o;20018:::-;20184:4;20222:2;20211:9;20207:18;20199:26;;20271:9;20265:4;20261:20;20257:1;20246:9;20242:17;20235:47;20299:131;20425:4;20299:131;:::i;:::-;20291:139;;20018:419;;;:::o;20443:::-;20609:4;20647:2;20636:9;20632:18;20624:26;;20696:9;20690:4;20686:20;20682:1;20671:9;20667:17;20660:47;20724:131;20850:4;20724:131;:::i;:::-;20716:139;;20443:419;;;:::o;20868:::-;21034:4;21072:2;21061:9;21057:18;21049:26;;21121:9;21115:4;21111:20;21107:1;21096:9;21092:17;21085:47;21149:131;21275:4;21149:131;:::i;:::-;21141:139;;20868:419;;;:::o;21293:::-;21459:4;21497:2;21486:9;21482:18;21474:26;;21546:9;21540:4;21536:20;21532:1;21521:9;21517:17;21510:47;21574:131;21700:4;21574:131;:::i;:::-;21566:139;;21293:419;;;:::o;21718:::-;21884:4;21922:2;21911:9;21907:18;21899:26;;21971:9;21965:4;21961:20;21957:1;21946:9;21942:17;21935:47;21999:131;22125:4;21999:131;:::i;:::-;21991:139;;21718:419;;;:::o;22143:::-;22309:4;22347:2;22336:9;22332:18;22324:26;;22396:9;22390:4;22386:20;22382:1;22371:9;22367:17;22360:47;22424:131;22550:4;22424:131;:::i;:::-;22416:139;;22143:419;;;:::o;22568:::-;22734:4;22772:2;22761:9;22757:18;22749:26;;22821:9;22815:4;22811:20;22807:1;22796:9;22792:17;22785:47;22849:131;22975:4;22849:131;:::i;:::-;22841:139;;22568:419;;;:::o;22993:::-;23159:4;23197:2;23186:9;23182:18;23174:26;;23246:9;23240:4;23236:20;23232:1;23221:9;23217:17;23210:47;23274:131;23400:4;23274:131;:::i;:::-;23266:139;;22993:419;;;:::o;23418:::-;23584:4;23622:2;23611:9;23607:18;23599:26;;23671:9;23665:4;23661:20;23657:1;23646:9;23642:17;23635:47;23699:131;23825:4;23699:131;:::i;:::-;23691:139;;23418:419;;;:::o;23843:::-;24009:4;24047:2;24036:9;24032:18;24024:26;;24096:9;24090:4;24086:20;24082:1;24071:9;24067:17;24060:47;24124:131;24250:4;24124:131;:::i;:::-;24116:139;;23843:419;;;:::o;24268:222::-;24361:4;24399:2;24388:9;24384:18;24376:26;;24412:71;24480:1;24469:9;24465:17;24456:6;24412:71;:::i;:::-;24268:222;;;;:::o;24496:831::-;24759:4;24797:3;24786:9;24782:19;24774:27;;24811:71;24879:1;24868:9;24864:17;24855:6;24811:71;:::i;:::-;24892:80;24968:2;24957:9;24953:18;24944:6;24892:80;:::i;:::-;25019:9;25013:4;25009:20;25004:2;24993:9;24989:18;24982:48;25047:108;25150:4;25141:6;25047:108;:::i;:::-;25039:116;;25165:72;25233:2;25222:9;25218:18;25209:6;25165:72;:::i;:::-;25247:73;25315:3;25304:9;25300:19;25291:6;25247:73;:::i;:::-;24496:831;;;;;;;;:::o;25333:214::-;25422:4;25460:2;25449:9;25445:18;25437:26;;25473:67;25537:1;25526:9;25522:17;25513:6;25473:67;:::i;:::-;25333:214;;;;:::o;25553:129::-;25587:6;25614:20;;:::i;:::-;25604:30;;25643:33;25671:4;25663:6;25643:33;:::i;:::-;25553:129;;;:::o;25688:75::-;25721:6;25754:2;25748:9;25738:19;;25688:75;:::o;25769:311::-;25846:4;25936:18;25928:6;25925:30;25922:56;;;25958:18;;:::i;:::-;25922:56;26008:4;26000:6;25996:17;25988:25;;26068:4;26062;26058:15;26050:23;;25769:311;;;:::o;26086:132::-;26153:4;26176:3;26168:11;;26206:4;26201:3;26197:14;26189:22;;26086:132;;;:::o;26224:114::-;26291:6;26325:5;26319:12;26309:22;;26224:114;;;:::o;26344:99::-;26396:6;26430:5;26424:12;26414:22;;26344:99;;;:::o;26449:113::-;26519:4;26551;26546:3;26542:14;26534:22;;26449:113;;;:::o;26568:184::-;26667:11;26701:6;26696:3;26689:19;26741:4;26736:3;26732:14;26717:29;;26568:184;;;;:::o;26758:147::-;26859:11;26896:3;26881:18;;26758:147;;;;:::o;26911:169::-;26995:11;27029:6;27024:3;27017:19;27069:4;27064:3;27060:14;27045:29;;26911:169;;;;:::o;27086:305::-;27126:3;27145:20;27163:1;27145:20;:::i;:::-;27140:25;;27179:20;27197:1;27179:20;:::i;:::-;27174:25;;27333:1;27265:66;27261:74;27258:1;27255:81;27252:107;;;27339:18;;:::i;:::-;27252:107;27383:1;27380;27376:9;27369:16;;27086:305;;;;:::o;27397:185::-;27437:1;27454:20;27472:1;27454:20;:::i;:::-;27449:25;;27488:20;27506:1;27488:20;:::i;:::-;27483:25;;27527:1;27517:35;;27532:18;;:::i;:::-;27517:35;27574:1;27571;27567:9;27562:14;;27397:185;;;;:::o;27588:348::-;27628:7;27651:20;27669:1;27651:20;:::i;:::-;27646:25;;27685:20;27703:1;27685:20;:::i;:::-;27680:25;;27873:1;27805:66;27801:74;27798:1;27795:81;27790:1;27783:9;27776:17;27772:105;27769:131;;;27880:18;;:::i;:::-;27769:131;27928:1;27925;27921:9;27910:20;;27588:348;;;;:::o;27942:191::-;27982:4;28002:20;28020:1;28002:20;:::i;:::-;27997:25;;28036:20;28054:1;28036:20;:::i;:::-;28031:25;;28075:1;28072;28069:8;28066:34;;;28080:18;;:::i;:::-;28066:34;28125:1;28122;28118:9;28110:17;;27942:191;;;;:::o;28139:96::-;28176:7;28205:24;28223:5;28205:24;:::i;:::-;28194:35;;28139:96;;;:::o;28241:90::-;28275:7;28318:5;28311:13;28304:21;28293:32;;28241:90;;;:::o;28337:126::-;28374:7;28414:42;28407:5;28403:54;28392:65;;28337:126;;;:::o;28469:77::-;28506:7;28535:5;28524:16;;28469:77;;;:::o;28552:86::-;28587:7;28627:4;28620:5;28616:16;28605:27;;28552:86;;;:::o;28644:121::-;28702:9;28735:24;28753:5;28735:24;:::i;:::-;28722:37;;28644:121;;;:::o;28771:307::-;28839:1;28849:113;28863:6;28860:1;28857:13;28849:113;;;28948:1;28943:3;28939:11;28933:18;28929:1;28924:3;28920:11;28913:39;28885:2;28882:1;28878:10;28873:15;;28849:113;;;28980:6;28977:1;28974:13;28971:101;;;29060:1;29051:6;29046:3;29042:16;29035:27;28971:101;28820:258;28771:307;;;:::o;29084:281::-;29167:27;29189:4;29167:27;:::i;:::-;29159:6;29155:40;29297:6;29285:10;29282:22;29261:18;29249:10;29246:34;29243:62;29240:88;;;29308:18;;:::i;:::-;29240:88;29348:10;29344:2;29337:22;29127:238;29084:281;;:::o;29371:233::-;29410:3;29433:24;29451:5;29433:24;:::i;:::-;29424:33;;29479:66;29472:5;29469:77;29466:103;;;29549:18;;:::i;:::-;29466:103;29596:1;29589:5;29585:13;29578:20;;29371:233;;;:::o;29610:180::-;29658:77;29655:1;29648:88;29755:4;29752:1;29745:15;29779:4;29776:1;29769:15;29796:180;29844:77;29841:1;29834:88;29941:4;29938:1;29931:15;29965:4;29962:1;29955:15;29982:180;30030:77;30027:1;30020:88;30127:4;30124:1;30117:15;30151:4;30148:1;30141:15;30168:180;30216:77;30213:1;30206:88;30313:4;30310:1;30303:15;30337:4;30334:1;30327:15;30354:117;30463:1;30460;30453:12;30477:117;30586:1;30583;30576:12;30600:117;30709:1;30706;30699:12;30723:117;30832:1;30829;30822:12;30846:117;30955:1;30952;30945:12;30969:102;31010:6;31061:2;31057:7;31052:2;31045:5;31041:14;31037:28;31027:38;;30969:102;;;:::o;31077:297::-;31217:34;31213:1;31205:6;31201:14;31194:58;31286:34;31281:2;31273:6;31269:15;31262:59;31355:11;31350:2;31342:6;31338:15;31331:36;31077:297;:::o;31380:230::-;31520:34;31516:1;31508:6;31504:14;31497:58;31589:13;31584:2;31576:6;31572:15;31565:38;31380:230;:::o;31616:177::-;31756:29;31752:1;31744:6;31740:14;31733:53;31616:177;:::o;31799:228::-;31939:34;31935:1;31927:6;31923:14;31916:58;32008:11;32003:2;31995:6;31991:15;31984:36;31799:228;:::o;32033:177::-;32173:29;32169:1;32161:6;32157:14;32150:53;32033:177;:::o;32216:229::-;32356:34;32352:1;32344:6;32340:14;32333:58;32425:12;32420:2;32412:6;32408:15;32401:37;32216:229;:::o;32451:176::-;32591:28;32587:1;32579:6;32575:14;32568:52;32451:176;:::o;32633:226::-;32773:34;32769:1;32761:6;32757:14;32750:58;32842:9;32837:2;32829:6;32825:15;32818:34;32633:226;:::o;32865:220::-;33005:34;33001:1;32993:6;32989:14;32982:58;33074:3;33069:2;33061:6;33057:15;33050:28;32865:220;:::o;33091:179::-;33231:31;33227:1;33219:6;33215:14;33208:55;33091:179;:::o;33276:182::-;33416:34;33412:1;33404:6;33400:14;33393:58;33276:182;:::o;33464:114::-;;:::o;33584:173::-;33724:25;33720:1;33712:6;33708:14;33701:49;33584:173;:::o;33763:227::-;33903:34;33899:1;33891:6;33887:14;33880:58;33972:10;33967:2;33959:6;33955:15;33948:35;33763:227;:::o;33996:231::-;34136:34;34132:1;34124:6;34120:14;34113:58;34205:14;34200:2;34192:6;34188:15;34181:39;33996:231;:::o;34233:122::-;34306:24;34324:5;34306:24;:::i;:::-;34299:5;34296:35;34286:63;;34345:1;34342;34335:12;34286:63;34233:122;:::o;34361:116::-;34431:21;34446:5;34431:21;:::i;:::-;34424:5;34421:32;34411:60;;34467:1;34464;34457:12;34411:60;34361:116;:::o;34483:122::-;34556:24;34574:5;34556:24;:::i;:::-;34549:5;34546:35;34536:63;;34595:1;34592;34585:12;34536:63;34483:122;:::o
Swarm Source
ipfs://4ad117c7b4752717509d153729929afe9c391571537cd4ec58a2e829c83ce981
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.