Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,690,000,000 HEEHEE
Holders
71
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HEEHEE
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-10 */ /* What benefits come with getting $HEEHEE? The answer is straightforward: cool memes. $HEEHEE is your ticket to a community that thrives on humor, creativity, and the fun side of the internet. It's not about financial gain; it's about being part of something entertaining and light-hearted. Website : https://heehee.wtf/ X : https://x.com/heeheewtf TG : https://t.me/heeheewtf */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; 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 HEEHEE 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; address payable private _taxWallet; address private constant deadAddress = address(0x000000000000000000000000000000000000dEaD); uint256 private constant _initBuyTax=20; uint256 private constant _initSellTax=20; uint256 private constant _reduceBuyTaxAt=5; uint256 private constant _reduceSellTaxAt=25; uint256 private constant _preventSwapBefore=25; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _buyCount=0; string private constant _name = unicode"Hee Hee"; string private constant _symbol = unicode"HEEHEE"; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; uint256 public constant _taxSwapThreshold = 0 * 10**_decimals; uint256 public constant _maxTaxSwap = 4206900000 * 10**_decimals; uint256 public _maxTxAmount = 4206900000 * 10**_decimals; uint256 public _maxWalletSize = 4206900000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private limitEffect = true; bool private inSwap = false; bool private swapEnabled = false; event TradingOpened(); event MaxTxAmountUpdated(uint256 _maxTxAmount); event MaxWalletSizeUpdated(uint256 _maxWalletSize); event FinalTax (uint256 _valueBuy, uint256 _valueSell); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; excludeFromFee(owner(), true); excludeFromFee(deadAddress, true); excludeFromFee(address(this), true); excludeFromFee(_taxWallet, true); emit Transfer(address(0), _msgSender(), _tTotal); } 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 excludeFromFee(address account, bool excluded) public onlyOwner { _isExcludedFromFee[account] = excluded; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if (!tradingOpen) { require( _isExcludedFromFee[from] || _isExcludedFromFee[to], "trading is not yet open" ); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { if (limitEffect) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } _buyCount++; } if ( to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul ((_buyCount>_reduceSellTaxAt) ?_finalSellTax:_initSellTax).div(100 ); } else if (from == uniswapV2Pair && to != address(this) ){ taxAmount = amount.mul ((_buyCount>_reduceBuyTaxAt) ?_finalBuyTax:_initBuyTax).div(100 ); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore ){ uint256 getMin = (contractTokenBalance > _maxTaxSwap)?_maxTaxSwap:contractTokenBalance; uint256 amountToSwap = (amount>getMin)?getMin:amount; swapTokensForEth(amountToSwap); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount > 0){ _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } 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 openTrading() external onlyOwner { require(!tradingOpen,"init already called"); uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initBuyTax).div(100)); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), uniswapV2Router.WETH() ); uniswapV2Router.addLiquidityETH{value: address(this).balance} ( address(this), tokenAmount, 0, 0, _msgSender(), block.timestamp ); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; emit TradingOpened(); } function removeLimit() external onlyOwner { limitEffect = false; _maxTxAmount= _tTotal; _maxWalletSize= _tTotal; emit MaxTxAmountUpdated(_tTotal); emit MaxWalletSizeUpdated(_tTotal); } function setTax(uint256 _valueBuy, uint256 _valueSell) external onlyOwner { require(_valueBuy <= 0 && _valueSell <= 0 && tradingOpen, "Exceeds value"); _finalBuyTax = _valueBuy; _finalSellTax = _valueSell; emit FinalTax(_valueBuy, _valueSell); } function clearStuckETH() external onlyOwner() { uint256 ethBalance=address(this).balance; sendETHToFee(ethBalance); } receive() external payable {} }
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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeUpdated","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":[],"name":"TradingOpened","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","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":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setTax","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
60806040526000600555600060065560006007556009600a62000023919062000611565b63fac0332062000034919062000662565b6008556009600a62000047919062000611565b63fac0332062000058919062000662565b6009556001600b60156101000a81548160ff0219169083151502179055506000600b60166101000a81548160ff0219169083151502179055506000600b60176101000a81548160ff021916908315150217905550348015620000b957600080fd5b506000620000cc6200034b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200017a6200034b60201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001ca919062000611565b6461f313f880620001dc919062000662565b60016000620001f06200034b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000250620002426200035360201b60201c565b60016200037c60201b60201c565b6200026561dead60016200037c60201b60201c565b620002783060016200037c60201b60201c565b620002ad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200037c60201b60201c565b620002bd6200034b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200031c919062000611565b6461f313f8806200032e919062000662565b6040516200033d9190620006be565b60405180910390a36200075e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200038c6200034b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000413906200073c565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050557808604811115620004dd57620004dc62000477565b5b6001851615620004ed5780820291505b8081029050620004fd85620004a6565b9450620004bd565b94509492505050565b600082620005205760019050620005f3565b81620005305760009050620005f3565b816001811462000549576002811462000554576200058a565b6001915050620005f3565b60ff84111562000569576200056862000477565b5b8360020a91508482111562000583576200058262000477565b5b50620005f3565b5060208310610133831016604e8410600b8410161715620005c45782820a905083811115620005be57620005bd62000477565b5b620005f3565b620005d38484846001620004b3565b92509050818404811115620005ed57620005ec62000477565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200061e82620005fa565b91506200062b8362000604565b92506200065a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050e565b905092915050565b60006200066f82620005fa565b91506200067c83620005fa565b92508282026200068c81620005fa565b91508282048414831517620006a657620006a562000477565b5b5092915050565b620006b881620005fa565b82525050565b6000602082019050620006d56000830184620006ad565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000724602083620006db565b91506200073182620006ec565b602082019050919050565b60006020820190508181036000830152620007578162000715565b9050919050565b613333806200076e6000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146103d2578063c9567bf9146103fd578063dd62ed3e14610414578063df8408fe14610451578063f88de0c31461047a5761012a565b80637d1db4a5146102e95780638da5cb5b146103145780638f9a55c01461033f57806395d89b411461036a578063a9059cbb146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780636225658914610255578063667f65261461026c57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610491565b604051610151919061243b565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124f6565b6104ce565b60405161018e9190612551565b60405180910390f35b3480156101a357600080fd5b506101ac6104ec565b6040516101b9919061257b565b60405180910390f35b3480156101ce57600080fd5b506101d761050c565b6040516101e4919061257b565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612596565b610531565b6040516102219190612551565b60405180910390f35b34801561023657600080fd5b5061023f61060a565b60405161024c9190612605565b60405180910390f35b34801561026157600080fd5b5061026a610613565b005b34801561027857600080fd5b50610293600480360381019061028e9190612620565b6107b5565b005b3480156102a157600080fd5b506102bc60048036038101906102b79190612660565b6108fe565b6040516102c9919061257b565b60405180910390f35b3480156102de57600080fd5b506102e7610947565b005b3480156102f557600080fd5b506102fe610a9a565b60405161030b919061257b565b60405180910390f35b34801561032057600080fd5b50610329610aa0565b604051610336919061269c565b60405180910390f35b34801561034b57600080fd5b50610354610ac9565b604051610361919061257b565b60405180910390f35b34801561037657600080fd5b5061037f610acf565b60405161038c919061243b565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b791906124f6565b610b0c565b6040516103c99190612551565b60405180910390f35b3480156103de57600080fd5b506103e7610b2a565b6040516103f4919061257b565b60405180910390f35b34801561040957600080fd5b50610412610b47565b005b34801561042057600080fd5b5061043b600480360381019061043691906126b7565b611107565b604051610448919061257b565b60405180910390f35b34801561045d57600080fd5b5061047860048036038101906104739190612723565b61118e565b005b34801561048657600080fd5b5061048f61127e565b005b60606040518060400160405280600781526020017f4865652048656500000000000000000000000000000000000000000000000000815250905090565b60006104e26104db611324565b848461132c565b6001905092915050565b6009600a6104fa91906128c5565b63fac033206105099190612910565b81565b60006009600a61051c91906128c5565b6461f313f88061052c9190612910565b905090565b600061053e8484846114c0565b6105ff8461054a611324565b6105fa856040518060600160405280602881526020016132d660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b0611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e939092919063ffffffff16565b61132c565b600190509392505050565b60006009905090565b61061b611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f9061299e565b60405180910390fd5b6000600b60156101000a81548160ff0219169083151502179055506009600a6106d191906128c5565b6461f313f8806106e19190612910565b6008819055506009600a6106f591906128c5565b6461f313f8806107059190612910565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61073a91906128c5565b6461f313f88061074a9190612910565b604051610757919061257b565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6009600a61078e91906128c5565b6461f313f88061079e9190612910565b6040516107ab919061257b565b60405180910390a1565b6107bd611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108419061299e565b60405180910390fd5b6000821115801561085c575060008111155b80156108745750600b60149054906101000a900460ff165b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90612a0a565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516108f2929190612a2a565b60405180910390a15050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61094f611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d39061299e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600681526020017f4845454845450000000000000000000000000000000000000000000000000000815250905090565b6000610b20610b19611324565b84846114c0565b6001905092915050565b6009600a610b3891906128c5565b6000610b449190612910565b81565b610b4f611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd39061299e565b60405180910390fd5b600b60149054906101000a900460ff1615610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390612a9f565b60405180910390fd5b6000610c8c610c756064610c6760146009600a610c4991906128c5565b6461f313f880610c599190612910565b611ef790919063ffffffff16565b611f7190919063ffffffff16565b610c7e306108fe565b611fbb90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2d30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d1891906128c5565b6461f313f880610d289190612910565b61132c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190612ad4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b9190612ad4565b6040518363ffffffff1660e01b8152600401610e88929190612b01565b6020604051808303816000875af1158015610ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612ad4565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f57611324565b426040518863ffffffff1660e01b8152600401610f7996959493929190612b6f565b60606040518083038185885af1158015610f97573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fbc9190612be5565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105e929190612c38565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a19190612c76565b506001600b60176101000a81548160ff0219169083151502179055506001600b60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611196611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a9061299e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611286611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061299e565b60405180910390fd5b600047905061132181612005565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113965750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cef565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b3919061257b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612d5b565b60405180910390fd5b600081116115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390612ded565b60405180910390fd5b60006115b6610aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561162457506115f4610aa0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd657600b60149054906101000a900460ff1661171e57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116de5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61171d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171490612e59565b60405180910390fd5b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c95750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f057600b60159054906101000a900460ff16156118d75760085482111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612ec5565b60405180910390fd5b6009548261188b856108fe565b6118959190612ee5565b11156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd90612f65565b60405180910390fd5b5b600760008154809291906118ea90612f85565b91905055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561197957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119bf576119b860646119aa60196007541161199757601461199b565b6006545b85611ef790919063ffffffff16565b611f7190919063ffffffff16565b9050611a8b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a4857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8a57611a876064611a79600560075411611a66576014611a6a565b6005545b85611ef790919063ffffffff16565b611f7190919063ffffffff16565b90505b5b6000611a96306108fe565b9050600b60169054906101000a900460ff16158015611b025750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b1a5750600b60179054906101000a900460ff165b8015611b3e57506009600a611b2f91906128c5565b6000611b3b9190612910565b81115b8015611b4c57506019600754115b15611bd45760006009600a611b6191906128c5565b63fac03320611b709190612910565b8211611b7c5781611b9a565b6009600a611b8a91906128c5565b63fac03320611b999190612910565b5b90506000818511611bab5784611bad565b815b9050611bb881612071565b60004790506000811115611bd057611bcf47612005565b5b5050505b505b6000811115611cda57611c3181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ea90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cd1919061257b565b60405180910390a35b611d2c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbb90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd3611d858284611fbb90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ea90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e788486611fbb90919063ffffffff16565b604051611e85919061257b565b60405180910390a350505050565b6000838311158290611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed2919061243b565b60405180910390fd5b5060008385611eea9190612fcd565b9050809150509392505050565b6000808303611f095760009050611f6b565b60008284611f179190612910565b9050828482611f269190613030565b14611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d906130d3565b60405180910390fd5b809150505b92915050565b6000611fb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b905092915050565b6000611ffd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e93565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561206d573d6000803e3d6000fd5b5050565b6001600b60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120a9576120a86130f3565b5b6040519080825280602002602001820160405280156120d75781602001602082028036833780820191505090505b50905030816000815181106120ef576120ee613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ba9190612ad4565b816001815181106121ce576121cd613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223530600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161229995949392919061320f565b600060405180830381600087803b1580156122b357600080fd5b505af11580156122c7573d6000803e3d6000fd5b50505050506000600b60166101000a81548160ff02191690831515021790555050565b60008082846122f99190612ee5565b90508381101561233e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612335906132b5565b60405180910390fd5b8091505092915050565b6000808311829061238f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612386919061243b565b60405180910390fd5b506000838561239e9190613030565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123e55780820151818401526020810190506123ca565b60008484015250505050565b6000601f19601f8301169050919050565b600061240d826123ab565b61241781856123b6565b93506124278185602086016123c7565b612430816123f1565b840191505092915050565b600060208201905081810360008301526124558184612402565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248d82612462565b9050919050565b61249d81612482565b81146124a857600080fd5b50565b6000813590506124ba81612494565b92915050565b6000819050919050565b6124d3816124c0565b81146124de57600080fd5b50565b6000813590506124f0816124ca565b92915050565b6000806040838503121561250d5761250c61245d565b5b600061251b858286016124ab565b925050602061252c858286016124e1565b9150509250929050565b60008115159050919050565b61254b81612536565b82525050565b60006020820190506125666000830184612542565b92915050565b612575816124c0565b82525050565b6000602082019050612590600083018461256c565b92915050565b6000806000606084860312156125af576125ae61245d565b5b60006125bd868287016124ab565b93505060206125ce868287016124ab565b92505060406125df868287016124e1565b9150509250925092565b600060ff82169050919050565b6125ff816125e9565b82525050565b600060208201905061261a60008301846125f6565b92915050565b600080604083850312156126375761263661245d565b5b6000612645858286016124e1565b9250506020612656858286016124e1565b9150509250929050565b6000602082840312156126765761267561245d565b5b6000612684848285016124ab565b91505092915050565b61269681612482565b82525050565b60006020820190506126b1600083018461268d565b92915050565b600080604083850312156126ce576126cd61245d565b5b60006126dc858286016124ab565b92505060206126ed858286016124ab565b9150509250929050565b61270081612536565b811461270b57600080fd5b50565b60008135905061271d816126f7565b92915050565b6000806040838503121561273a5761273961245d565b5b6000612748858286016124ab565b92505060206127598582860161270e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127e9578086048111156127c5576127c4612763565b5b60018516156127d45780820291505b80810290506127e285612792565b94506127a9565b94509492505050565b60008261280257600190506128be565b8161281057600090506128be565b816001811461282657600281146128305761285f565b60019150506128be565b60ff84111561284257612841612763565b5b8360020a91508482111561285957612858612763565b5b506128be565b5060208310610133831016604e8410600b84101617156128945782820a90508381111561288f5761288e612763565b5b6128be565b6128a1848484600161279f565b925090508184048111156128b8576128b7612763565b5b81810290505b9392505050565b60006128d0826124c0565b91506128db836125e9565b92506129087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127f2565b905092915050565b600061291b826124c0565b9150612926836124c0565b9250828202612934816124c0565b9150828204841483151761294b5761294a612763565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129886020836123b6565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006129f4600d836123b6565b91506129ff826129be565b602082019050919050565b60006020820190508181036000830152612a23816129e7565b9050919050565b6000604082019050612a3f600083018561256c565b612a4c602083018461256c565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612a896013836123b6565b9150612a9482612a53565b602082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b600081519050612ace81612494565b92915050565b600060208284031215612aea57612ae961245d565b5b6000612af884828501612abf565b91505092915050565b6000604082019050612b16600083018561268d565b612b23602083018461268d565b9392505050565b6000819050919050565b6000819050919050565b6000612b59612b54612b4f84612b2a565b612b34565b6124c0565b9050919050565b612b6981612b3e565b82525050565b600060c082019050612b84600083018961268d565b612b91602083018861256c565b612b9e6040830187612b60565b612bab6060830186612b60565b612bb8608083018561268d565b612bc560a083018461256c565b979650505050505050565b600081519050612bdf816124ca565b92915050565b600080600060608486031215612bfe57612bfd61245d565b5b6000612c0c86828701612bd0565b9350506020612c1d86828701612bd0565b9250506040612c2e86828701612bd0565b9150509250925092565b6000604082019050612c4d600083018561268d565b612c5a602083018461256c565b9392505050565b600081519050612c70816126f7565b92915050565b600060208284031215612c8c57612c8b61245d565b5b6000612c9a84828501612c61565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612cd9601f836123b6565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612d456020836123b6565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd76029836123b6565b9150612de282612d7b565b604082019050919050565b60006020820190508181036000830152612e0681612dca565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b6000612e436017836123b6565b9150612e4e82612e0d565b602082019050919050565b60006020820190508181036000830152612e7281612e36565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eaf6019836123b6565b9150612eba82612e79565b602082019050919050565b60006020820190508181036000830152612ede81612ea2565b9050919050565b6000612ef0826124c0565b9150612efb836124c0565b9250828201905080821115612f1357612f12612763565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f4f601a836123b6565b9150612f5a82612f19565b602082019050919050565b60006020820190508181036000830152612f7e81612f42565b9050919050565b6000612f90826124c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fc257612fc1612763565b5b600182019050919050565b6000612fd8826124c0565b9150612fe3836124c0565b9250828203905081811115612ffb57612ffa612763565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061303b826124c0565b9150613046836124c0565b92508261305657613055613001565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130bd6021836123b6565b91506130c882613061565b604082019050919050565b600060208201905081810360008301526130ec816130b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61318681612482565b82525050565b6000613198838361317d565b60208301905092915050565b6000602082019050919050565b60006131bc82613151565b6131c6818561315c565b93506131d18361316d565b8060005b838110156132025781516131e9888261318c565b97506131f4836131a4565b9250506001810190506131d5565b5085935050505092915050565b600060a082019050613224600083018861256c565b6132316020830187612b60565b818103604083015261324381866131b1565b9050613252606083018561268d565b61325f608083018461256c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061329f601b836123b6565b91506132aa82613269565b602082019050919050565b600060208201905081810360008301526132ce81613292565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122092bca340491e51a27f73076a51d9d63b53db3de4ea1bb806114caac6caa9a4f864736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146103d2578063c9567bf9146103fd578063dd62ed3e14610414578063df8408fe14610451578063f88de0c31461047a5761012a565b80637d1db4a5146102e95780638da5cb5b146103145780638f9a55c01461033f57806395d89b411461036a578063a9059cbb146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780636225658914610255578063667f65261461026c57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610491565b604051610151919061243b565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124f6565b6104ce565b60405161018e9190612551565b60405180910390f35b3480156101a357600080fd5b506101ac6104ec565b6040516101b9919061257b565b60405180910390f35b3480156101ce57600080fd5b506101d761050c565b6040516101e4919061257b565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612596565b610531565b6040516102219190612551565b60405180910390f35b34801561023657600080fd5b5061023f61060a565b60405161024c9190612605565b60405180910390f35b34801561026157600080fd5b5061026a610613565b005b34801561027857600080fd5b50610293600480360381019061028e9190612620565b6107b5565b005b3480156102a157600080fd5b506102bc60048036038101906102b79190612660565b6108fe565b6040516102c9919061257b565b60405180910390f35b3480156102de57600080fd5b506102e7610947565b005b3480156102f557600080fd5b506102fe610a9a565b60405161030b919061257b565b60405180910390f35b34801561032057600080fd5b50610329610aa0565b604051610336919061269c565b60405180910390f35b34801561034b57600080fd5b50610354610ac9565b604051610361919061257b565b60405180910390f35b34801561037657600080fd5b5061037f610acf565b60405161038c919061243b565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b791906124f6565b610b0c565b6040516103c99190612551565b60405180910390f35b3480156103de57600080fd5b506103e7610b2a565b6040516103f4919061257b565b60405180910390f35b34801561040957600080fd5b50610412610b47565b005b34801561042057600080fd5b5061043b600480360381019061043691906126b7565b611107565b604051610448919061257b565b60405180910390f35b34801561045d57600080fd5b5061047860048036038101906104739190612723565b61118e565b005b34801561048657600080fd5b5061048f61127e565b005b60606040518060400160405280600781526020017f4865652048656500000000000000000000000000000000000000000000000000815250905090565b60006104e26104db611324565b848461132c565b6001905092915050565b6009600a6104fa91906128c5565b63fac033206105099190612910565b81565b60006009600a61051c91906128c5565b6461f313f88061052c9190612910565b905090565b600061053e8484846114c0565b6105ff8461054a611324565b6105fa856040518060600160405280602881526020016132d660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b0611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e939092919063ffffffff16565b61132c565b600190509392505050565b60006009905090565b61061b611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f9061299e565b60405180910390fd5b6000600b60156101000a81548160ff0219169083151502179055506009600a6106d191906128c5565b6461f313f8806106e19190612910565b6008819055506009600a6106f591906128c5565b6461f313f8806107059190612910565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61073a91906128c5565b6461f313f88061074a9190612910565b604051610757919061257b565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6009600a61078e91906128c5565b6461f313f88061079e9190612910565b6040516107ab919061257b565b60405180910390a1565b6107bd611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108419061299e565b60405180910390fd5b6000821115801561085c575060008111155b80156108745750600b60149054906101000a900460ff165b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90612a0a565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516108f2929190612a2a565b60405180910390a15050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61094f611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d39061299e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600681526020017f4845454845450000000000000000000000000000000000000000000000000000815250905090565b6000610b20610b19611324565b84846114c0565b6001905092915050565b6009600a610b3891906128c5565b6000610b449190612910565b81565b610b4f611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd39061299e565b60405180910390fd5b600b60149054906101000a900460ff1615610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390612a9f565b60405180910390fd5b6000610c8c610c756064610c6760146009600a610c4991906128c5565b6461f313f880610c599190612910565b611ef790919063ffffffff16565b611f7190919063ffffffff16565b610c7e306108fe565b611fbb90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2d30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d1891906128c5565b6461f313f880610d289190612910565b61132c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190612ad4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b9190612ad4565b6040518363ffffffff1660e01b8152600401610e88929190612b01565b6020604051808303816000875af1158015610ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612ad4565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f57611324565b426040518863ffffffff1660e01b8152600401610f7996959493929190612b6f565b60606040518083038185885af1158015610f97573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fbc9190612be5565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105e929190612c38565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a19190612c76565b506001600b60176101000a81548160ff0219169083151502179055506001600b60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611196611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a9061299e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611286611324565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061299e565b60405180910390fd5b600047905061132181612005565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113965750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cef565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b3919061257b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612d5b565b60405180910390fd5b600081116115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390612ded565b60405180910390fd5b60006115b6610aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561162457506115f4610aa0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd657600b60149054906101000a900460ff1661171e57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116de5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61171d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171490612e59565b60405180910390fd5b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c95750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f057600b60159054906101000a900460ff16156118d75760085482111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612ec5565b60405180910390fd5b6009548261188b856108fe565b6118959190612ee5565b11156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd90612f65565b60405180910390fd5b5b600760008154809291906118ea90612f85565b91905055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561197957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119bf576119b860646119aa60196007541161199757601461199b565b6006545b85611ef790919063ffffffff16565b611f7190919063ffffffff16565b9050611a8b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a4857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8a57611a876064611a79600560075411611a66576014611a6a565b6005545b85611ef790919063ffffffff16565b611f7190919063ffffffff16565b90505b5b6000611a96306108fe565b9050600b60169054906101000a900460ff16158015611b025750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b1a5750600b60179054906101000a900460ff165b8015611b3e57506009600a611b2f91906128c5565b6000611b3b9190612910565b81115b8015611b4c57506019600754115b15611bd45760006009600a611b6191906128c5565b63fac03320611b709190612910565b8211611b7c5781611b9a565b6009600a611b8a91906128c5565b63fac03320611b999190612910565b5b90506000818511611bab5784611bad565b815b9050611bb881612071565b60004790506000811115611bd057611bcf47612005565b5b5050505b505b6000811115611cda57611c3181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ea90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cd1919061257b565b60405180910390a35b611d2c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbb90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd3611d858284611fbb90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ea90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e788486611fbb90919063ffffffff16565b604051611e85919061257b565b60405180910390a350505050565b6000838311158290611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed2919061243b565b60405180910390fd5b5060008385611eea9190612fcd565b9050809150509392505050565b6000808303611f095760009050611f6b565b60008284611f179190612910565b9050828482611f269190613030565b14611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d906130d3565b60405180910390fd5b809150505b92915050565b6000611fb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b905092915050565b6000611ffd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e93565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561206d573d6000803e3d6000fd5b5050565b6001600b60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120a9576120a86130f3565b5b6040519080825280602002602001820160405280156120d75781602001602082028036833780820191505090505b50905030816000815181106120ef576120ee613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ba9190612ad4565b816001815181106121ce576121cd613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223530600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161229995949392919061320f565b600060405180830381600087803b1580156122b357600080fd5b505af11580156122c7573d6000803e3d6000fd5b50505050506000600b60166101000a81548160ff02191690831515021790555050565b60008082846122f99190612ee5565b90508381101561233e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612335906132b5565b60405180910390fd5b8091505092915050565b6000808311829061238f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612386919061243b565b60405180910390fd5b506000838561239e9190613030565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123e55780820151818401526020810190506123ca565b60008484015250505050565b6000601f19601f8301169050919050565b600061240d826123ab565b61241781856123b6565b93506124278185602086016123c7565b612430816123f1565b840191505092915050565b600060208201905081810360008301526124558184612402565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248d82612462565b9050919050565b61249d81612482565b81146124a857600080fd5b50565b6000813590506124ba81612494565b92915050565b6000819050919050565b6124d3816124c0565b81146124de57600080fd5b50565b6000813590506124f0816124ca565b92915050565b6000806040838503121561250d5761250c61245d565b5b600061251b858286016124ab565b925050602061252c858286016124e1565b9150509250929050565b60008115159050919050565b61254b81612536565b82525050565b60006020820190506125666000830184612542565b92915050565b612575816124c0565b82525050565b6000602082019050612590600083018461256c565b92915050565b6000806000606084860312156125af576125ae61245d565b5b60006125bd868287016124ab565b93505060206125ce868287016124ab565b92505060406125df868287016124e1565b9150509250925092565b600060ff82169050919050565b6125ff816125e9565b82525050565b600060208201905061261a60008301846125f6565b92915050565b600080604083850312156126375761263661245d565b5b6000612645858286016124e1565b9250506020612656858286016124e1565b9150509250929050565b6000602082840312156126765761267561245d565b5b6000612684848285016124ab565b91505092915050565b61269681612482565b82525050565b60006020820190506126b1600083018461268d565b92915050565b600080604083850312156126ce576126cd61245d565b5b60006126dc858286016124ab565b92505060206126ed858286016124ab565b9150509250929050565b61270081612536565b811461270b57600080fd5b50565b60008135905061271d816126f7565b92915050565b6000806040838503121561273a5761273961245d565b5b6000612748858286016124ab565b92505060206127598582860161270e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127e9578086048111156127c5576127c4612763565b5b60018516156127d45780820291505b80810290506127e285612792565b94506127a9565b94509492505050565b60008261280257600190506128be565b8161281057600090506128be565b816001811461282657600281146128305761285f565b60019150506128be565b60ff84111561284257612841612763565b5b8360020a91508482111561285957612858612763565b5b506128be565b5060208310610133831016604e8410600b84101617156128945782820a90508381111561288f5761288e612763565b5b6128be565b6128a1848484600161279f565b925090508184048111156128b8576128b7612763565b5b81810290505b9392505050565b60006128d0826124c0565b91506128db836125e9565b92506129087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127f2565b905092915050565b600061291b826124c0565b9150612926836124c0565b9250828202612934816124c0565b9150828204841483151761294b5761294a612763565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129886020836123b6565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006129f4600d836123b6565b91506129ff826129be565b602082019050919050565b60006020820190508181036000830152612a23816129e7565b9050919050565b6000604082019050612a3f600083018561256c565b612a4c602083018461256c565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612a896013836123b6565b9150612a9482612a53565b602082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b600081519050612ace81612494565b92915050565b600060208284031215612aea57612ae961245d565b5b6000612af884828501612abf565b91505092915050565b6000604082019050612b16600083018561268d565b612b23602083018461268d565b9392505050565b6000819050919050565b6000819050919050565b6000612b59612b54612b4f84612b2a565b612b34565b6124c0565b9050919050565b612b6981612b3e565b82525050565b600060c082019050612b84600083018961268d565b612b91602083018861256c565b612b9e6040830187612b60565b612bab6060830186612b60565b612bb8608083018561268d565b612bc560a083018461256c565b979650505050505050565b600081519050612bdf816124ca565b92915050565b600080600060608486031215612bfe57612bfd61245d565b5b6000612c0c86828701612bd0565b9350506020612c1d86828701612bd0565b9250506040612c2e86828701612bd0565b9150509250925092565b6000604082019050612c4d600083018561268d565b612c5a602083018461256c565b9392505050565b600081519050612c70816126f7565b92915050565b600060208284031215612c8c57612c8b61245d565b5b6000612c9a84828501612c61565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612cd9601f836123b6565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612d456020836123b6565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd76029836123b6565b9150612de282612d7b565b604082019050919050565b60006020820190508181036000830152612e0681612dca565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b6000612e436017836123b6565b9150612e4e82612e0d565b602082019050919050565b60006020820190508181036000830152612e7281612e36565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eaf6019836123b6565b9150612eba82612e79565b602082019050919050565b60006020820190508181036000830152612ede81612ea2565b9050919050565b6000612ef0826124c0565b9150612efb836124c0565b9250828201905080821115612f1357612f12612763565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f4f601a836123b6565b9150612f5a82612f19565b602082019050919050565b60006020820190508181036000830152612f7e81612f42565b9050919050565b6000612f90826124c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fc257612fc1612763565b5b600182019050919050565b6000612fd8826124c0565b9150612fe3836124c0565b9250828203905081811115612ffb57612ffa612763565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061303b826124c0565b9150613046836124c0565b92508261305657613055613001565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130bd6021836123b6565b91506130c882613061565b604082019050919050565b600060208201905081810360008301526130ec816130b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61318681612482565b82525050565b6000613198838361317d565b60208301905092915050565b6000602082019050919050565b60006131bc82613151565b6131c6818561315c565b93506131d18361316d565b8060005b838110156132025781516131e9888261318c565b97506131f4836131a4565b9250506001810190506131d5565b5085935050505092915050565b600060a082019050613224600083018861256c565b6132316020830187612b60565b818103604083015261324381866131b1565b9050613252606083018561268d565b61325f608083018461256c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061329f601b836123b6565b91506132aa82613269565b602082019050919050565b600060208201905081810360008301526132ce81613292565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122092bca340491e51a27f73076a51d9d63b53db3de4ea1bb806114caac6caa9a4f864736f6c63430008120033
Deployed Bytecode Sourcemap
3860:8680:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6025:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6858:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4932:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6302:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7027:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6211:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11820:234;;;;;;;;;;;;;:::i;:::-;;12066:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6405:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2943:148;;;;;;;;;;;;;:::i;:::-;;5003:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2729:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5066:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6116:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6532:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4864:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10909:903;;;;;;;;;;;;;:::i;:::-;;6707:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7348:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12360:140;;;;;;;;;;;;;:::i;:::-;;6025:83;6062:13;6095:5;;;;;;;;;;;;;;;;;6088:12;;6025:83;:::o;6858:161::-;6933:4;6950:39;6959:12;:10;:12::i;:::-;6973:7;6982:6;6950:8;:39::i;:::-;7007:4;7000:11;;6858:161;;;;:::o;4932:64::-;4784:1;4983:2;:13;;;;:::i;:::-;4970:10;:26;;;;:::i;:::-;4932:64;:::o;6302:95::-;6355:7;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;6375:14;;6302:95;:::o;7027:313::-;7125:4;7142:36;7152:6;7160:9;7171:6;7142:9;:36::i;:::-;7189:121;7198:6;7206:12;:10;:12::i;:::-;7220:89;7258:6;7220:89;;;;;;;;;;;;;;;;;:11;:19;7232:6;7220:19;;;;;;;;;;;;;;;:33;7240:12;:10;:12::i;:::-;7220:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7189:8;:121::i;:::-;7328:4;7321:11;;7027:313;;;;;:::o;6211:83::-;6252:5;4784:1;6270:16;;6211:83;:::o;11820:234::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11887:5:::1;11873:11;;:19;;;;;;;;;;;;;;;;;;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;11903:12;:21;;;;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;11935:14;:23;;;;11974:27;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;11974:27;;;;;;:::i;:::-;;;;;;;;12017:29;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;12017:29;;;;;;:::i;:::-;;;;;;;;11820:234::o:0;12066:286::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12172:1:::1;12159:9;:14;;:33;;;;;12191:1;12177:10;:15;;12159:33;:48;;;;;12196:11;;;;;;;;;;;12159:48;12151:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12251:9;12236:12;:24;;;;12287:10;12271:13;:26;;;;12313:31;12322:9;12333:10;12313:31;;;;;;;:::i;:::-;;;;;;;;12066:286:::0;;:::o;6405:119::-;6471:7;6498:9;:18;6508:7;6498:18;;;;;;;;;;;;;;;;6491:25;;6405:119;;;:::o;2943:148::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3050:1:::1;3013:40;;3034:6;::::0;::::1;;;;;;;;3013:40;;;;;;;;;;;;3081:1;3064:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2943:148::o:0;5003:56::-;;;;:::o;2729:79::-;2767:7;2794:6;;;;;;;;;;;2787:13;;2729:79;:::o;5066:58::-;;;;:::o;6116:87::-;6155:13;6188:7;;;;;;;;;;;;;;;;;6181:14;;6116:87;:::o;6532:167::-;6610:4;6627:42;6637:12;:10;:12::i;:::-;6651:9;6662:6;6627:9;:42::i;:::-;6687:4;6680:11;;6532:167;;;;:::o;4864:61::-;4784:1;4912:2;:13;;;;:::i;:::-;4908:1;:17;;;;:::i;:::-;4864:61;:::o;10909:903::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10971:11:::1;;;;;;;;;;;10970:12;10962:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11016:19;11038:63;11067:33;11096:3;11067:24;4314:2;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;11067:11;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;11038:24;11056:4;11038:9;:24::i;:::-;:28;;:63;;;;:::i;:::-;11016:85;;11149:42;11112:15;;:80;;;;;;;;;;;;;;;;;;11203:58;11220:4;11235:15;;;;;;;;;;;4784:1;4842:2;:13;;;;:::i;:::-;4827:12;:28;;;;:::i;:::-;11203:8;:58::i;:::-;11306:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11288:69;;;11366:4;11373:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11288:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11272:13;;:134;;;;;;;;;;;;;;;;;;11417:15;;;;;;;;;;;:31;;;11456:21;11502:4;11522:11;11548:1;11564::::0;11580:12:::1;:10;:12::i;:::-;11607:15;11417:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11651:13;;;;;;;;;;;11644:29;;;11682:15;;;;;;;;;;;11700:14;11644:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11740:4;11726:11;;:18;;;;;;;;;;;;;;;;;;11769:4;11755:11;;:18;;;;;;;;;;;;;;;;;;11789:15;;;;;;;;;;10951:861;10909:903::o:0;6707:143::-;6788:7;6815:11;:18;6827:5;6815:18;;;;;;;;;;;;;;;:27;6834:7;6815:27;;;;;;;;;;;;;;;;6808:34;;6707:143;;;;:::o;7348:130::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7462:8:::1;7432:18;:27;7451:7;7432:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;7348:130:::0;;:::o;12360:140::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12417:18:::1;12436:21;12417:40;;12468:24;12481:10;12468:12;:24::i;:::-;12406:94;12360:140::o:0;486:98::-;539:7;566:10;559:17;;486:98;:::o;7486:276::-;7596:1;7579:19;;:5;:19;;;;:44;;;;;7621:1;7602:21;;:7;:21;;;;7579:44;7571:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7700:6;7670:11;:18;7682:5;7670:18;;;;;;;;;;;;;;;:27;7689:7;7670:27;;;;;;;;;;;;;;;:36;;;;7738:7;7722:32;;7731:5;7722:32;;;7747:6;7722:32;;;;;;:::i;:::-;;;;;;;;7486:276;;;:::o;7770:2540::-;7874:1;7858:18;;:4;:18;;;;:38;;;;;7894:1;7880:16;;:2;:16;;;;7858:38;7850:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:1;7952:6;:10;7944:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8021:17;8065:7;:5;:7::i;:::-;8057:15;;:4;:15;;;;:32;;;;;8082:7;:5;:7::i;:::-;8076:13;;:2;:13;;;;8057:32;8053:1897;;;8111:11;;;;;;;;;;;8106:197;;8172:18;:24;8191:4;8172:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8200:18;:22;8219:2;8200:22;;;;;;;;;;;;;;;;;;;;;;;;;8172:50;8143:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8106:197;8332:13;;;;;;;;;;;8324:21;;:4;:21;;;:55;;;;;8363:15;;;;;;;;;;;8349:30;;:2;:30;;;;8324:55;:83;;;;;8385:18;:22;8404:2;8385:22;;;;;;;;;;;;;;;;;;;;;;;;;8383:24;8324:83;8320:377;;;8433:11;;;;;;;;;;;8429:222;;;8487:12;;8477:6;:22;;8469:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8586:14;;8576:6;8560:13;8570:2;8560:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8552:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8429:222;8670:9;;:11;;;;;;;;;:::i;:::-;;;;;;8320:377;8736:13;;;;;;;;;;;8730:19;;:2;:19;;;:44;;;;;8769:4;8753:21;;:4;:21;;;;8730:44;8725:467;;;8807:135;8920:3;8807:108;4461:2;8838:9;;:26;8837:77;;4361:2;8837:77;;;8888:13;;8837:77;8807:6;:10;;:108;;;;:::i;:::-;:112;;:135;;;;:::i;:::-;8795:147;;8725:467;;;8976:13;;;;;;;;;;;8968:21;;:4;:21;;;:44;;;;;9007:4;8993:19;;:2;:19;;;;8968:44;8964:228;;;9045:131;9154:3;9045:104;4411:1;9075:9;;:25;9074:74;;4314:2;9074:74;;;9124:12;;9074:74;9045:6;:10;;:104;;;;:::i;:::-;:108;;:131;;;;:::i;:::-;9033:143;;8964:228;8725:467;9208:28;9239:24;9257:4;9239:9;:24::i;:::-;9208:55;;9301:6;;;;;;;;;;;9300:7;:48;;;;;9335:13;;;;;;;;;;;9329:19;;:2;:19;;;9300:48;:81;;;;;9370:11;;;;;;;;;;;9300:81;:141;;;;;4784:1;4912:2;:13;;;;:::i;:::-;4908:1;:17;;;;:::i;:::-;9403:20;:38;9300:141;:191;;;;;4514:2;9463:9;;:28;9300:191;9278:661;;;9525:14;4784:1;4983:2;:13;;;;:::i;:::-;4970:10;:26;;;;:::i;:::-;9543:20;:34;9542:69;;9591:20;9542:69;;;4784:1;4983:2;:13;;;;:::i;:::-;4970:10;:26;;;;:::i;:::-;9542:69;9525:86;;9630:20;9661:6;9654;:13;9653:29;;9676:6;9653:29;;;9669:6;9653:29;9630:52;;9701:30;9718:12;9701:16;:30::i;:::-;9750:26;9779:21;9750:50;;9843:1;9822:18;:22;9819:105;;;9869:35;9882:21;9869:12;:35::i;:::-;9819:105;9506:433;;;9278:661;8091:1859;8053:1897;9977:1;9965:9;:13;9962:165;;;10019:39;10048:9;10019;:24;10037:4;10019:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9992:9;:24;10010:4;9992:24;;;;;;;;;;;;;;;:66;;;;10099:4;10076:39;;10085:4;10076:39;;;10105:9;10076:39;;;;;;:::i;:::-;;;;;;;;9962:165;10153:27;10173:6;10153:9;:15;10163:4;10153:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10137:9;:15;10147:4;10137:15;;;;;;;;;;;;;;;:43;;;;10205:40;10223:21;10234:9;10223:6;:10;;:21;;;;:::i;:::-;10205:9;:13;10215:2;10205:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10191:9;:13;10201:2;10191:13;;;;;;;;;;;;;;;:54;;;;10276:2;10261:41;;10270:4;10261:41;;;10280:21;10291:9;10280:6;:10;;:21;;;;:::i;:::-;10261:41;;;;;;:::i;:::-;;;;;;;;7839:2471;7770:2540;;;:::o;1623:190::-;1709:7;1742:1;1737;:6;;1745:12;1729:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1769:9;1785:1;1781;:5;;;;:::i;:::-;1769:17;;1804:1;1797:8;;;1623:190;;;;;:::o;1821:246::-;1879:7;1908:1;1903;:6;1899:47;;1933:1;1926:8;;;;1899:47;1956:9;1972:1;1968;:5;;;;:::i;:::-;1956:17;;2001:1;1996;1992;:5;;;;:::i;:::-;:10;1984:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1;2051:8;;;1821:246;;;;;:::o;2075:132::-;2133:7;2160:39;2164:1;2167;2160:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2153:46;;2075:132;;;;:::o;1479:136::-;1537:7;1564:43;1568:1;1571;1564:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1557:50;;1479:136;;;;:::o;10318:92::-;10375:10;;;;;;;;;;;:19;;:27;10395:6;10375:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10318:92;:::o;10418:483::-;5604:4;5595:6;;:13;;;;;;;;;;;;;;;;;;10496:21:::1;10534:1;10520:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10496:40;;10565:4;10547;10552:1;10547:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10591:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10581:4;10586:1;10581:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10624:62;10641:4;10656:15;;;;;;;;;;;10674:11;10624:8;:62::i;:::-;10697:15;;;;;;;;;;;:66;;;10778:11;10804:1;10820:4;10847;10867:15;10697:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10485:416;5640:5:::0;5631:6;;:14;;;;;;;;;;;;;;;;;;10418:483;:::o;1292:179::-;1350:7;1370:9;1386:1;1382;:5;;;;:::i;:::-;1370:17;;1411:1;1406;:6;;1398:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1462:1;1455:8;;;1292:179;;;;:::o;2215:189::-;2301:7;2333:1;2329;:5;2336:12;2321:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2360:9;2376:1;2372;:5;;;;:::i;:::-;2360:17;;2395:1;2388:8;;;2215:189;;;;;:::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;1430:117::-;1539:1;1536;1529: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:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:116::-;6570:21;6585:5;6570:21;:::i;:::-;6563:5;6560:32;6550:60;;6606:1;6603;6596:12;6550:60;6500:116;:::o;6622:133::-;6665:5;6703:6;6690:20;6681:29;;6719:30;6743:5;6719:30;:::i;:::-;6622:133;;;;:::o;6761:468::-;6826:6;6834;6883:2;6871:9;6862:7;6858:23;6854:32;6851:119;;;6889:79;;:::i;:::-;6851:119;7009:1;7034:53;7079:7;7070:6;7059:9;7055:22;7034:53;:::i;:::-;7024:63;;6980:117;7136:2;7162:50;7204:7;7195:6;7184:9;7180:22;7162:50;:::i;:::-;7152:60;;7107:115;6761:468;;;;;:::o;7235:180::-;7283:77;7280:1;7273:88;7380:4;7377:1;7370:15;7404:4;7401:1;7394:15;7421:102;7463:8;7510:5;7507:1;7503:13;7482:34;;7421:102;;;:::o;7529:848::-;7590:5;7597:4;7621:6;7612:15;;7645:5;7636:14;;7659:712;7680:1;7670:8;7667:15;7659:712;;;7775:4;7770:3;7766:14;7760:4;7757:24;7754:50;;;7784:18;;:::i;:::-;7754:50;7834:1;7824:8;7820:16;7817:451;;;8249:4;8242:5;8238:16;8229:25;;7817:451;8299:4;8293;8289:15;8281:23;;8329:32;8352:8;8329:32;:::i;:::-;8317:44;;7659:712;;;7529:848;;;;;;;:::o;8383:1073::-;8437:5;8628:8;8618:40;;8649:1;8640:10;;8651:5;;8618:40;8677:4;8667:36;;8694:1;8685:10;;8696:5;;8667:36;8763:4;8811:1;8806:27;;;;8847:1;8842:191;;;;8756:277;;8806:27;8824:1;8815:10;;8826:5;;;8842:191;8887:3;8877:8;8874:17;8871:43;;;8894:18;;:::i;:::-;8871:43;8943:8;8940:1;8936:16;8927:25;;8978:3;8971:5;8968:14;8965:40;;;8985:18;;:::i;:::-;8965:40;9018:5;;;8756:277;;9142:2;9132:8;9129:16;9123:3;9117:4;9114:13;9110:36;9092:2;9082:8;9079:16;9074:2;9068:4;9065:12;9061:35;9045:111;9042:246;;;9198:8;9192:4;9188:19;9179:28;;9233:3;9226:5;9223:14;9220:40;;;9240:18;;:::i;:::-;9220:40;9273:5;;9042:246;9313:42;9351:3;9341:8;9335:4;9332:1;9313:42;:::i;:::-;9298:57;;;;9387:4;9382:3;9378:14;9371:5;9368:25;9365:51;;;9396:18;;:::i;:::-;9365:51;9445:4;9438:5;9434:16;9425:25;;8383:1073;;;;;;:::o;9462:281::-;9520:5;9544:23;9562:4;9544:23;:::i;:::-;9536:31;;9588:25;9604:8;9588:25;:::i;:::-;9576:37;;9632:104;9669:66;9659:8;9653:4;9632:104;:::i;:::-;9623:113;;9462:281;;;;:::o;9749:410::-;9789:7;9812:20;9830:1;9812:20;:::i;:::-;9807:25;;9846:20;9864:1;9846:20;:::i;:::-;9841:25;;9901:1;9898;9894:9;9923:30;9941:11;9923:30;:::i;:::-;9912:41;;10102:1;10093:7;10089:15;10086:1;10083:22;10063:1;10056:9;10036:83;10013:139;;10132:18;;:::i;:::-;10013:139;9797:362;9749:410;;;;:::o;10165:182::-;10305:34;10301:1;10293:6;10289:14;10282:58;10165:182;:::o;10353:366::-;10495:3;10516:67;10580:2;10575:3;10516:67;:::i;:::-;10509:74;;10592:93;10681:3;10592:93;:::i;:::-;10710:2;10705:3;10701:12;10694:19;;10353:366;;;:::o;10725:419::-;10891:4;10929:2;10918:9;10914:18;10906:26;;10978:9;10972:4;10968:20;10964:1;10953:9;10949:17;10942:47;11006:131;11132:4;11006:131;:::i;:::-;10998:139;;10725:419;;;:::o;11150:163::-;11290:15;11286:1;11278:6;11274:14;11267:39;11150:163;:::o;11319:366::-;11461:3;11482:67;11546:2;11541:3;11482:67;:::i;:::-;11475:74;;11558:93;11647:3;11558:93;:::i;:::-;11676:2;11671:3;11667:12;11660:19;;11319:366;;;:::o;11691:419::-;11857:4;11895:2;11884:9;11880:18;11872:26;;11944:9;11938:4;11934:20;11930:1;11919:9;11915:17;11908:47;11972:131;12098:4;11972:131;:::i;:::-;11964:139;;11691:419;;;:::o;12116:332::-;12237:4;12275:2;12264:9;12260:18;12252:26;;12288:71;12356:1;12345:9;12341:17;12332:6;12288:71;:::i;:::-;12369:72;12437:2;12426:9;12422:18;12413:6;12369:72;:::i;:::-;12116:332;;;;;:::o;12454:169::-;12594:21;12590:1;12582:6;12578:14;12571:45;12454:169;:::o;12629:366::-;12771:3;12792:67;12856:2;12851:3;12792:67;:::i;:::-;12785:74;;12868:93;12957:3;12868:93;:::i;:::-;12986:2;12981:3;12977:12;12970:19;;12629:366;;;:::o;13001:419::-;13167:4;13205:2;13194:9;13190:18;13182:26;;13254:9;13248:4;13244:20;13240:1;13229:9;13225:17;13218:47;13282:131;13408:4;13282:131;:::i;:::-;13274:139;;13001:419;;;:::o;13426:143::-;13483:5;13514:6;13508:13;13499:22;;13530:33;13557:5;13530:33;:::i;:::-;13426:143;;;;:::o;13575:351::-;13645:6;13694:2;13682:9;13673:7;13669:23;13665:32;13662:119;;;13700:79;;:::i;:::-;13662:119;13820:1;13845:64;13901:7;13892:6;13881:9;13877:22;13845:64;:::i;:::-;13835:74;;13791:128;13575:351;;;;:::o;13932:332::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14104:71;14172:1;14161:9;14157:17;14148:6;14104:71;:::i;:::-;14185:72;14253:2;14242:9;14238:18;14229:6;14185:72;:::i;:::-;13932:332;;;;;:::o;14270:85::-;14315:7;14344:5;14333:16;;14270:85;;;:::o;14361:60::-;14389:3;14410:5;14403:12;;14361:60;;;:::o;14427:158::-;14485:9;14518:61;14536:42;14545:32;14571:5;14545:32;:::i;:::-;14536:42;:::i;:::-;14518:61;:::i;:::-;14505:74;;14427:158;;;:::o;14591:147::-;14686:45;14725:5;14686:45;:::i;:::-;14681:3;14674:58;14591:147;;:::o;14744:807::-;14993:4;15031:3;15020:9;15016:19;15008:27;;15045:71;15113:1;15102:9;15098:17;15089:6;15045:71;:::i;:::-;15126:72;15194:2;15183:9;15179:18;15170:6;15126:72;:::i;:::-;15208:80;15284:2;15273:9;15269:18;15260:6;15208:80;:::i;:::-;15298;15374:2;15363:9;15359:18;15350:6;15298:80;:::i;:::-;15388:73;15456:3;15445:9;15441:19;15432:6;15388:73;:::i;:::-;15471;15539:3;15528:9;15524:19;15515:6;15471:73;:::i;:::-;14744:807;;;;;;;;;:::o;15557:143::-;15614:5;15645:6;15639:13;15630:22;;15661:33;15688:5;15661:33;:::i;:::-;15557:143;;;;:::o;15706:663::-;15794:6;15802;15810;15859:2;15847:9;15838:7;15834:23;15830:32;15827:119;;;15865:79;;:::i;:::-;15827:119;15985:1;16010:64;16066:7;16057:6;16046:9;16042:22;16010:64;:::i;:::-;16000:74;;15956:128;16123:2;16149:64;16205:7;16196:6;16185:9;16181:22;16149:64;:::i;:::-;16139:74;;16094:129;16262:2;16288:64;16344:7;16335:6;16324:9;16320:22;16288:64;:::i;:::-;16278:74;;16233:129;15706:663;;;;;:::o;16375:332::-;16496:4;16534:2;16523:9;16519:18;16511:26;;16547:71;16615:1;16604:9;16600:17;16591:6;16547:71;:::i;:::-;16628:72;16696:2;16685:9;16681:18;16672:6;16628:72;:::i;:::-;16375:332;;;;;:::o;16713:137::-;16767:5;16798:6;16792:13;16783:22;;16814:30;16838:5;16814:30;:::i;:::-;16713:137;;;;:::o;16856:345::-;16923:6;16972:2;16960:9;16951:7;16947:23;16943:32;16940:119;;;16978:79;;:::i;:::-;16940:119;17098:1;17123:61;17176:7;17167:6;17156:9;17152:22;17123:61;:::i;:::-;17113:71;;17069:125;16856:345;;;;:::o;17207:181::-;17347:33;17343:1;17335:6;17331:14;17324:57;17207:181;:::o;17394:366::-;17536:3;17557:67;17621:2;17616:3;17557:67;:::i;:::-;17550:74;;17633:93;17722:3;17633:93;:::i;:::-;17751:2;17746:3;17742:12;17735:19;;17394:366;;;:::o;17766:419::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:182::-;18331:34;18327:1;18319:6;18315:14;18308:58;18191:182;:::o;18379:366::-;18521:3;18542:67;18606:2;18601:3;18542:67;:::i;:::-;18535:74;;18618:93;18707:3;18618:93;:::i;:::-;18736:2;18731:3;18727:12;18720:19;;18379:366;;;:::o;18751:419::-;18917:4;18955:2;18944:9;18940:18;18932:26;;19004:9;18998:4;18994:20;18990:1;18979:9;18975:17;18968:47;19032:131;19158:4;19032:131;:::i;:::-;19024:139;;18751:419;;;:::o;19176:228::-;19316:34;19312:1;19304:6;19300:14;19293:58;19385:11;19380:2;19372:6;19368:15;19361:36;19176:228;:::o;19410:366::-;19552:3;19573:67;19637:2;19632:3;19573:67;:::i;:::-;19566:74;;19649:93;19738:3;19649:93;:::i;:::-;19767:2;19762:3;19758:12;19751:19;;19410:366;;;:::o;19782:419::-;19948:4;19986:2;19975:9;19971:18;19963:26;;20035:9;20029:4;20025:20;20021:1;20010:9;20006:17;19999:47;20063:131;20189:4;20063:131;:::i;:::-;20055:139;;19782:419;;;:::o;20207:173::-;20347:25;20343:1;20335:6;20331:14;20324:49;20207:173;:::o;20386:366::-;20528:3;20549:67;20613:2;20608:3;20549:67;:::i;:::-;20542:74;;20625:93;20714:3;20625:93;:::i;:::-;20743:2;20738:3;20734:12;20727:19;;20386:366;;;:::o;20758:419::-;20924:4;20962:2;20951:9;20947:18;20939:26;;21011:9;21005:4;21001:20;20997:1;20986:9;20982:17;20975:47;21039:131;21165:4;21039:131;:::i;:::-;21031:139;;20758:419;;;:::o;21183:175::-;21323:27;21319:1;21311:6;21307:14;21300:51;21183:175;:::o;21364:366::-;21506:3;21527:67;21591:2;21586:3;21527:67;:::i;:::-;21520:74;;21603:93;21692:3;21603:93;:::i;:::-;21721:2;21716:3;21712:12;21705:19;;21364:366;;;:::o;21736:419::-;21902:4;21940:2;21929:9;21925:18;21917:26;;21989:9;21983:4;21979:20;21975:1;21964:9;21960:17;21953:47;22017:131;22143:4;22017:131;:::i;:::-;22009:139;;21736:419;;;:::o;22161:191::-;22201:3;22220:20;22238:1;22220:20;:::i;:::-;22215:25;;22254:20;22272:1;22254:20;:::i;:::-;22249:25;;22297:1;22294;22290:9;22283:16;;22318:3;22315:1;22312:10;22309:36;;;22325:18;;:::i;:::-;22309:36;22161:191;;;;:::o;22358:176::-;22498:28;22494:1;22486:6;22482:14;22475:52;22358:176;:::o;22540:366::-;22682:3;22703:67;22767:2;22762:3;22703:67;:::i;:::-;22696:74;;22779:93;22868:3;22779:93;:::i;:::-;22897:2;22892:3;22888:12;22881:19;;22540:366;;;:::o;22912:419::-;23078:4;23116:2;23105:9;23101:18;23093:26;;23165:9;23159:4;23155:20;23151:1;23140:9;23136:17;23129:47;23193:131;23319:4;23193:131;:::i;:::-;23185:139;;22912:419;;;:::o;23337:233::-;23376:3;23399:24;23417:5;23399:24;:::i;:::-;23390:33;;23445:66;23438:5;23435:77;23432:103;;23515:18;;:::i;:::-;23432:103;23562:1;23555:5;23551:13;23544:20;;23337:233;;;:::o;23576:194::-;23616:4;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23670:20;23688:1;23670:20;:::i;:::-;23665:25;;23714:1;23711;23707:9;23699:17;;23738:1;23732:4;23729:11;23726:37;;;23743:18;;:::i;:::-;23726:37;23576:194;;;;:::o;23776:180::-;23824:77;23821:1;23814:88;23921:4;23918:1;23911:15;23945:4;23942:1;23935:15;23962:185;24002:1;24019:20;24037:1;24019:20;:::i;:::-;24014:25;;24053:20;24071:1;24053:20;:::i;:::-;24048:25;;24092:1;24082:35;;24097:18;;:::i;:::-;24082:35;24139:1;24136;24132:9;24127:14;;23962:185;;;;:::o;24153:220::-;24293:34;24289:1;24281:6;24277:14;24270:58;24362:3;24357:2;24349:6;24345:15;24338:28;24153:220;:::o;24379:366::-;24521:3;24542:67;24606:2;24601:3;24542:67;:::i;:::-;24535:74;;24618:93;24707:3;24618:93;:::i;:::-;24736:2;24731:3;24727:12;24720:19;;24379:366;;;:::o;24751:419::-;24917:4;24955:2;24944:9;24940:18;24932:26;;25004:9;24998:4;24994:20;24990:1;24979:9;24975:17;24968:47;25032:131;25158:4;25032:131;:::i;:::-;25024:139;;24751:419;;;:::o;25176:180::-;25224:77;25221:1;25214:88;25321:4;25318:1;25311:15;25345:4;25342:1;25335:15;25362:180;25410:77;25407:1;25400:88;25507:4;25504:1;25497:15;25531:4;25528:1;25521:15;25548:114;25615:6;25649:5;25643:12;25633:22;;25548:114;;;:::o;25668:184::-;25767:11;25801:6;25796:3;25789:19;25841:4;25836:3;25832:14;25817:29;;25668:184;;;;:::o;25858:132::-;25925:4;25948:3;25940:11;;25978:4;25973:3;25969:14;25961:22;;25858:132;;;:::o;25996:108::-;26073:24;26091:5;26073:24;:::i;:::-;26068:3;26061:37;25996:108;;:::o;26110:179::-;26179:10;26200:46;26242:3;26234:6;26200:46;:::i;:::-;26278:4;26273:3;26269:14;26255:28;;26110:179;;;;:::o;26295:113::-;26365:4;26397;26392:3;26388:14;26380:22;;26295:113;;;:::o;26444:732::-;26563:3;26592:54;26640:5;26592:54;:::i;:::-;26662:86;26741:6;26736:3;26662:86;:::i;:::-;26655:93;;26772:56;26822:5;26772:56;:::i;:::-;26851:7;26882:1;26867:284;26892:6;26889:1;26886:13;26867:284;;;26968:6;26962:13;26995:63;27054:3;27039:13;26995:63;:::i;:::-;26988:70;;27081:60;27134:6;27081:60;:::i;:::-;27071:70;;26927:224;26914:1;26911;26907:9;26902:14;;26867:284;;;26871:14;27167:3;27160:10;;26568:608;;;26444:732;;;;:::o;27182:831::-;27445:4;27483:3;27472:9;27468:19;27460:27;;27497:71;27565:1;27554:9;27550:17;27541:6;27497:71;:::i;:::-;27578:80;27654:2;27643:9;27639:18;27630:6;27578:80;:::i;:::-;27705:9;27699:4;27695:20;27690:2;27679:9;27675:18;27668:48;27733:108;27836:4;27827:6;27733:108;:::i;:::-;27725:116;;27851:72;27919:2;27908:9;27904:18;27895:6;27851:72;:::i;:::-;27933:73;28001:3;27990:9;27986:19;27977:6;27933:73;:::i;:::-;27182:831;;;;;;;;:::o;28019:177::-;28159:29;28155:1;28147:6;28143:14;28136:53;28019:177;:::o;28202:366::-;28344:3;28365:67;28429:2;28424:3;28365:67;:::i;:::-;28358:74;;28441:93;28530:3;28441:93;:::i;:::-;28559:2;28554:3;28550:12;28543:19;;28202:366;;;:::o;28574:419::-;28740:4;28778:2;28767:9;28763:18;28755:26;;28827:9;28821:4;28817:20;28813:1;28802:9;28798:17;28791:47;28855:131;28981:4;28855:131;:::i;:::-;28847:139;;28574:419;;;:::o
Swarm Source
ipfs://92bca340491e51a27f73076a51d9d63b53db3de4ea1bb806114caac6caa9a4f8
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.