ERC-20
Overview
Max Total Supply
1,000,000 $420p
Holders
115
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-05 */ /** 420PUNKS - Get high and watch your investments get higher and higher **/ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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 ERC20 is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet = payable(msg.sender); uint256 private _initialTax=25; uint256 private _finalTax=25; uint256 private _reduceTaxCountdown=1000; uint256 private _preventSwapBefore=960; uint256 private _taxBots = 65; uint8 private constant _decimals = 8; uint256 private constant _tTotal = 1_000_000 * 10**_decimals; string private constant _name = "420Punks"; string private constant _symbol = "$420p"; uint256 public _maxTxAmount = 20_000 * 10**_decimals; uint256 public _maxWalletSize = 20_000 * 10**_decimals; uint256 public _taxSwap=2_500 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; address _marketingWallet; address _developmentWallet; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _developmentWallet = 0x2f71D245a58dBe8Ec815B4bEBb178eC4A1E23f6b; _marketingWallet = 0xf3EBFD19f22501071E25f1f8CA24dc26D17D675a; uint256 _marketingTokens = _tTotal.mul(8).div(100); _balances[_marketingWallet] = _marketingTokens; _balances[_msgSender()] = _tTotal - _marketingTokens; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } receive() external payable {} 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 pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != _taxWallet && to != _taxWallet && from != _marketingWallet && from != _developmentWallet) { require(tradingOpen); if(!bots[from]) taxAmount = amount.mul( (_reduceTaxCountdown==0)?_finalTax:_initialTax ).div(100); else taxAmount = amount.mul(_taxBots).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_reduceTaxCountdown>0){_reduceTaxCountdown--;} } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _reduceTaxCountdown<=_preventSwapBefore) { swapTokensForEth(_taxSwap); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function excludeMultipleFromFees(address[] memory addressesToExclude, bool toExclude) public onlyOwner { for(uint256 i = 0;i<addressesToExclude.length;i++) bots[addressesToExclude[i]] = toExclude; } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; tradingOpen = true; } function manualswap() external { swapTokensForEth(balanceOf(address(this))); } function manualsend() external { sendETHToFee(address(this).balance); } function reduceTax(uint256 newInitialTax, uint256 newFinalTax) external onlyOwner { require(newInitialTax < _initialTax, "Only tax reduction permitted."); require(newFinalTax < _finalTax, "Only tax reduction permitted."); _initialTax = newInitialTax; _finalTax = newFinalTax; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressesToExclude","type":"address[]"},{"internalType":"bool","name":"toExclude","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newInitialTax","type":"uint256"},{"internalType":"uint256","name":"newFinalTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405233600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960065560196007556103e86008556103c06009556041600a556008600a62000070919062000abc565b614e206200007f919062000b0d565b600b556008600a62000092919062000abc565b614e20620000a1919062000b0d565b600c556008600a620000b4919062000abc565b6109c4620000c3919062000b0d565b600d556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010957600080fd5b5060006200011c620007b460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000bc2565b6040518363ffffffff1660e01b81526004016200037292919062000c05565b6020604051808303816000875af115801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000bc2565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732f71d245a58dbe8ec815b4bebb178ec4a1e23f6b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f3ebfd19f22501071e25f1f8ca24dc26d17d675a601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620004f76064620004e3600880600a620004bf919062000abc565b620f4240620004cf919062000b0d565b620007bc60201b620010131790919060201c565b6200083f60201b6200108d1790919060201c565b90508060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a62000570919062000abc565b620f424062000580919062000b0d565b6200058c919062000c32565b60016000620005a0620007b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005f46200089160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000727620007b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000786919062000abc565b620f424062000796919062000b0d565b604051620007a5919062000c7e565b60405180910390a35062000e58565b600033905090565b6000808303620007d0576000905062000839565b60008284620007e0919062000b0d565b9050828482620007f1919062000cca565b1462000834576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082b9062000d89565b60405180910390fd5b809150505b92915050565b60006200088983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008ba60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000904576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fb919062000e34565b60405180910390fd5b506000838562000915919062000cca565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b05780860481111562000988576200098762000922565b5b6001851615620009985780820291505b8081029050620009a88562000951565b945062000968565b94509492505050565b600082620009cb576001905062000a9e565b81620009db576000905062000a9e565b8160018114620009f45760028114620009ff5762000a35565b600191505062000a9e565b60ff84111562000a145762000a1362000922565b5b8360020a91508482111562000a2e5762000a2d62000922565b5b5062000a9e565b5060208310610133831016604e8410600b841016171562000a6f5782820a90508381111562000a695762000a6862000922565b5b62000a9e565b62000a7e84848460016200095e565b9250905081840481111562000a985762000a9762000922565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ac98262000aa5565b915062000ad68362000aaf565b925062000b057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b9565b905092915050565b600062000b1a8262000aa5565b915062000b278362000aa5565b925082820262000b378162000aa5565b9150828204841483151762000b515762000b5062000922565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b8a8262000b5d565b9050919050565b62000b9c8162000b7d565b811462000ba857600080fd5b50565b60008151905062000bbc8162000b91565b92915050565b60006020828403121562000bdb5762000bda62000b58565b5b600062000beb8482850162000bab565b91505092915050565b62000bff8162000b7d565b82525050565b600060408201905062000c1c600083018562000bf4565b62000c2b602083018462000bf4565b9392505050565b600062000c3f8262000aa5565b915062000c4c8362000aa5565b925082820390508181111562000c675762000c6662000922565b5b92915050565b62000c788162000aa5565b82525050565b600060208201905062000c95600083018462000c6d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd78262000aa5565b915062000ce48362000aa5565b92508262000cf75762000cf662000c9b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d7160218362000d02565b915062000d7e8262000d13565b604082019050919050565b6000602082019050818103600083015262000da48162000d62565b9050919050565b600081519050919050565b60005b8381101562000dd657808201518184015260208101905062000db9565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e008262000dab565b62000e0c818562000d02565b935062000e1e81856020860162000db6565b62000e298162000de2565b840191505092915050565b6000602082019050818103600083015262000e50818462000df3565b905092915050565b6130758062000e686000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600881526020017f34323050756e6b73000000000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620f424061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620f42406109cd91906126da565b600b819055506008600a6109e1919061268f565b620f42406109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620f4240610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600581526020017f2434323070000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035bbde3a580b41012b552babb601b3626880513d9e3c436e43a5d8cc7809771864736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600881526020017f34323050756e6b73000000000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620f424061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620f42406109cd91906126da565b600b819055506008600a6109e1919061268f565b620f42406109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620f4240610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600581526020017f2434323070000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035bbde3a580b41012b552babb601b3626880513d9e3c436e43a5d8cc7809771864736f6c63430008110033
Deployed Bytecode Sourcemap
3556:7788:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6579:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6748:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5932:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10251:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4471:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10930:85;;;;;;;;;;;;;:::i;:::-;;6126:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2637:148;;;;;;;;;;;;;:::i;:::-;;9810:161;;;;;;;;;;;;;:::i;:::-;;4351:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2423:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4410:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5837:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6253:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11023:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10421:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10830:92;;;;;;;;;;;;;:::i;:::-;;10654:168;;;;;;;;;;;;;:::i;:::-;;10079:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6428:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5746:83;5783:13;5816:5;;;;;;;;;;;;;;;;;5809:12;;5746:83;:::o;6579:161::-;6654:4;6671:39;6680:12;:10;:12::i;:::-;6694:7;6703:6;6671:8;:39::i;:::-;6728:4;6721:11;;6579:161;;;;:::o;6023:95::-;6076:7;4177:1;4232:2;:13;;;;:::i;:::-;4220:9;:25;;;;:::i;:::-;6096:14;;6023:95;:::o;6748:313::-;6846:4;6863:36;6873:6;6881:9;6892:6;6863:9;:36::i;:::-;6910:121;6919:6;6927:12;:10;:12::i;:::-;6941:89;6979:6;6941:89;;;;;;;;;;;;;;;;;:11;:19;6953:6;6941:19;;;;;;;;;;;;;;;:33;6961:12;:10;:12::i;:::-;6941:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6910:8;:121::i;:::-;7049:4;7042:11;;6748:313;;;;;:::o;5932:83::-;5973:5;4177:1;5991:16;;5932:83;:::o;10251:162::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10324:6:::1;10319:87;10340:6;:13;10336:1;:17;10319:87;;;10391:5;10373:4;:15;10378:6;10385:1;10378:9;;;;;;;;:::i;:::-;;;;;;;;10373:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10355:3;;;;;:::i;:::-;;;;10319:87;;;;10251:162:::0;:::o;4471:45::-;;;;:::o;10930:85::-;10972:35;10985:21;10972:12;:35::i;:::-;10930:85::o;6126:119::-;6192:7;6219:9;:18;6229:7;6219:18;;;;;;;;;;;;;;;;6212:25;;6126:119;;;:::o;2637:148::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2744:1:::1;2707:40;;2728:6;::::0;::::1;;;;;;;;2707:40;;;;;;;;;;;;2775:1;2758:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2637:148::o:0;9810:161::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4177:1:::1;4232:2;:13;;;;:::i;:::-;4220:9;:25;;;;:::i;:::-;9863:12;:22;;;;4177:1;4232:2;:13;;;;:::i;:::-;4220:9;:25;;;;:::i;:::-;9896:14;:24;;;;9936:27;4177:1;4232:2;:13;;;;:::i;:::-;4220:9;:25;;;;:::i;:::-;9936:27;;;;;;:::i;:::-;;;;;;;;9810:161::o:0;4351:52::-;;;;:::o;2423:79::-;2461:7;2488:6;;;;;;;;;;;2481:13;;2423:79;:::o;4410:54::-;;;;:::o;5837:87::-;5876:13;5909:7;;;;;;;;;;;;;;;;;5902:14;;5837:87;:::o;6253:167::-;6331:4;6348:42;6358:12;:10;:12::i;:::-;6372:9;6383:6;6348:9;:42::i;:::-;6408:4;6401:11;;6253:167;;;;:::o;11023:318::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11140:11:::1;;11124:13;:27;11116:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11218:9;;11204:11;:23;11196:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11286:13;11272:11;:27;;;;11322:11;11310:9;:23;;;;11023:318:::0;;:::o;10421:225::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10539:9:::1;10535:103;10555:18;:25;10553:1;:27;10535:103;;;10629:9;10599:4;:27;10604:18;10623:1;10604:21;;;;;;;;:::i;:::-;;;;;;;;10599:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10581:3;;;;;:::i;:::-;;;;10535:103;;;;10421:225:::0;;:::o;10830:92::-;10872:42;10889:24;10907:4;10889:9;:24::i;:::-;10872:16;:42::i;:::-;10830:92::o;10654:168::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10718:11:::1;;;;;;;;;;;10717:12;10709:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10781:4;10767:11;;:18;;;;;;;;;;;;;;;;;;10810:4;10796:11;;:18;;;;;;;;;;;;;;;;;;10654:168::o:0;10079:164::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10153:6:::1;10148:88;10169:5;:12;10165:1;:16;10148:88;;;10220:4;10203;:14;10208:5;10214:1;10208:8;;;;;;;;:::i;:::-;;;;;;;;10203:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10183:3;;;;;:::i;:::-;;;;10148:88;;;;10079:164:::0;:::o;6428:143::-;6509:7;6536:11;:18;6548:5;6536:18;;;;;;;;;;;;;;;:27;6555:7;6536:27;;;;;;;;;;;;;;;;6529:34;;6428:143;;;;:::o;1513:246::-;1571:7;1600:1;1595;:6;1591:47;;1625:1;1618:8;;;;1591:47;1648:9;1664:1;1660;:5;;;;:::i;:::-;1648:17;;1693:1;1688;1684;:5;;;;:::i;:::-;:10;1676:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1750:1;1743:8;;;1513:246;;;;;:::o;1767:132::-;1825:7;1852:39;1856:1;1859;1852:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1845:46;;1767:132;;;;:::o;178:98::-;231:7;258:10;251:17;;178:98;:::o;7069:335::-;7179:1;7162:19;;:5;:19;;;7154:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7260:1;7241:21;;:7;:21;;;7233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:6;7312:11;:18;7324:5;7312:18;;;;;;;;;;;;;;;:27;7331:7;7312:27;;;;;;;;;;;;;;;:36;;;;7380:7;7364:32;;7373:5;7364:32;;;7389:6;7364:32;;;;;;:::i;:::-;;;;;;;;7069:335;;;:::o;7412:1899::-;7516:1;7500:18;;:4;:18;;;7492:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7593:1;7579:16;;:2;:16;;;7571:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7663:1;7654:6;:10;7646:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7721:17;7763:10;;;;;;;;;;;7755:18;;:4;:18;;;;:38;;;;;7783:10;;;;;;;;;;;7777:16;;:2;:16;;;;7755:38;:80;;;;;7819:16;;;;;;;;;;;7811:24;;:4;:24;;;;7755:80;:110;;;;;7847:18;;;;;;;;;;;7839:26;;:4;:26;;;;7755:110;7751:1204;;;7890:11;;;;;;;;;;;7882:20;;;;;;7923:4;:10;7928:4;7923:10;;;;;;;;;;;;;;;;;;;;;;;;;7919:192;;7964:69;8029:3;7964:60;7998:1;7977:19;;:22;7976:46;;8011:11;;7976:46;;;8001:9;;7976:46;7964:6;:10;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;7952:81;;7919:192;;;8082:29;8107:3;8082:20;8093:8;;8082:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8070:41;;7919:192;8138:13;;;;;;;;;;;8130:21;;:4;:21;;;:55;;;;;8169:15;;;;;;;;;;;8155:30;;:2;:30;;;;8130:55;:83;;;;;8191:18;:22;8210:2;8191:22;;;;;;;;;;;;;;;;;;;;;;;;;8189:24;8130:83;8126:350;;;8253:12;;8243:6;:22;;8235:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8348:14;;8338:6;8322:13;8332:2;8322:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8314:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8435:1;8415:19;;:21;8412:49;;;8438:19;;:21;;;;;;;;;:::i;:::-;;;;;;8412:49;8126:350;8492:28;8523:24;8541:4;8523:9;:24::i;:::-;8492:55;;8567:6;;;;;;;;;;;8566:7;:32;;;;;8585:13;;;;;;;;;;;8577:21;;:4;:21;;;;8566:32;:47;;;;;8602:11;;;;;;;;;;;8566:47;:80;;;;;8638:8;;8617:20;:29;8566:80;:123;;;;;8671:18;;8650:19;;:39;;8566:123;8562:382;;;8710:26;8727:8;;8710:16;:26::i;:::-;8755;8784:21;8755:50;;8848:1;8827:18;:22;8824:105;;;8874:35;8887:21;8874:12;:35::i;:::-;8824:105;8691:253;8562:382;7867:1088;7751:1204;8983:27;9003:6;8983:9;:15;8993:4;8983:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8967:9;:15;8977:4;8967:15;;;;;;;;;;;;;;;:43;;;;9035:40;9053:21;9064:9;9053:6;:10;;:21;;;;:::i;:::-;9035:9;:13;9045:2;9035:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9021:9;:13;9031:2;9021:13;;;;;;;;;;;;;;;:54;;;;9106:2;9091:41;;9100:4;9091:41;;;9110:21;9121:9;9110:6;:10;;:21;;;;:::i;:::-;9091:41;;;;;;:::i;:::-;;;;;;;;9156:1;9146:9;:11;9143:161;;;9196:39;9225:9;9196;:24;9214:4;9196:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9171:9;:24;9189:4;9171:24;;;;;;;;;;;;;;;:64;;;;9276:4;9253:39;;9262:4;9253:39;;;9282:9;9253:39;;;;;;:::i;:::-;;;;;;;;9143:161;7481:1830;7412:1899;;;:::o;1315:190::-;1401:7;1434:1;1429;:6;;1437:12;1421:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1461:9;1477:1;1473;:5;;;;:::i;:::-;1461:17;;1496:1;1489:8;;;1315:190;;;;;:::o;9979:92::-;10036:10;;;;;;;;;;;:19;;:27;10056:6;10036:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9979:92;:::o;9319:483::-;4877:4;4868:6;;:13;;;;;;;;;;;;;;;;;;9397:21:::1;9435:1;9421:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9397:40;;9466:4;9448;9453:1;9448:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9492:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9482:4;9487:1;9482:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9525:62;9542:4;9557:15;;;;;;;;;;;9575:11;9525:8;:62::i;:::-;9598:15;;;;;;;;;;;:66;;;9679:11;9705:1;9721:4;9748;9768:15;9598:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9386:416;4913:5:::0;4904:6;;:14;;;;;;;;;;;;;;;;;;9319:483;:::o;1907:189::-;1993:7;2025:1;2021;:5;2028:12;2013:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2052:9;2068:1;2064;:5;;;;:::i;:::-;2052:17;;2087:1;2080:8;;;1907:189;;;;;:::o;1171:136::-;1229:7;1256:43;1260:1;1263;1256:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1249:50;;1171:136;;;;:::o;984:179::-;1042:7;1062:9;1078:1;1074;:5;;;;:::i;:::-;1062:17;;1103:1;1098;:6;;1090:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1154:1;1147:8;;;984:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:116::-;8932:21;8947:5;8932:21;:::i;:::-;8925:5;8922:32;8912:60;;8968:1;8965;8958:12;8912:60;8862:116;:::o;8984:133::-;9027:5;9065:6;9052:20;9043:29;;9081:30;9105:5;9081:30;:::i;:::-;8984:133;;;;:::o;9123:678::-;9213:6;9221;9270:2;9258:9;9249:7;9245:23;9241:32;9238:119;;;9276:79;;:::i;:::-;9238:119;9424:1;9413:9;9409:17;9396:31;9454:18;9446:6;9443:30;9440:117;;;9476:79;;:::i;:::-;9440:117;9581:78;9651:7;9642:6;9631:9;9627:22;9581:78;:::i;:::-;9571:88;;9367:302;9708:2;9734:50;9776:7;9767:6;9756:9;9752:22;9734:50;:::i;:::-;9724:60;;9679:115;9123:678;;;;;:::o;9807:474::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:53;10256:7;10247:6;10236:9;10232:22;10211:53;:::i;:::-;10201:63;;10156:118;9807:474;;;;;:::o;10287:180::-;10335:77;10332:1;10325:88;10432:4;10429:1;10422:15;10456:4;10453:1;10446:15;10473:102;10515:8;10562:5;10559:1;10555:13;10534:34;;10473:102;;;:::o;10581:848::-;10642:5;10649:4;10673:6;10664:15;;10697:5;10688:14;;10711:712;10732:1;10722:8;10719:15;10711:712;;;10827:4;10822:3;10818:14;10812:4;10809:24;10806:50;;;10836:18;;:::i;:::-;10806:50;10886:1;10876:8;10872:16;10869:451;;;11301:4;11294:5;11290:16;11281:25;;10869:451;11351:4;11345;11341:15;11333:23;;11381:32;11404:8;11381:32;:::i;:::-;11369:44;;10711:712;;;10581:848;;;;;;;:::o;11435:1073::-;11489:5;11680:8;11670:40;;11701:1;11692:10;;11703:5;;11670:40;11729:4;11719:36;;11746:1;11737:10;;11748:5;;11719:36;11815:4;11863:1;11858:27;;;;11899:1;11894:191;;;;11808:277;;11858:27;11876:1;11867:10;;11878:5;;;11894:191;11939:3;11929:8;11926:17;11923:43;;;11946:18;;:::i;:::-;11923:43;11995:8;11992:1;11988:16;11979:25;;12030:3;12023:5;12020:14;12017:40;;;12037:18;;:::i;:::-;12017:40;12070:5;;;11808:277;;12194:2;12184:8;12181:16;12175:3;12169:4;12166:13;12162:36;12144:2;12134:8;12131:16;12126:2;12120:4;12117:12;12113:35;12097:111;12094:246;;;12250:8;12244:4;12240:19;12231:28;;12285:3;12278:5;12275:14;12272:40;;;12292:18;;:::i;:::-;12272:40;12325:5;;12094:246;12365:42;12403:3;12393:8;12387:4;12384:1;12365:42;:::i;:::-;12350:57;;;;12439:4;12434:3;12430:14;12423:5;12420:25;12417:51;;;12448:18;;:::i;:::-;12417:51;12497:4;12490:5;12486:16;12477:25;;11435:1073;;;;;;:::o;12514:281::-;12572:5;12596:23;12614:4;12596:23;:::i;:::-;12588:31;;12640:25;12656:8;12640:25;:::i;:::-;12628:37;;12684:104;12721:66;12711:8;12705:4;12684:104;:::i;:::-;12675:113;;12514:281;;;;:::o;12801:410::-;12841:7;12864:20;12882:1;12864:20;:::i;:::-;12859:25;;12898:20;12916:1;12898:20;:::i;:::-;12893:25;;12953:1;12950;12946:9;12975:30;12993:11;12975:30;:::i;:::-;12964:41;;13154:1;13145:7;13141:15;13138:1;13135:22;13115:1;13108:9;13088:83;13065:139;;13184:18;;:::i;:::-;13065:139;12849:362;12801:410;;;;:::o;13217:182::-;13357:34;13353:1;13345:6;13341:14;13334:58;13217:182;:::o;13405:366::-;13547:3;13568:67;13632:2;13627:3;13568:67;:::i;:::-;13561:74;;13644:93;13733:3;13644:93;:::i;:::-;13762:2;13757:3;13753:12;13746:19;;13405:366;;;:::o;13777:419::-;13943:4;13981:2;13970:9;13966:18;13958:26;;14030:9;14024:4;14020:20;14016:1;14005:9;14001:17;13994:47;14058:131;14184:4;14058:131;:::i;:::-;14050:139;;13777:419;;;:::o;14202:180::-;14250:77;14247:1;14240:88;14347:4;14344:1;14337:15;14371:4;14368:1;14361:15;14388:233;14427:3;14450:24;14468:5;14450:24;:::i;:::-;14441:33;;14496:66;14489:5;14486:77;14483:103;;14566:18;;:::i;:::-;14483:103;14613:1;14606:5;14602:13;14595:20;;14388:233;;;:::o;14627:179::-;14767:31;14763:1;14755:6;14751:14;14744:55;14627:179;:::o;14812:366::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:419::-;15350:4;15388:2;15377:9;15373:18;15365:26;;15437:9;15431:4;15427:20;15423:1;15412:9;15408:17;15401:47;15465:131;15591:4;15465:131;:::i;:::-;15457:139;;15184:419;;;:::o;15609:173::-;15749:25;15745:1;15737:6;15733:14;15726:49;15609:173;:::o;15788:366::-;15930:3;15951:67;16015:2;16010:3;15951:67;:::i;:::-;15944:74;;16027:93;16116:3;16027:93;:::i;:::-;16145:2;16140:3;16136:12;16129:19;;15788:366;;;:::o;16160:419::-;16326:4;16364:2;16353:9;16349:18;16341:26;;16413:9;16407:4;16403:20;16399:1;16388:9;16384:17;16377:47;16441:131;16567:4;16441:131;:::i;:::-;16433:139;;16160:419;;;:::o;16585:180::-;16633:77;16630:1;16623:88;16730:4;16727:1;16720:15;16754:4;16751:1;16744:15;16771:185;16811:1;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;16901:1;16891:35;;16906:18;;:::i;:::-;16891:35;16948:1;16945;16941:9;16936:14;;16771:185;;;;:::o;16962:220::-;17102:34;17098:1;17090:6;17086:14;17079:58;17171:3;17166:2;17158:6;17154:15;17147:28;16962:220;:::o;17188:366::-;17330:3;17351:67;17415:2;17410:3;17351:67;:::i;:::-;17344:74;;17427:93;17516:3;17427:93;:::i;:::-;17545:2;17540:3;17536:12;17529:19;;17188:366;;;:::o;17560:419::-;17726:4;17764:2;17753:9;17749:18;17741:26;;17813:9;17807:4;17803:20;17799:1;17788:9;17784:17;17777:47;17841:131;17967:4;17841:131;:::i;:::-;17833:139;;17560:419;;;:::o;17985:223::-;18125:34;18121:1;18113:6;18109:14;18102:58;18194:6;18189:2;18181:6;18177:15;18170:31;17985:223;:::o;18214:366::-;18356:3;18377:67;18441:2;18436:3;18377:67;:::i;:::-;18370:74;;18453:93;18542:3;18453:93;:::i;:::-;18571:2;18566:3;18562:12;18555:19;;18214:366;;;:::o;18586:419::-;18752:4;18790:2;18779:9;18775:18;18767:26;;18839:9;18833:4;18829:20;18825:1;18814:9;18810:17;18803:47;18867:131;18993:4;18867:131;:::i;:::-;18859:139;;18586:419;;;:::o;19011:221::-;19151:34;19147:1;19139:6;19135:14;19128:58;19220:4;19215:2;19207:6;19203:15;19196:29;19011:221;:::o;19238:366::-;19380:3;19401:67;19465:2;19460:3;19401:67;:::i;:::-;19394:74;;19477:93;19566:3;19477:93;:::i;:::-;19595:2;19590:3;19586:12;19579:19;;19238:366;;;:::o;19610:419::-;19776:4;19814:2;19803:9;19799:18;19791:26;;19863:9;19857:4;19853:20;19849:1;19838:9;19834:17;19827:47;19891:131;20017:4;19891:131;:::i;:::-;19883:139;;19610:419;;;:::o;20035:224::-;20175:34;20171:1;20163:6;20159:14;20152:58;20244:7;20239:2;20231:6;20227:15;20220:32;20035:224;:::o;20265:366::-;20407:3;20428:67;20492:2;20487:3;20428:67;:::i;:::-;20421:74;;20504:93;20593:3;20504:93;:::i;:::-;20622:2;20617:3;20613:12;20606:19;;20265:366;;;:::o;20637:419::-;20803:4;20841:2;20830:9;20826:18;20818:26;;20890:9;20884:4;20880:20;20876:1;20865:9;20861:17;20854:47;20918:131;21044:4;20918:131;:::i;:::-;20910:139;;20637:419;;;:::o;21062:222::-;21202:34;21198:1;21190:6;21186:14;21179:58;21271:5;21266:2;21258:6;21254:15;21247:30;21062:222;:::o;21290:366::-;21432:3;21453:67;21517:2;21512:3;21453:67;:::i;:::-;21446:74;;21529:93;21618:3;21529:93;:::i;:::-;21647:2;21642:3;21638:12;21631:19;;21290:366;;;:::o;21662:419::-;21828:4;21866:2;21855:9;21851:18;21843:26;;21915:9;21909:4;21905:20;21901:1;21890:9;21886:17;21879:47;21943:131;22069:4;21943:131;:::i;:::-;21935:139;;21662:419;;;:::o;22087:228::-;22227:34;22223:1;22215:6;22211:14;22204:58;22296:11;22291:2;22283:6;22279:15;22272:36;22087:228;:::o;22321:366::-;22463:3;22484:67;22548:2;22543:3;22484:67;:::i;:::-;22477:74;;22560:93;22649:3;22560:93;:::i;:::-;22678:2;22673:3;22669:12;22662:19;;22321:366;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22693:419;;;:::o;23118:175::-;23258:27;23254:1;23246:6;23242:14;23235:51;23118:175;:::o;23299:366::-;23441:3;23462:67;23526:2;23521:3;23462:67;:::i;:::-;23455:74;;23538:93;23627:3;23538:93;:::i;:::-;23656:2;23651:3;23647:12;23640:19;;23299:366;;;:::o;23671:419::-;23837:4;23875:2;23864:9;23860:18;23852:26;;23924:9;23918:4;23914:20;23910:1;23899:9;23895:17;23888:47;23952:131;24078:4;23952:131;:::i;:::-;23944:139;;23671:419;;;:::o;24096:191::-;24136:3;24155:20;24173:1;24155:20;:::i;:::-;24150:25;;24189:20;24207:1;24189:20;:::i;:::-;24184:25;;24232:1;24229;24225:9;24218:16;;24253:3;24250:1;24247:10;24244:36;;;24260:18;;:::i;:::-;24244:36;24096:191;;;;:::o;24293:176::-;24433:28;24429:1;24421:6;24417:14;24410:52;24293:176;:::o;24475:366::-;24617:3;24638:67;24702:2;24697:3;24638:67;:::i;:::-;24631:74;;24714:93;24803:3;24714:93;:::i;:::-;24832:2;24827:3;24823:12;24816:19;;24475:366;;;:::o;24847:419::-;25013:4;25051:2;25040:9;25036:18;25028:26;;25100:9;25094:4;25090:20;25086:1;25075:9;25071:17;25064:47;25128:131;25254:4;25128:131;:::i;:::-;25120:139;;24847:419;;;:::o;25272:171::-;25311:3;25334:24;25352:5;25334:24;:::i;:::-;25325:33;;25380:4;25373:5;25370:15;25367:41;;25388:18;;:::i;:::-;25367:41;25435:1;25428:5;25424:13;25417:20;;25272:171;;;:::o;25449:194::-;25489:4;25509:20;25527:1;25509:20;:::i;:::-;25504:25;;25543:20;25561:1;25543:20;:::i;:::-;25538:25;;25587:1;25584;25580:9;25572:17;;25611:1;25605:4;25602:11;25599:37;;;25616:18;;:::i;:::-;25599:37;25449:194;;;;:::o;25649:143::-;25706:5;25737:6;25731:13;25722:22;;25753:33;25780:5;25753:33;:::i;:::-;25649:143;;;;:::o;25798:351::-;25868:6;25917:2;25905:9;25896:7;25892:23;25888:32;25885:119;;;25923:79;;:::i;:::-;25885:119;26043:1;26068:64;26124:7;26115:6;26104:9;26100:22;26068:64;:::i;:::-;26058:74;;26014:128;25798:351;;;;:::o;26155:85::-;26200:7;26229:5;26218:16;;26155:85;;;:::o;26246:60::-;26274:3;26295:5;26288:12;;26246:60;;;:::o;26312:158::-;26370:9;26403:61;26421:42;26430:32;26456:5;26430:32;:::i;:::-;26421:42;:::i;:::-;26403:61;:::i;:::-;26390:74;;26312:158;;;:::o;26476:147::-;26571:45;26610:5;26571:45;:::i;:::-;26566:3;26559:58;26476:147;;:::o;26629:114::-;26696:6;26730:5;26724:12;26714:22;;26629:114;;;:::o;26749:184::-;26848:11;26882:6;26877:3;26870:19;26922:4;26917:3;26913:14;26898:29;;26749:184;;;;:::o;26939:132::-;27006:4;27029:3;27021:11;;27059:4;27054:3;27050:14;27042:22;;26939:132;;;:::o;27077:108::-;27154:24;27172:5;27154:24;:::i;:::-;27149:3;27142:37;27077:108;;:::o;27191:179::-;27260:10;27281:46;27323:3;27315:6;27281:46;:::i;:::-;27359:4;27354:3;27350:14;27336:28;;27191:179;;;;:::o;27376:113::-;27446:4;27478;27473:3;27469:14;27461:22;;27376:113;;;:::o;27525:732::-;27644:3;27673:54;27721:5;27673:54;:::i;:::-;27743:86;27822:6;27817:3;27743:86;:::i;:::-;27736:93;;27853:56;27903:5;27853:56;:::i;:::-;27932:7;27963:1;27948:284;27973:6;27970:1;27967:13;27948:284;;;28049:6;28043:13;28076:63;28135:3;28120:13;28076:63;:::i;:::-;28069:70;;28162:60;28215:6;28162:60;:::i;:::-;28152:70;;28008:224;27995:1;27992;27988:9;27983:14;;27948:284;;;27952:14;28248:3;28241:10;;27649:608;;;27525:732;;;;:::o;28263:831::-;28526:4;28564:3;28553:9;28549:19;28541:27;;28578:71;28646:1;28635:9;28631:17;28622:6;28578:71;:::i;:::-;28659:80;28735:2;28724:9;28720:18;28711:6;28659:80;:::i;:::-;28786:9;28780:4;28776:20;28771:2;28760:9;28756:18;28749:48;28814:108;28917:4;28908:6;28814:108;:::i;:::-;28806:116;;28932:72;29000:2;28989:9;28985:18;28976:6;28932:72;:::i;:::-;29014:73;29082:3;29071:9;29067:19;29058:6;29014:73;:::i;:::-;28263:831;;;;;;;;:::o;29100:177::-;29240:29;29236:1;29228:6;29224:14;29217:53;29100:177;:::o;29283:366::-;29425:3;29446:67;29510:2;29505:3;29446:67;:::i;:::-;29439:74;;29522:93;29611:3;29522:93;:::i;:::-;29640:2;29635:3;29631:12;29624:19;;29283:366;;;:::o;29655:419::-;29821:4;29859:2;29848:9;29844:18;29836:26;;29908:9;29902:4;29898:20;29894:1;29883:9;29879:17;29872:47;29936:131;30062:4;29936:131;:::i;:::-;29928:139;;29655:419;;;:::o
Swarm Source
ipfs://35bbde3a580b41012b552babb601b3626880513d9e3c436e43a5d8cc78097718
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.