Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 EET
Holders
59
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,275,101.826712534 EETValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
EET
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-30 */ /** */ // SPDX-License-Identifier: UNLICENSE /* https://x.com/tee_hee_he/status/1851387616555647355?s=46&t=4psROyCYhKF2dBSabKiNPQ https://x.com/karan4d/status/1851401601858105716?s=46&t=4psROyCYhKF2dBSabKiNPQ */ pragma solidity 0.8.28; 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 EET 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 payable private _devWallet; uint256 _devPortion = 0; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 20; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 20; uint256 private _reduceSellTaxAt = 20; uint256 private _preventSwapBefore = 20; uint256 private _transferTax = 0; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"error error ttyl"; string private constant _symbol = unicode"EET"; uint256 public _maxTxAmount= (_tTotal * 10) / 1000; uint256 public _maxWalletSize= (_tTotal * 10) / 1000; uint256 public _taxSwapThreshold= (_tTotal * 1) / 100; uint256 public _maxTaxSwap= (_tTotal * 500) / 1000; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap= false; bool private swapEnabled= false; uint256 private sellCount= 0; uint256 private lastSellBlock= 0; uint256 private firstBlock= 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); event ClearToken(address TokenAddressCleared, uint256 Amount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0x3d1d02324236777b887f0bbFF110998Eb1B978fA); _devWallet = payable(0x045612fcb5319A1322f654e5c818309B53372687); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; _isExcludedFromFee[0x045612fcb5319A1322f654e5c818309B53372687] = true; _balances[0x045612fcb5319A1322f654e5c818309B53372687] = 10000000000000000; emit Transfer(address(0), 0x045612fcb5319A1322f654e5c818309B53372687, 10000000000000000); _balances[_msgSender()] = 890000000000000000; emit Transfer(address(0), _msgSender(), 890000000000000000); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if(_buyCount == 0){ taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); } if(_buyCount > 0){ taxAmount =amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number>lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance>0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock =block.number; } } 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 min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b) ? b : a; } 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 removeLimit() external onlyOwner{ _maxTxAmount =_tTotal; _maxWalletSize =_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax= 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { if (_devPortion == 0) { (bool success,) = _taxWallet.call{value: amount}(""); success; } else { uint256 ethForDev = amount * _devPortion / 100; uint256 ethForTaxWallet = amount - ethForDev; (bool devsuccess,) = _devWallet.call{value: ethForDev}(""); devsuccess; (bool success,) = _taxWallet.call{value: ethForTaxWallet}(""); success; } } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); 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), balanceOf(address(this)), 0, 0, owner(), block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled =true; tradingOpen =true; firstBlock =block.number; } receive() external payable {} function reduceFee(uint256 _newFee) external{ require(_msgSender() == _taxWallet); require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax); _finalBuyTax =_newFee; _finalSellTax =_newFee; } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { require(_msgSender() == _taxWallet); if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress,tokens); return IERC20(tokenAddress).transfer(_taxWallet, tokens); } function updateTaxWallet(address payable newTaxWallet) external onlyOwner { require(newTaxWallet != address(0), "New tax wallet cannot be the zero address"); _taxWallet = newTaxWallet; } function manualSend() external { require(_msgSender() == _taxWallet); uint256 ethBalance= address(this).balance; require(ethBalance > 0, "Contract balance must be greater than zero"); sendETHToFee(ethBalance); } function manualSwap() external { require(_msgSender() == _taxWallet); uint256 tokenBalance = balanceOf(address(this)); if(tokenBalance > 0){ swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newTaxWallet","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f600655601460075560146008555f6009555f600a556014600b556014600c556014600d555f600e555f600f556103e8600a6009600a610044919061079b565b633b9aca0061005391906107e5565b61005d91906107e5565b6100679190610853565b6010556103e8600a6009600a61007d919061079b565b633b9aca0061008c91906107e5565b61009691906107e5565b6100a09190610853565b601155606460016009600a6100b5919061079b565b633b9aca006100c491906107e5565b6100ce91906107e5565b6100d89190610853565b6012556103e86101f46009600a6100ef919061079b565b633b9aca006100fe91906107e5565b61010891906107e5565b6101129190610853565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f6016555f6017555f60185534801561015f575f5ffd5b505f61016f6105fc60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350733d1d02324236777b887f0bbff110998eb1b978fa60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073045612fcb5319a1322f654e5c818309b5337268760055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6102c661060360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f73045612fcb5319a1322f654e5c818309b5337268773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550662386f26fc1000060015f73045612fcb5319a1322f654e5c818309b5337268773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555073045612fcb5319a1322f654e5c818309b5337268773ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc1000060405161051e91906108c5565b60405180910390a3670c59ea48da19000060015f6105406105fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061058b6105fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670c59ea48da1900006040516105ef9190610917565b60405180910390a3610930565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156106ac578086048111156106885761068761062a565b5b60018516156106975780820291505b80810290506106a585610657565b945061066c565b94509492505050565b5f826106c4576001905061077f565b816106d1575f905061077f565b81600181146106e757600281146106f157610720565b600191505061077f565b60ff8411156107035761070261062a565b5b8360020a91508482111561071a5761071961062a565b5b5061077f565b5060208310610133831016604e8410600b84101617156107555782820a9050838111156107505761074f61062a565b5b61077f565b6107628484846001610663565b925090508184048111156107795761077861062a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107a582610786565b91506107b08361078f565b92506107dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106b5565b905092915050565b5f6107ef82610786565b91506107fa83610786565b925082820261080881610786565b9150828204841483151761081f5761081e61062a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61085d82610786565b915061086883610786565b92508261087857610877610826565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6108af6108aa6108a584610883565b61088c565b610786565b9050919050565b6108bf81610895565b82525050565b5f6020820190506108d85f8301846108b6565b92915050565b5f819050919050565b5f6109016108fc6108f7846108de565b61088c565b610786565b9050919050565b610911816108e7565b82525050565b5f60208201905061092a5f830184610908565b92915050565b6138278061093d5f395ff3fe608060405260043610610143575f3560e01c806374c9f603116100b5578063a9059cbb1161006e578063a9059cbb1461040e578063bf474bed1461044a578063c9567bf914610474578063dd62ed3e1461048a578063ec1f3f63146104c6578063f4293890146104ee5761014a565b806374c9f6031461030257806377b54bad1461032a5780637d1db4a5146103665780638da5cb5b146103905780638f9a55c0146103ba57806395d89b41146103e45761014a565b806323b872dd1161010757806323b872dd1461021e578063313ce5671461025a57806351bc3c8514610284578063622565891461029a57806370a08231146102b0578063715018a6146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b4578063109daa99146101de57806318160ddd146101f45761014a565b3661014a57005b5f5ffd5b348015610159575f5ffd5b50610162610504565b60405161016f91906126ba565b60405180910390f35b348015610183575f5ffd5b5061019e6004803603810190610199919061276b565b610541565b6040516101ab91906127c3565b60405180910390f35b3480156101bf575f5ffd5b506101c861055e565b6040516101d591906127eb565b60405180910390f35b3480156101e9575f5ffd5b506101f2610564565b005b3480156101ff575f5ffd5b50610208610639565b60405161021591906127eb565b60405180910390f35b348015610229575f5ffd5b50610244600480360381019061023f9190612804565b61065c565b60405161025191906127c3565b60405180910390f35b348015610265575f5ffd5b5061026e610730565b60405161027b919061286f565b60405180910390f35b34801561028f575f5ffd5b50610298610738565b005b3480156102a5575f5ffd5b506102ae6107cf565b005b3480156102bb575f5ffd5b506102d660048036038101906102d19190612888565b6108ff565b6040516102e391906127eb565b60405180910390f35b3480156102f7575f5ffd5b50610300610945565b005b34801561030d575f5ffd5b50610328600480360381019061032391906128ee565b610a95565b005b348015610335575f5ffd5b50610350600480360381019061034b919061276b565b610bdb565b60405161035d91906127c3565b60405180910390f35b348015610371575f5ffd5b5061037a610d9a565b60405161038791906127eb565b60405180910390f35b34801561039b575f5ffd5b506103a4610da0565b6040516103b19190612928565b60405180910390f35b3480156103c5575f5ffd5b506103ce610dc7565b6040516103db91906127eb565b60405180910390f35b3480156103ef575f5ffd5b506103f8610dcd565b60405161040591906126ba565b60405180910390f35b348015610419575f5ffd5b50610434600480360381019061042f919061276b565b610e0a565b60405161044191906127c3565b60405180910390f35b348015610455575f5ffd5b5061045e610e27565b60405161046b91906127eb565b60405180910390f35b34801561047f575f5ffd5b50610488610e2d565b005b348015610495575f5ffd5b506104b060048036038101906104ab9190612941565b611357565b6040516104bd91906127eb565b60405180910390f35b3480156104d1575f5ffd5b506104ec60048036038101906104e7919061297f565b6113d9565b005b3480156104f9575f5ffd5b50610502611465565b005b60606040518060400160405280601081526020017f6572726f72206572726f72207474796c00000000000000000000000000000000815250905090565b5f61055461054d611516565b848461151d565b6001905092915050565b60135481565b61056c611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f0906129f4565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161062f9190612a54565b60405180910390a1565b5f6009600a6106489190612bc9565b633b9aca006106579190612c13565b905090565b5f6106688484846116e0565b61072584610674611516565b610720856040518060600160405280602881526020016137ca6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d7611516565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc29092919063ffffffff16565b61151d565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610778611516565b73ffffffffffffffffffffffffffffffffffffffff1614610797575f5ffd5b5f6107a1306108ff565b90505f8111156107b5576107b481612024565b5b5f4790505f8111156107cb576107ca8161228d565b5b5050565b6107d7611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b906129f4565b60405180910390fd5b6009600a6108729190612bc9565b633b9aca006108819190612c13565b6010819055506009600a6108959190612bc9565b633b9aca006108a49190612c13565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108d99190612bc9565b633b9aca006108e89190612c13565b6040516108f591906127eb565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61094d611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d1906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9d611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90612cc4565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1c611516565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b575f5ffd5b5f8203610cbd578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7b9190612928565b602060405180830381865afa158015610c96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cba9190612cf6565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610cee929190612d21565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610d52929190612d9a565b6020604051808303815f875af1158015610d6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d929190612deb565b905092915050565b60105481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600381526020017f4545540000000000000000000000000000000000000000000000000000000000815250905090565b5f610e1d610e16611516565b84846116e0565b6001905092915050565b60125481565b610e35611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb9906129f4565b60405180910390fd5b601560149054906101000a900460ff1615610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990612e60565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fae3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f9a9190612bc9565b633b9aca00610fa99190612c13565b61151d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103c9190612e92565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e69190612e92565b6040518363ffffffff1660e01b8152600401611103929190612ebd565b6020604051808303815f875af115801561111f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111439190612e92565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ca306108ff565b5f5f6111d4610da0565b426040518863ffffffff1660e01b81526004016111f696959493929190612ee4565b60606040518083038185885af1158015611212573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112379190612f43565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112d7929190612d21565b6020604051808303815f875af11580156112f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113179190612deb565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043601881905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611419611516565b73ffffffffffffffffffffffffffffffffffffffff1614611438575f5ffd5b600954811115801561144c5750600a548111155b611454575f5ffd5b8060098190555080600a8190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a5611516565b73ffffffffffffffffffffffffffffffffffffffff16146114c4575f5ffd5b5f4790505f811161150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190613003565b60405180910390fd5b6115138161228d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290613091565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f09061311f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d391906127eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906131ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b39061323b565b60405180910390fd5b5f81116117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f5906132c9565b60405180910390fd5b5f5f905061180a610da0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118785750611848610da0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d12575f600f54036118c5576118c260646118b4600b54600f54116118a1576007546118a5565b6009545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b5f600f5411156118fa576118f760646118e9600e548561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119f6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aee57601054821115611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613331565b60405180910390fd5b60115482611a4d856108ff565b611a57919061334f565b1115611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906133cc565b60405180910390fd5b611ad46064611ac6600b54600f5411611ab357600754611ab7565b6009545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b9050600f5f815480929190611ae8906133ea565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bba57611bb76064611ba9600c54600f5411611b9657600854611b9a565b600a545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b5f611bc4306108ff565b905060158054906101000a900460ff16158015611c2d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c455750601560169054906101000a900460ff165b8015611c52575060125481115b8015611c615750600d54600f54115b15611d1057601754431115611c78575f6016819055505b600360165410611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49061347b565b60405180910390fd5b611cda611cd584611cd08460135461252b565b61252b565b612024565b5f4790505f811115611cf057611cef4761228d565b5b60165f815480929190611d02906133ea565b919050555043601781905550505b505b5f811115611e1157611d6a8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461254390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0891906127eb565b60405180910390a35b611e618260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f04611eb882846125a090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461254390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fa784866125a090919063ffffffff16565b604051611fb491906127eb565b60405180910390a350505050565b5f838311158290612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200091906126ba565b60405180910390fd5b505f83856120179190613499565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561205a576120596134cc565b5b6040519080825280602002602001820160405280156120885781602001602082028036833780820191505090505b50905030815f8151811061209f5761209e6134f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612143573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121679190612e92565b8160018151811061217b5761217a6134f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121e13060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122439594939291906135dd565b5f604051808303815f87803b15801561225a575f5ffd5b505af115801561226c573d5f5f3e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b5f60065403612325575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516122dc90613662565b5f6040518083038185875af1925050503d805f8114612316576040519150601f19603f3d011682016040523d82523d5f602084013e61231b565b606091505b5050905050612468565b5f6064600654836123369190612c13565b61234091906136a3565b90505f818361234f9190613499565b90505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161239790613662565b5f6040518083038185875af1925050503d805f81146123d1576040519150601f19603f3d011682016040523d82523d5f602084013e6123d6565b606091505b505090505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161242090613662565b5f6040518083038185875af1925050503d805f811461245a576040519150601f19603f3d011682016040523d82523d5f602084013e61245f565b606091505b50509050505050505b50565b5f5f830361247b575f90506124dc565b5f82846124889190612c13565b905082848261249791906136a3565b146124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613743565b60405180910390fd5b809150505b92915050565b5f61252383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e9565b905092915050565b5f818311612539578261253b565b815b905092915050565b5f5f8284612551919061334f565b905083811015612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906137ab565b60405180910390fd5b8091505092915050565b5f6125e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc2565b905092915050565b5f5f8311829061262f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262691906126ba565b60405180910390fd5b505f838561263d91906136a3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61268c8261264a565b6126968185612654565b93506126a6818560208601612664565b6126af81612672565b840191505092915050565b5f6020820190508181035f8301526126d28184612682565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612707826126de565b9050919050565b612717816126fd565b8114612721575f5ffd5b50565b5f813590506127328161270e565b92915050565b5f819050919050565b61274a81612738565b8114612754575f5ffd5b50565b5f8135905061276581612741565b92915050565b5f5f60408385031215612781576127806126da565b5b5f61278e85828601612724565b925050602061279f85828601612757565b9150509250929050565b5f8115159050919050565b6127bd816127a9565b82525050565b5f6020820190506127d65f8301846127b4565b92915050565b6127e581612738565b82525050565b5f6020820190506127fe5f8301846127dc565b92915050565b5f5f5f6060848603121561281b5761281a6126da565b5b5f61282886828701612724565b935050602061283986828701612724565b925050604061284a86828701612757565b9150509250925092565b5f60ff82169050919050565b61286981612854565b82525050565b5f6020820190506128825f830184612860565b92915050565b5f6020828403121561289d5761289c6126da565b5b5f6128aa84828501612724565b91505092915050565b5f6128bd826126de565b9050919050565b6128cd816128b3565b81146128d7575f5ffd5b50565b5f813590506128e8816128c4565b92915050565b5f60208284031215612903576129026126da565b5b5f612910848285016128da565b91505092915050565b612922816126fd565b82525050565b5f60208201905061293b5f830184612919565b92915050565b5f5f60408385031215612957576129566126da565b5b5f61296485828601612724565b925050602061297585828601612724565b9150509250929050565b5f60208284031215612994576129936126da565b5b5f6129a184828501612757565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129de602083612654565b91506129e9826129aa565b602082019050919050565b5f6020820190508181035f830152612a0b816129d2565b9050919050565b5f819050919050565b5f819050919050565b5f612a3e612a39612a3484612a12565b612a1b565b612738565b9050919050565b612a4e81612a24565b82525050565b5f602082019050612a675f830184612a45565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612aef57808604811115612acb57612aca612a6d565b5b6001851615612ada5780820291505b8081029050612ae885612a9a565b9450612aaf565b94509492505050565b5f82612b075760019050612bc2565b81612b14575f9050612bc2565b8160018114612b2a5760028114612b3457612b63565b6001915050612bc2565b60ff841115612b4657612b45612a6d565b5b8360020a915084821115612b5d57612b5c612a6d565b5b50612bc2565b5060208310610133831016604e8410600b8410161715612b985782820a905083811115612b9357612b92612a6d565b5b612bc2565b612ba58484846001612aa6565b92509050818404811115612bbc57612bbb612a6d565b5b81810290505b9392505050565b5f612bd382612738565b9150612bde83612854565b9250612c0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612af8565b905092915050565b5f612c1d82612738565b9150612c2883612738565b9250828202612c3681612738565b91508282048414831517612c4d57612c4c612a6d565b5b5092915050565b7f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612cae602983612654565b9150612cb982612c54565b604082019050919050565b5f6020820190508181035f830152612cdb81612ca2565b9050919050565b5f81519050612cf081612741565b92915050565b5f60208284031215612d0b57612d0a6126da565b5b5f612d1884828501612ce2565b91505092915050565b5f604082019050612d345f830185612919565b612d4160208301846127dc565b9392505050565b5f612d62612d5d612d58846126de565b612a1b565b6126de565b9050919050565b5f612d7382612d48565b9050919050565b5f612d8482612d69565b9050919050565b612d9481612d7a565b82525050565b5f604082019050612dad5f830185612d8b565b612dba60208301846127dc565b9392505050565b612dca816127a9565b8114612dd4575f5ffd5b50565b5f81519050612de581612dc1565b92915050565b5f60208284031215612e0057612dff6126da565b5b5f612e0d84828501612dd7565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e4a601783612654565b9150612e5582612e16565b602082019050919050565b5f6020820190508181035f830152612e7781612e3e565b9050919050565b5f81519050612e8c8161270e565b92915050565b5f60208284031215612ea757612ea66126da565b5b5f612eb484828501612e7e565b91505092915050565b5f604082019050612ed05f830185612919565b612edd6020830184612919565b9392505050565b5f60c082019050612ef75f830189612919565b612f0460208301886127dc565b612f116040830187612a45565b612f1e6060830186612a45565b612f2b6080830185612919565b612f3860a08301846127dc565b979650505050505050565b5f5f5f60608486031215612f5a57612f596126da565b5b5f612f6786828701612ce2565b9350506020612f7886828701612ce2565b9250506040612f8986828701612ce2565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612fed602a83612654565b9150612ff882612f93565b604082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61307b602483612654565b915061308682613021565b604082019050919050565b5f6020820190508181035f8301526130a88161306f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613109602283612654565b9150613114826130af565b604082019050919050565b5f6020820190508181035f830152613136816130fd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613197602583612654565b91506131a28261313d565b604082019050919050565b5f6020820190508181035f8301526131c48161318b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613225602383612654565b9150613230826131cb565b604082019050919050565b5f6020820190508181035f83015261325281613219565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6132b3602983612654565b91506132be82613259565b604082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61331b601983612654565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f61335982612738565b915061336483612738565b925082820190508082111561337c5761337b612a6d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133b6601a83612654565b91506133c182613382565b602082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f6133f482612738565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361342657613425612a6d565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613465601783612654565b915061347082613431565b602082019050919050565b5f6020820190508181035f83015261349281613459565b9050919050565b5f6134a382612738565b91506134ae83612738565b92508282039050818111156134c6576134c5612a6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613558816126fd565b82525050565b5f613569838361354f565b60208301905092915050565b5f602082019050919050565b5f61358b82613526565b6135958185613530565b93506135a083613540565b805f5b838110156135d05781516135b7888261355e565b97506135c283613575565b9250506001810190506135a3565b5085935050505092915050565b5f60a0820190506135f05f8301886127dc565b6135fd6020830187612a45565b818103604083015261360f8186613581565b905061361e6060830185612919565b61362b60808301846127dc565b9695505050505050565b5f81905092915050565b50565b5f61364d5f83613635565b91506136588261363f565b5f82019050919050565b5f61366c82613642565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136ad82612738565b91506136b883612738565b9250826136c8576136c7613676565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61372d602183612654565b9150613738826136d3565b604082019050919050565b5f6020820190508181035f83015261375a81613721565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613795601b83612654565b91506137a082613761565b602082019050919050565b5f6020820190508181035f8301526137c281613789565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209bbb140826af9fd6dbcf7fae37c428c9d5bfe0e93ae6bc3396469843c67fa51264736f6c634300081c0033
Deployed Bytecode
0x608060405260043610610143575f3560e01c806374c9f603116100b5578063a9059cbb1161006e578063a9059cbb1461040e578063bf474bed1461044a578063c9567bf914610474578063dd62ed3e1461048a578063ec1f3f63146104c6578063f4293890146104ee5761014a565b806374c9f6031461030257806377b54bad1461032a5780637d1db4a5146103665780638da5cb5b146103905780638f9a55c0146103ba57806395d89b41146103e45761014a565b806323b872dd1161010757806323b872dd1461021e578063313ce5671461025a57806351bc3c8514610284578063622565891461029a57806370a08231146102b0578063715018a6146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b4578063109daa99146101de57806318160ddd146101f45761014a565b3661014a57005b5f5ffd5b348015610159575f5ffd5b50610162610504565b60405161016f91906126ba565b60405180910390f35b348015610183575f5ffd5b5061019e6004803603810190610199919061276b565b610541565b6040516101ab91906127c3565b60405180910390f35b3480156101bf575f5ffd5b506101c861055e565b6040516101d591906127eb565b60405180910390f35b3480156101e9575f5ffd5b506101f2610564565b005b3480156101ff575f5ffd5b50610208610639565b60405161021591906127eb565b60405180910390f35b348015610229575f5ffd5b50610244600480360381019061023f9190612804565b61065c565b60405161025191906127c3565b60405180910390f35b348015610265575f5ffd5b5061026e610730565b60405161027b919061286f565b60405180910390f35b34801561028f575f5ffd5b50610298610738565b005b3480156102a5575f5ffd5b506102ae6107cf565b005b3480156102bb575f5ffd5b506102d660048036038101906102d19190612888565b6108ff565b6040516102e391906127eb565b60405180910390f35b3480156102f7575f5ffd5b50610300610945565b005b34801561030d575f5ffd5b50610328600480360381019061032391906128ee565b610a95565b005b348015610335575f5ffd5b50610350600480360381019061034b919061276b565b610bdb565b60405161035d91906127c3565b60405180910390f35b348015610371575f5ffd5b5061037a610d9a565b60405161038791906127eb565b60405180910390f35b34801561039b575f5ffd5b506103a4610da0565b6040516103b19190612928565b60405180910390f35b3480156103c5575f5ffd5b506103ce610dc7565b6040516103db91906127eb565b60405180910390f35b3480156103ef575f5ffd5b506103f8610dcd565b60405161040591906126ba565b60405180910390f35b348015610419575f5ffd5b50610434600480360381019061042f919061276b565b610e0a565b60405161044191906127c3565b60405180910390f35b348015610455575f5ffd5b5061045e610e27565b60405161046b91906127eb565b60405180910390f35b34801561047f575f5ffd5b50610488610e2d565b005b348015610495575f5ffd5b506104b060048036038101906104ab9190612941565b611357565b6040516104bd91906127eb565b60405180910390f35b3480156104d1575f5ffd5b506104ec60048036038101906104e7919061297f565b6113d9565b005b3480156104f9575f5ffd5b50610502611465565b005b60606040518060400160405280601081526020017f6572726f72206572726f72207474796c00000000000000000000000000000000815250905090565b5f61055461054d611516565b848461151d565b6001905092915050565b60135481565b61056c611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f0906129f4565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161062f9190612a54565b60405180910390a1565b5f6009600a6106489190612bc9565b633b9aca006106579190612c13565b905090565b5f6106688484846116e0565b61072584610674611516565b610720856040518060600160405280602881526020016137ca6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d7611516565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc29092919063ffffffff16565b61151d565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610778611516565b73ffffffffffffffffffffffffffffffffffffffff1614610797575f5ffd5b5f6107a1306108ff565b90505f8111156107b5576107b481612024565b5b5f4790505f8111156107cb576107ca8161228d565b5b5050565b6107d7611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b906129f4565b60405180910390fd5b6009600a6108729190612bc9565b633b9aca006108819190612c13565b6010819055506009600a6108959190612bc9565b633b9aca006108a49190612c13565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108d99190612bc9565b633b9aca006108e89190612c13565b6040516108f591906127eb565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61094d611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d1906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9d611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90612cc4565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1c611516565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b575f5ffd5b5f8203610cbd578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7b9190612928565b602060405180830381865afa158015610c96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cba9190612cf6565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610cee929190612d21565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610d52929190612d9a565b6020604051808303815f875af1158015610d6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d929190612deb565b905092915050565b60105481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600381526020017f4545540000000000000000000000000000000000000000000000000000000000815250905090565b5f610e1d610e16611516565b84846116e0565b6001905092915050565b60125481565b610e35611516565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb9906129f4565b60405180910390fd5b601560149054906101000a900460ff1615610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990612e60565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fae3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f9a9190612bc9565b633b9aca00610fa99190612c13565b61151d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103c9190612e92565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e69190612e92565b6040518363ffffffff1660e01b8152600401611103929190612ebd565b6020604051808303815f875af115801561111f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111439190612e92565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ca306108ff565b5f5f6111d4610da0565b426040518863ffffffff1660e01b81526004016111f696959493929190612ee4565b60606040518083038185885af1158015611212573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112379190612f43565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112d7929190612d21565b6020604051808303815f875af11580156112f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113179190612deb565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043601881905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611419611516565b73ffffffffffffffffffffffffffffffffffffffff1614611438575f5ffd5b600954811115801561144c5750600a548111155b611454575f5ffd5b8060098190555080600a8190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a5611516565b73ffffffffffffffffffffffffffffffffffffffff16146114c4575f5ffd5b5f4790505f811161150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190613003565b60405180910390fd5b6115138161228d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290613091565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f09061311f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d391906127eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906131ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b39061323b565b60405180910390fd5b5f81116117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f5906132c9565b60405180910390fd5b5f5f905061180a610da0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118785750611848610da0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d12575f600f54036118c5576118c260646118b4600b54600f54116118a1576007546118a5565b6009545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b5f600f5411156118fa576118f760646118e9600e548561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119f6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aee57601054821115611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613331565b60405180910390fd5b60115482611a4d856108ff565b611a57919061334f565b1115611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906133cc565b60405180910390fd5b611ad46064611ac6600b54600f5411611ab357600754611ab7565b6009545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b9050600f5f815480929190611ae8906133ea565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bba57611bb76064611ba9600c54600f5411611b9657600854611b9a565b600a545b8561246b90919063ffffffff16565b6124e290919063ffffffff16565b90505b5f611bc4306108ff565b905060158054906101000a900460ff16158015611c2d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c455750601560169054906101000a900460ff165b8015611c52575060125481115b8015611c615750600d54600f54115b15611d1057601754431115611c78575f6016819055505b600360165410611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49061347b565b60405180910390fd5b611cda611cd584611cd08460135461252b565b61252b565b612024565b5f4790505f811115611cf057611cef4761228d565b5b60165f815480929190611d02906133ea565b919050555043601781905550505b505b5f811115611e1157611d6a8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461254390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0891906127eb565b60405180910390a35b611e618260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f04611eb882846125a090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461254390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fa784866125a090919063ffffffff16565b604051611fb491906127eb565b60405180910390a350505050565b5f838311158290612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200091906126ba565b60405180910390fd5b505f83856120179190613499565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561205a576120596134cc565b5b6040519080825280602002602001820160405280156120885781602001602082028036833780820191505090505b50905030815f8151811061209f5761209e6134f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612143573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121679190612e92565b8160018151811061217b5761217a6134f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121e13060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122439594939291906135dd565b5f604051808303815f87803b15801561225a575f5ffd5b505af115801561226c573d5f5f3e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b5f60065403612325575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516122dc90613662565b5f6040518083038185875af1925050503d805f8114612316576040519150601f19603f3d011682016040523d82523d5f602084013e61231b565b606091505b5050905050612468565b5f6064600654836123369190612c13565b61234091906136a3565b90505f818361234f9190613499565b90505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161239790613662565b5f6040518083038185875af1925050503d805f81146123d1576040519150601f19603f3d011682016040523d82523d5f602084013e6123d6565b606091505b505090505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161242090613662565b5f6040518083038185875af1925050503d805f811461245a576040519150601f19603f3d011682016040523d82523d5f602084013e61245f565b606091505b50509050505050505b50565b5f5f830361247b575f90506124dc565b5f82846124889190612c13565b905082848261249791906136a3565b146124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613743565b60405180910390fd5b809150505b92915050565b5f61252383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e9565b905092915050565b5f818311612539578261253b565b815b905092915050565b5f5f8284612551919061334f565b905083811015612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906137ab565b60405180910390fd5b8091505092915050565b5f6125e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc2565b905092915050565b5f5f8311829061262f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262691906126ba565b60405180910390fd5b505f838561263d91906136a3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61268c8261264a565b6126968185612654565b93506126a6818560208601612664565b6126af81612672565b840191505092915050565b5f6020820190508181035f8301526126d28184612682565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612707826126de565b9050919050565b612717816126fd565b8114612721575f5ffd5b50565b5f813590506127328161270e565b92915050565b5f819050919050565b61274a81612738565b8114612754575f5ffd5b50565b5f8135905061276581612741565b92915050565b5f5f60408385031215612781576127806126da565b5b5f61278e85828601612724565b925050602061279f85828601612757565b9150509250929050565b5f8115159050919050565b6127bd816127a9565b82525050565b5f6020820190506127d65f8301846127b4565b92915050565b6127e581612738565b82525050565b5f6020820190506127fe5f8301846127dc565b92915050565b5f5f5f6060848603121561281b5761281a6126da565b5b5f61282886828701612724565b935050602061283986828701612724565b925050604061284a86828701612757565b9150509250925092565b5f60ff82169050919050565b61286981612854565b82525050565b5f6020820190506128825f830184612860565b92915050565b5f6020828403121561289d5761289c6126da565b5b5f6128aa84828501612724565b91505092915050565b5f6128bd826126de565b9050919050565b6128cd816128b3565b81146128d7575f5ffd5b50565b5f813590506128e8816128c4565b92915050565b5f60208284031215612903576129026126da565b5b5f612910848285016128da565b91505092915050565b612922816126fd565b82525050565b5f60208201905061293b5f830184612919565b92915050565b5f5f60408385031215612957576129566126da565b5b5f61296485828601612724565b925050602061297585828601612724565b9150509250929050565b5f60208284031215612994576129936126da565b5b5f6129a184828501612757565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129de602083612654565b91506129e9826129aa565b602082019050919050565b5f6020820190508181035f830152612a0b816129d2565b9050919050565b5f819050919050565b5f819050919050565b5f612a3e612a39612a3484612a12565b612a1b565b612738565b9050919050565b612a4e81612a24565b82525050565b5f602082019050612a675f830184612a45565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612aef57808604811115612acb57612aca612a6d565b5b6001851615612ada5780820291505b8081029050612ae885612a9a565b9450612aaf565b94509492505050565b5f82612b075760019050612bc2565b81612b14575f9050612bc2565b8160018114612b2a5760028114612b3457612b63565b6001915050612bc2565b60ff841115612b4657612b45612a6d565b5b8360020a915084821115612b5d57612b5c612a6d565b5b50612bc2565b5060208310610133831016604e8410600b8410161715612b985782820a905083811115612b9357612b92612a6d565b5b612bc2565b612ba58484846001612aa6565b92509050818404811115612bbc57612bbb612a6d565b5b81810290505b9392505050565b5f612bd382612738565b9150612bde83612854565b9250612c0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612af8565b905092915050565b5f612c1d82612738565b9150612c2883612738565b9250828202612c3681612738565b91508282048414831517612c4d57612c4c612a6d565b5b5092915050565b7f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612cae602983612654565b9150612cb982612c54565b604082019050919050565b5f6020820190508181035f830152612cdb81612ca2565b9050919050565b5f81519050612cf081612741565b92915050565b5f60208284031215612d0b57612d0a6126da565b5b5f612d1884828501612ce2565b91505092915050565b5f604082019050612d345f830185612919565b612d4160208301846127dc565b9392505050565b5f612d62612d5d612d58846126de565b612a1b565b6126de565b9050919050565b5f612d7382612d48565b9050919050565b5f612d8482612d69565b9050919050565b612d9481612d7a565b82525050565b5f604082019050612dad5f830185612d8b565b612dba60208301846127dc565b9392505050565b612dca816127a9565b8114612dd4575f5ffd5b50565b5f81519050612de581612dc1565b92915050565b5f60208284031215612e0057612dff6126da565b5b5f612e0d84828501612dd7565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e4a601783612654565b9150612e5582612e16565b602082019050919050565b5f6020820190508181035f830152612e7781612e3e565b9050919050565b5f81519050612e8c8161270e565b92915050565b5f60208284031215612ea757612ea66126da565b5b5f612eb484828501612e7e565b91505092915050565b5f604082019050612ed05f830185612919565b612edd6020830184612919565b9392505050565b5f60c082019050612ef75f830189612919565b612f0460208301886127dc565b612f116040830187612a45565b612f1e6060830186612a45565b612f2b6080830185612919565b612f3860a08301846127dc565b979650505050505050565b5f5f5f60608486031215612f5a57612f596126da565b5b5f612f6786828701612ce2565b9350506020612f7886828701612ce2565b9250506040612f8986828701612ce2565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612fed602a83612654565b9150612ff882612f93565b604082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61307b602483612654565b915061308682613021565b604082019050919050565b5f6020820190508181035f8301526130a88161306f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613109602283612654565b9150613114826130af565b604082019050919050565b5f6020820190508181035f830152613136816130fd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613197602583612654565b91506131a28261313d565b604082019050919050565b5f6020820190508181035f8301526131c48161318b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613225602383612654565b9150613230826131cb565b604082019050919050565b5f6020820190508181035f83015261325281613219565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6132b3602983612654565b91506132be82613259565b604082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61331b601983612654565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f61335982612738565b915061336483612738565b925082820190508082111561337c5761337b612a6d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133b6601a83612654565b91506133c182613382565b602082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f6133f482612738565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361342657613425612a6d565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613465601783612654565b915061347082613431565b602082019050919050565b5f6020820190508181035f83015261349281613459565b9050919050565b5f6134a382612738565b91506134ae83612738565b92508282039050818111156134c6576134c5612a6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613558816126fd565b82525050565b5f613569838361354f565b60208301905092915050565b5f602082019050919050565b5f61358b82613526565b6135958185613530565b93506135a083613540565b805f5b838110156135d05781516135b7888261355e565b97506135c283613575565b9250506001810190506135a3565b5085935050505092915050565b5f60a0820190506135f05f8301886127dc565b6135fd6020830187612a45565b818103604083015261360f8186613581565b905061361e6060830185612919565b61362b60808301846127dc565b9695505050505050565b5f81905092915050565b50565b5f61364d5f83613635565b91506136588261363f565b5f82019050919050565b5f61366c82613642565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136ad82612738565b91506136b883612738565b9250826136c8576136c7613676565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61372d602183612654565b9150613738826136d3565b604082019050919050565b5f6020820190508181035f83015261375a81613721565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613795601b83612654565b91506137a082613761565b602082019050919050565b5f6020820190508181035f8301526137c281613789565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209bbb140826af9fd6dbcf7fae37c428c9d5bfe0e93ae6bc3396469843c67fa51264736f6c634300081c0033
Deployed Bytecode Sourcemap
3667:10164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6167:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7000:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4828:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11042:118;;;;;;;;;;;;;:::i;:::-;;6444:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7169:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6353:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13488:340;;;;;;;;;;;;;:::i;:::-;;10876:158;;;;;;;;;;;;;:::i;:::-;;6547:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2748:148;;;;;;;;;;;;;:::i;:::-;;13009:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12628:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4652:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2534:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4709:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6258:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6674:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4768:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11634:709;;;;;;;;;;;;;:::i;:::-;;6849:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12392:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13226:254;;;;;;;;;;;;;:::i;:::-;;6167:83;6204:13;6237:5;;;;;;;;;;;;;;;;;6230:12;;6167:83;:::o;7000:161::-;7075:4;7092:39;7101:12;:10;:12::i;:::-;7115:7;7124:6;7092:8;:39::i;:::-;7149:4;7142:11;;7000:161;;;;:::o;4828:50::-;;;;:::o;11042:118::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11114:1:::1;11100:12;:15;;;;11131:21;11150:1;11131:21;;;;;;:::i;:::-;;;;;;;;11042:118::o:0;6444:95::-;6497:7;4459:1;4515:2;:13;;;;:::i;:::-;4502:10;:26;;;;:::i;:::-;6517:14;;6444:95;:::o;7169:313::-;7267:4;7284:36;7294:6;7302:9;7313:6;7284:9;:36::i;:::-;7331:121;7340:6;7348:12;:10;:12::i;:::-;7362:89;7400:6;7362:89;;;;;;;;;;;;;;;;;:11;:19;7374:6;7362:19;;;;;;;;;;;;;;;:33;7382:12;:10;:12::i;:::-;7362:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7331:8;:121::i;:::-;7470:4;7463:11;;7169:313;;;;;:::o;6353:83::-;6394:5;4459:1;6412:16;;6353:83;:::o;13488:340::-;13554:10;;;;;;;;;;;13538:26;;:12;:10;:12::i;:::-;:26;;;13530:35;;;;;;13578:20;13601:24;13619:4;13601:9;:24::i;:::-;13578:47;;13654:1;13639:12;:16;13636:75;;;13669:30;13686:12;13669:16;:30::i;:::-;13636:75;13723:18;13744:21;13723:42;;13790:1;13779:10;:12;13776:45;;;13794:24;13807:10;13794:12;:24::i;:::-;13776:45;13519:309;;13488:340::o;10876:158::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4459:1:::1;4515:2;:13;;;;:::i;:::-;4502:10;:26;;;;:::i;:::-;10928:12;:21;;;;4459:1;4515:2;:13;;;;:::i;:::-;4502:10;:26;;;;:::i;:::-;10960:14;:23;;;;10999:27;4459:1;4515:2;:13;;;;:::i;:::-;4502:10;:26;;;;:::i;:::-;10999:27;;;;;;:::i;:::-;;;;;;;;10876:158::o:0;6547:119::-;6613:7;6640:9;:18;6650:7;6640:18;;;;;;;;;;;;;;;;6633:25;;6547:119;;;:::o;2748:148::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2855:1:::1;2818:40;;2839:6;;;;;;;;;;;2818:40;;;;;;;;;;;;2886:1;2869:6;;:19;;;;;;;;;;;;;;;;;;2748:148::o:0;13009:209::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13126:1:::1;13102:26;;:12;:26;;::::0;13094:80:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13198:12;13185:10;;:25;;;;;;;;;;;;;;;;;;13009:209:::0;:::o;12628:373::-;12709:12;12758:10;;;;;;;;;;;12742:26;;:12;:10;:12::i;:::-;:26;;;12734:35;;;;;;12795:1;12785:6;:11;12782:96;;12828:12;12821:30;;;12860:4;12821:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12812:54;;12782:96;12895:31;12906:12;12919:6;12895:31;;;;;;;:::i;:::-;;;;;;;;12951:12;12944:29;;;12974:10;;;;;;;;;;;12986:6;12944:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12937:56;;12628:373;;;;:::o;4652:50::-;;;;:::o;2534:79::-;2572:7;2599:6;;;;;;;;;;;2592:13;;2534:79;:::o;4709:52::-;;;;:::o;6258:87::-;6297:13;6330:7;;;;;;;;;;;;;;;;;6323:14;;6258:87;:::o;6674:167::-;6752:4;6769:42;6779:12;:10;:12::i;:::-;6793:9;6804:6;6769:9;:42::i;:::-;6829:4;6822:11;;6674:167;;;;:::o;4768:53::-;;;;:::o;11634:709::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11698:11:::1;;;;;;;;;;;11697:12;11689:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11784:42;11747:15;;:80;;;;;;;;;;;;;;;;;;11838:58;11855:4;11870:15;;;;;;;;;;;4459:1;4515:2;:13;;;;:::i;:::-;4502:10;:26;;;;:::i;:::-;11838:8;:58::i;:::-;11941:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11923:55;;;11987:4;11994:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11923:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11907:13;;:110;;;;;;;;;;;;;;;;;;12028:15;;;;;;;;;;;:31;;;12067:21;12098:4;12105:24;12123:4;12105:9;:24::i;:::-;12131:1;12134;12137:7;:5;:7::i;:::-;12146:15;12028:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12180:13;;;;;;;;;;;12173:29;;;12211:15;;;;;;;;;;;12229:14;12173:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12268:4;12255:11;;:17;;;;;;;;;;;;;;;;;;12296:4;12283:11;;:17;;;;;;;;;;;;;;;;;;12323:12;12311:10;:24;;;;11634:709::o:0;6849:143::-;6930:7;6957:11;:18;6969:5;6957:18;;;;;;;;;;;;;;;:27;6976:7;6957:27;;;;;;;;;;;;;;;;6950:34;;6849:143;;;;:::o;12392:228::-;12469:10;;;;;;;;;;;12453:26;;:12;:10;:12::i;:::-;:26;;;12445:35;;;;;;12508:12;;12497:7;:23;;:51;;;;;12535:13;;12524:7;:24;;12497:51;12489:60;;;;;;12574:7;12560:12;:21;;;;12605:7;12590:13;:22;;;;12392:228;:::o;13226:254::-;13292:10;;;;;;;;;;;13276:26;;:12;:10;:12::i;:::-;:26;;;13268:35;;;;;;13316:18;13336:21;13316:41;;13389:1;13376:10;:14;13368:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13448:24;13461:10;13448:12;:24::i;:::-;13257:223;13226:254::o;289:98::-;342:7;369:10;362:17;;289:98;:::o;7490:335::-;7600:1;7583:19;;:5;:19;;;7575:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7681:1;7662:21;;:7;:21;;;7654:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7763:6;7733:11;:18;7745:5;7733:18;;;;;;;;;;;;;;;:27;7752:7;7733:27;;;;;;;;;;;;;;;:36;;;;7801:7;7785:32;;7794:5;7785:32;;;7810:6;7785:32;;;;;;:::i;:::-;;;;;;;;7490:335;;;:::o;7833:2432::-;7937:1;7921:18;;:4;:18;;;7913:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:1;8000:16;;:2;:16;;;7992:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8084:1;8075:6;:10;8067:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8142:17;8162:1;8142:21;;8186:7;:5;:7::i;:::-;8178:15;;:4;:15;;;;:32;;;;;8203:7;:5;:7::i;:::-;8197:13;;:2;:13;;;;8178:32;8174:1726;;;8245:1;8232:9;;:14;8229:147;;8278:82;8356:3;8278:73;8302:15;;8290:9;;:27;8289:61;;8336:14;;8289:61;;;8321:12;;8289:61;8278:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8266:94;;8229:147;8407:1;8395:9;;:13;8392:96;;;8439:33;8468:3;8439:24;8450:12;;8439:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8428:44;;8392:96;8516:13;;;;;;;;;;;8508:21;;:4;:21;;;:55;;;;;8547:15;;;;;;;;;;;8533:30;;:2;:30;;;;8508:55;:83;;;;;8569:18;:22;8588:2;8569:22;;;;;;;;;;;;;;;;;;;;;;;;;8567:24;8508:83;8504:426;;;8631:12;;8621:6;:22;;8613:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8726:14;;8716:6;8700:13;8710:2;8700:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8692:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8802:82;8880:3;8802:73;8826:15;;8814:9;;:27;8813:61;;8860:14;;8813:61;;;8845:12;;8813:61;8802:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8790:94;;8903:9;;:11;;;;;;;;;:::i;:::-;;;;;;8504:426;8955:13;;;;;;;;;;;8949:19;;:2;:19;;;:44;;;;;8988:4;8972:21;;:4;:21;;;;8949:44;8946:181;;;9026:85;9107:3;9026:76;9050:16;;9038:9;;:28;9037:64;;9086:15;;9037:64;;;9070:13;;9037:64;9026:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;9014:97;;8946:181;9143:28;9174:24;9192:4;9174:9;:24::i;:::-;9143:55;;9218:6;;;;;;;;;;9217:7;:30;;;;;9234:13;;;;;;;;;;;9228:19;;:2;:19;;;9217:30;:45;;;;;9251:11;;;;;;;;;;;9217:45;:89;;;;;9289:17;;9266:20;:40;9217:89;:123;;;;;9322:18;;9310:9;;:30;9217:123;9213:676;;;9378:13;;9365:12;:26;9361:88;;;9428:1;9416:9;:13;;;;9361:88;9487:1;9475:9;;:13;9467:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9537:67;9554:49;9558:6;9565:37;9569:20;9590:11;;9565:3;:37::i;:::-;9554:3;:49::i;:::-;9537:16;:67::i;:::-;9623:26;9652:21;9623:50;;9715:1;9696:18;:20;9692:104;;;9741:35;9754:21;9741:12;:35::i;:::-;9692:104;9816:9;;:11;;;;;;;;;:::i;:::-;;;;;;9861:12;9846:13;:27;;;;9342:547;9213:676;8212:1688;8174:1726;9927:1;9915:9;:13;9912:166;;;9969:39;9998:9;9969;:24;9987:4;9969:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9942:9;:24;9960:4;9942:24;;;;;;;;;;;;;;;:66;;;;10049:4;10026:40;;10035:4;10026:40;;;10056:9;10026:40;;;;;;:::i;:::-;;;;;;;;9912:166;10107:27;10127:6;10107:9;:15;10117:4;10107:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10090:9;:15;10100:4;10090:15;;;;;;;;;;;;;;;:44;;;;10160:40;10178:21;10189:9;10178:6;:10;;:21;;;;:::i;:::-;10160:9;:13;10170:2;10160:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10145:9;:13;10155:2;10145:13;;;;;;;;;;;;;;;:55;;;;10231:2;10216:41;;10225:4;10216:41;;;10235:21;10246:9;10235:6;:10;;:21;;;;:::i;:::-;10216:41;;;;;;:::i;:::-;;;;;;;;7902:2363;7833:2432;;;:::o;1426:190::-;1512:7;1545:1;1540;:6;;1548:12;1532:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1607:1;1600:8;;;1426:190;;;;;:::o;10385:483::-;5389:4;5380:6;;:13;;;;;;;;;;;;;;;;;;10463:21:::1;10501:1;10487:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10463:40;;10532:4;10514;10519:1;10514:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10558:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10548:4;10553:1;10548:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10591:62;10608:4;10623:15;;;;;;;;;;;10641:11;10591:8;:62::i;:::-;10664:15;;;;;;;;;;;:66;;;10745:11;10771:1;10787:4;10814;10834:15;10664:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10452:416;5425:5:::0;5416:6;;:14;;;;;;;;;;;;;;;;;;10385:483;:::o;11166:459::-;11238:1;11223:11;;:16;11219:401;;11251:12;11268:10;;;;;;;;;;;:15;;11291:6;11268:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11250:52;;;11241:85;11219:401;;;11341:17;11384:3;11370:11;;11361:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11341:46;;11396:23;11431:9;11422:6;:18;;;;:::i;:::-;11396:44;;11450:15;11470:10;;;;;;;;;;;:15;;11493:9;11470:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11449:58;;;11536:12;11553:10;;;;;;;;;;;:15;;11576;11553:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11535:61;;;11332:288;;;;11219:401;11166:459;:::o;1624:246::-;1682:7;1711:1;1706;:6;1702:47;;1736:1;1729:8;;;;1702:47;1759:9;1775:1;1771;:5;;;;:::i;:::-;1759:17;;1804:1;1799;1795;:5;;;;:::i;:::-;:10;1787:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1861:1;1854:8;;;1624:246;;;;;:::o;1878:132::-;1936:7;1963:39;1967:1;1970;1963:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1956:46;;1878:132;;;;:::o;10275:102::-;10332:7;10359:1;10357;:3;10356:13;;10368:1;10356:13;;;10364:1;10356:13;10349:20;;10275:102;;;;:::o;1095:179::-;1153:7;1173:9;1189:1;1185;:5;;;;:::i;:::-;1173:17;;1214:1;1209;:6;;1201:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1265:1;1258:8;;;1095:179;;;;:::o;1282:136::-;1340:7;1367:43;1371:1;1374;1367:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1360:50;;1282:136;;;;:::o;2018:189::-;2104:7;2136:1;2132;:5;2139:12;2124:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2163:9;2179:1;2175;:5;;;;:::i;:::-;2163:17;;2198:1;2191:8;;;2018: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:104::-;5126:7;5155:24;5173:5;5155:24;:::i;:::-;5144:35;;5081:104;;;:::o;5191:138::-;5272:32;5298:5;5272:32;:::i;:::-;5265:5;5262:43;5252:71;;5319:1;5316;5309:12;5252:71;5191:138;:::o;5335:155::-;5389:5;5427:6;5414:20;5405:29;;5443:41;5478:5;5443:41;:::i;:::-;5335:155;;;;:::o;5496:345::-;5563:6;5612:2;5600:9;5591:7;5587:23;5583:32;5580:119;;;5618:79;;:::i;:::-;5580:119;5738:1;5763:61;5816:7;5807:6;5796:9;5792:22;5763:61;:::i;:::-;5753:71;;5709:125;5496:345;;;;:::o;5847:118::-;5934:24;5952:5;5934:24;:::i;:::-;5929:3;5922:37;5847:118;;:::o;5971:222::-;6064:4;6102:2;6091:9;6087:18;6079:26;;6115:71;6183:1;6172:9;6168:17;6159:6;6115:71;:::i;:::-;5971:222;;;;:::o;6199:474::-;6267:6;6275;6324:2;6312:9;6303:7;6299:23;6295:32;6292:119;;;6330:79;;:::i;:::-;6292:119;6450:1;6475:53;6520:7;6511:6;6500:9;6496:22;6475:53;:::i;:::-;6465:63;;6421:117;6577:2;6603:53;6648:7;6639:6;6628:9;6624:22;6603:53;:::i;:::-;6593:63;;6548:118;6199:474;;;;;:::o;6679:329::-;6738:6;6787:2;6775:9;6766:7;6762:23;6758:32;6755:119;;;6793:79;;:::i;:::-;6755:119;6913:1;6938:53;6983:7;6974:6;6963:9;6959:22;6938:53;:::i;:::-;6928:63;;6884:117;6679:329;;;;:::o;7014:182::-;7154:34;7150:1;7142:6;7138:14;7131:58;7014:182;:::o;7202:366::-;7344:3;7365:67;7429:2;7424:3;7365:67;:::i;:::-;7358:74;;7441:93;7530:3;7441:93;:::i;:::-;7559:2;7554:3;7550:12;7543:19;;7202:366;;;:::o;7574:419::-;7740:4;7778:2;7767:9;7763:18;7755:26;;7827:9;7821:4;7817:20;7813:1;7802:9;7798:17;7791:47;7855:131;7981:4;7855:131;:::i;:::-;7847:139;;7574:419;;;:::o;7999:85::-;8044:7;8073:5;8062:16;;7999:85;;;:::o;8090:60::-;8118:3;8139:5;8132:12;;8090:60;;;:::o;8156:158::-;8214:9;8247:61;8265:42;8274:32;8300:5;8274:32;:::i;:::-;8265:42;:::i;:::-;8247:61;:::i;:::-;8234:74;;8156:158;;;:::o;8320:147::-;8415:45;8454:5;8415:45;:::i;:::-;8410:3;8403:58;8320:147;;:::o;8473:238::-;8574:4;8612:2;8601:9;8597:18;8589:26;;8625:79;8701:1;8690:9;8686:17;8677:6;8625:79;:::i;:::-;8473:238;;;;:::o;8717:180::-;8765:77;8762:1;8755:88;8862:4;8859:1;8852:15;8886:4;8883:1;8876:15;8903:102;8945:8;8992:5;8989:1;8985:13;8964:34;;8903:102;;;:::o;9011:848::-;9072:5;9079:4;9103:6;9094:15;;9127:5;9118:14;;9141:712;9162:1;9152:8;9149:15;9141:712;;;9257:4;9252:3;9248:14;9242:4;9239:24;9236:50;;;9266:18;;:::i;:::-;9236:50;9316:1;9306:8;9302:16;9299:451;;;9731:4;9724:5;9720:16;9711:25;;9299:451;9781:4;9775;9771:15;9763:23;;9811:32;9834:8;9811:32;:::i;:::-;9799:44;;9141:712;;;9011:848;;;;;;;:::o;9865:1073::-;9919:5;10110:8;10100:40;;10131:1;10122:10;;10133:5;;10100:40;10159:4;10149:36;;10176:1;10167:10;;10178:5;;10149:36;10245:4;10293:1;10288:27;;;;10329:1;10324:191;;;;10238:277;;10288:27;10306:1;10297:10;;10308:5;;;10324:191;10369:3;10359:8;10356:17;10353:43;;;10376:18;;:::i;:::-;10353:43;10425:8;10422:1;10418:16;10409:25;;10460:3;10453:5;10450:14;10447:40;;;10467:18;;:::i;:::-;10447:40;10500:5;;;10238:277;;10624:2;10614:8;10611:16;10605:3;10599:4;10596:13;10592:36;10574:2;10564:8;10561:16;10556:2;10550:4;10547:12;10543:35;10527:111;10524:246;;;10680:8;10674:4;10670:19;10661:28;;10715:3;10708:5;10705:14;10702:40;;;10722:18;;:::i;:::-;10702:40;10755:5;;10524:246;10795:42;10833:3;10823:8;10817:4;10814:1;10795:42;:::i;:::-;10780:57;;;;10869:4;10864:3;10860:14;10853:5;10850:25;10847:51;;;10878:18;;:::i;:::-;10847:51;10927:4;10920:5;10916:16;10907:25;;9865:1073;;;;;;:::o;10944:281::-;11002:5;11026:23;11044:4;11026:23;:::i;:::-;11018:31;;11070:25;11086:8;11070:25;:::i;:::-;11058:37;;11114:104;11151:66;11141:8;11135:4;11114:104;:::i;:::-;11105:113;;10944:281;;;;:::o;11231:410::-;11271:7;11294:20;11312:1;11294:20;:::i;:::-;11289:25;;11328:20;11346:1;11328:20;:::i;:::-;11323:25;;11383:1;11380;11376:9;11405:30;11423:11;11405:30;:::i;:::-;11394:41;;11584:1;11575:7;11571:15;11568:1;11565:22;11545:1;11538:9;11518:83;11495:139;;11614:18;;:::i;:::-;11495:139;11279:362;11231:410;;;;:::o;11647:228::-;11787:34;11783:1;11775:6;11771:14;11764:58;11856:11;11851:2;11843:6;11839:15;11832:36;11647:228;:::o;11881:366::-;12023:3;12044:67;12108:2;12103:3;12044:67;:::i;:::-;12037:74;;12120:93;12209:3;12120:93;:::i;:::-;12238:2;12233:3;12229:12;12222:19;;11881:366;;;:::o;12253:419::-;12419:4;12457:2;12446:9;12442:18;12434:26;;12506:9;12500:4;12496:20;12492:1;12481:9;12477:17;12470:47;12534:131;12660:4;12534:131;:::i;:::-;12526:139;;12253:419;;;:::o;12678:143::-;12735:5;12766:6;12760:13;12751:22;;12782:33;12809:5;12782:33;:::i;:::-;12678:143;;;;:::o;12827:351::-;12897:6;12946:2;12934:9;12925:7;12921:23;12917:32;12914:119;;;12952:79;;:::i;:::-;12914:119;13072:1;13097:64;13153:7;13144:6;13133:9;13129:22;13097:64;:::i;:::-;13087:74;;13043:128;12827:351;;;;:::o;13184:332::-;13305:4;13343:2;13332:9;13328:18;13320:26;;13356:71;13424:1;13413:9;13409:17;13400:6;13356:71;:::i;:::-;13437:72;13505:2;13494:9;13490:18;13481:6;13437:72;:::i;:::-;13184:332;;;;;:::o;13522:142::-;13572:9;13605:53;13623:34;13632:24;13650:5;13632:24;:::i;:::-;13623:34;:::i;:::-;13605:53;:::i;:::-;13592:66;;13522:142;;;:::o;13670:126::-;13720:9;13753:37;13784:5;13753:37;:::i;:::-;13740:50;;13670:126;;;:::o;13802:134::-;13860:9;13893:37;13924:5;13893:37;:::i;:::-;13880:50;;13802:134;;;:::o;13942:147::-;14037:45;14076:5;14037:45;:::i;:::-;14032:3;14025:58;13942:147;;:::o;14095:348::-;14224:4;14262:2;14251:9;14247:18;14239:26;;14275:79;14351:1;14340:9;14336:17;14327:6;14275:79;:::i;:::-;14364:72;14432:2;14421:9;14417:18;14408:6;14364:72;:::i;:::-;14095:348;;;;;:::o;14449:116::-;14519:21;14534:5;14519:21;:::i;:::-;14512:5;14509:32;14499:60;;14555:1;14552;14545:12;14499:60;14449:116;:::o;14571:137::-;14625:5;14656:6;14650:13;14641:22;;14672:30;14696:5;14672:30;:::i;:::-;14571:137;;;;:::o;14714:345::-;14781:6;14830:2;14818:9;14809:7;14805:23;14801:32;14798:119;;;14836:79;;:::i;:::-;14798:119;14956:1;14981:61;15034:7;15025:6;15014:9;15010:22;14981:61;:::i;:::-;14971:71;;14927:125;14714:345;;;;:::o;15065:173::-;15205:25;15201:1;15193:6;15189:14;15182:49;15065:173;:::o;15244:366::-;15386:3;15407:67;15471:2;15466:3;15407:67;:::i;:::-;15400:74;;15483:93;15572:3;15483:93;:::i;:::-;15601:2;15596:3;15592:12;15585:19;;15244:366;;;:::o;15616:419::-;15782:4;15820:2;15809:9;15805:18;15797:26;;15869:9;15863:4;15859:20;15855:1;15844:9;15840:17;15833:47;15897:131;16023:4;15897:131;:::i;:::-;15889:139;;15616:419;;;:::o;16041:143::-;16098:5;16129:6;16123:13;16114:22;;16145:33;16172:5;16145:33;:::i;:::-;16041:143;;;;:::o;16190:351::-;16260:6;16309:2;16297:9;16288:7;16284:23;16280:32;16277:119;;;16315:79;;:::i;:::-;16277:119;16435:1;16460:64;16516:7;16507:6;16496:9;16492:22;16460:64;:::i;:::-;16450:74;;16406:128;16190:351;;;;:::o;16547:332::-;16668:4;16706:2;16695:9;16691:18;16683:26;;16719:71;16787:1;16776:9;16772:17;16763:6;16719:71;:::i;:::-;16800:72;16868:2;16857:9;16853:18;16844:6;16800:72;:::i;:::-;16547:332;;;;;:::o;16885:807::-;17134:4;17172:3;17161:9;17157:19;17149:27;;17186:71;17254:1;17243:9;17239:17;17230:6;17186:71;:::i;:::-;17267:72;17335:2;17324:9;17320:18;17311:6;17267:72;:::i;:::-;17349:80;17425:2;17414:9;17410:18;17401:6;17349:80;:::i;:::-;17439;17515:2;17504:9;17500:18;17491:6;17439:80;:::i;:::-;17529:73;17597:3;17586:9;17582:19;17573:6;17529:73;:::i;:::-;17612;17680:3;17669:9;17665:19;17656:6;17612:73;:::i;:::-;16885:807;;;;;;;;;:::o;17698:663::-;17786:6;17794;17802;17851:2;17839:9;17830:7;17826:23;17822:32;17819:119;;;17857:79;;:::i;:::-;17819:119;17977:1;18002:64;18058:7;18049:6;18038:9;18034:22;18002:64;:::i;:::-;17992:74;;17948:128;18115:2;18141:64;18197:7;18188:6;18177:9;18173:22;18141:64;:::i;:::-;18131:74;;18086:129;18254:2;18280:64;18336:7;18327:6;18316:9;18312:22;18280:64;:::i;:::-;18270:74;;18225:129;17698:663;;;;;:::o;18367:229::-;18507:34;18503:1;18495:6;18491:14;18484:58;18576:12;18571:2;18563:6;18559:15;18552:37;18367:229;:::o;18602:366::-;18744:3;18765:67;18829:2;18824:3;18765:67;:::i;:::-;18758:74;;18841:93;18930:3;18841:93;:::i;:::-;18959:2;18954:3;18950:12;18943:19;;18602:366;;;:::o;18974:419::-;19140:4;19178:2;19167:9;19163:18;19155:26;;19227:9;19221:4;19217:20;19213:1;19202:9;19198:17;19191:47;19255:131;19381:4;19255:131;:::i;:::-;19247:139;;18974:419;;;:::o;19399:223::-;19539:34;19535:1;19527:6;19523:14;19516:58;19608:6;19603:2;19595:6;19591:15;19584:31;19399:223;:::o;19628:366::-;19770:3;19791:67;19855:2;19850:3;19791:67;:::i;:::-;19784:74;;19867:93;19956:3;19867:93;:::i;:::-;19985:2;19980:3;19976:12;19969:19;;19628:366;;;:::o;20000:419::-;20166:4;20204:2;20193:9;20189:18;20181:26;;20253:9;20247:4;20243:20;20239:1;20228:9;20224:17;20217:47;20281:131;20407:4;20281:131;:::i;:::-;20273:139;;20000:419;;;:::o;20425:221::-;20565:34;20561:1;20553:6;20549:14;20542:58;20634:4;20629:2;20621:6;20617:15;20610:29;20425:221;:::o;20652:366::-;20794:3;20815:67;20879:2;20874:3;20815:67;:::i;:::-;20808:74;;20891:93;20980:3;20891:93;:::i;:::-;21009:2;21004:3;21000:12;20993:19;;20652:366;;;:::o;21024:419::-;21190:4;21228:2;21217:9;21213:18;21205:26;;21277:9;21271:4;21267:20;21263:1;21252:9;21248:17;21241:47;21305:131;21431:4;21305:131;:::i;:::-;21297:139;;21024:419;;;:::o;21449:224::-;21589:34;21585:1;21577:6;21573:14;21566:58;21658:7;21653:2;21645:6;21641:15;21634:32;21449:224;:::o;21679:366::-;21821:3;21842:67;21906:2;21901:3;21842:67;:::i;:::-;21835:74;;21918:93;22007:3;21918:93;:::i;:::-;22036:2;22031:3;22027:12;22020:19;;21679:366;;;:::o;22051:419::-;22217:4;22255:2;22244:9;22240:18;22232:26;;22304:9;22298:4;22294:20;22290:1;22279:9;22275:17;22268:47;22332:131;22458:4;22332:131;:::i;:::-;22324:139;;22051:419;;;:::o;22476:222::-;22616:34;22612:1;22604:6;22600:14;22593:58;22685:5;22680:2;22672:6;22668:15;22661:30;22476:222;:::o;22704:366::-;22846:3;22867:67;22931:2;22926:3;22867:67;:::i;:::-;22860:74;;22943:93;23032:3;22943:93;:::i;:::-;23061:2;23056:3;23052:12;23045:19;;22704:366;;;:::o;23076:419::-;23242:4;23280:2;23269:9;23265:18;23257:26;;23329:9;23323:4;23319:20;23315:1;23304:9;23300:17;23293:47;23357:131;23483:4;23357:131;:::i;:::-;23349:139;;23076:419;;;:::o;23501:228::-;23641:34;23637:1;23629:6;23625:14;23618:58;23710:11;23705:2;23697:6;23693:15;23686:36;23501:228;:::o;23735:366::-;23877:3;23898:67;23962:2;23957:3;23898:67;:::i;:::-;23891:74;;23974:93;24063:3;23974:93;:::i;:::-;24092:2;24087:3;24083:12;24076:19;;23735:366;;;:::o;24107:419::-;24273:4;24311:2;24300:9;24296:18;24288:26;;24360:9;24354:4;24350:20;24346:1;24335:9;24331:17;24324:47;24388:131;24514:4;24388:131;:::i;:::-;24380:139;;24107:419;;;:::o;24532:175::-;24672:27;24668:1;24660:6;24656:14;24649:51;24532:175;:::o;24713:366::-;24855:3;24876:67;24940:2;24935:3;24876:67;:::i;:::-;24869:74;;24952:93;25041:3;24952:93;:::i;:::-;25070:2;25065:3;25061:12;25054:19;;24713:366;;;:::o;25085:419::-;25251:4;25289:2;25278:9;25274:18;25266:26;;25338:9;25332:4;25328:20;25324:1;25313:9;25309:17;25302:47;25366:131;25492:4;25366:131;:::i;:::-;25358:139;;25085:419;;;:::o;25510:191::-;25550:3;25569:20;25587:1;25569:20;:::i;:::-;25564:25;;25603:20;25621:1;25603:20;:::i;:::-;25598:25;;25646:1;25643;25639:9;25632:16;;25667:3;25664:1;25661:10;25658:36;;;25674:18;;:::i;:::-;25658:36;25510:191;;;;:::o;25707:176::-;25847:28;25843:1;25835:6;25831:14;25824:52;25707:176;:::o;25889:366::-;26031:3;26052:67;26116:2;26111:3;26052:67;:::i;:::-;26045:74;;26128:93;26217:3;26128:93;:::i;:::-;26246:2;26241:3;26237:12;26230:19;;25889:366;;;:::o;26261:419::-;26427:4;26465:2;26454:9;26450:18;26442:26;;26514:9;26508:4;26504:20;26500:1;26489:9;26485:17;26478:47;26542:131;26668:4;26542:131;:::i;:::-;26534:139;;26261:419;;;:::o;26686:233::-;26725:3;26748:24;26766:5;26748:24;:::i;:::-;26739:33;;26794:66;26787:5;26784:77;26781:103;;26864:18;;:::i;:::-;26781:103;26911:1;26904:5;26900:13;26893:20;;26686:233;;;:::o;26925:173::-;27065:25;27061:1;27053:6;27049:14;27042:49;26925:173;:::o;27104:366::-;27246:3;27267:67;27331:2;27326:3;27267:67;:::i;:::-;27260:74;;27343:93;27432:3;27343:93;:::i;:::-;27461:2;27456:3;27452:12;27445:19;;27104:366;;;:::o;27476:419::-;27642:4;27680:2;27669:9;27665:18;27657:26;;27729:9;27723:4;27719:20;27715:1;27704:9;27700:17;27693:47;27757:131;27883:4;27757:131;:::i;:::-;27749:139;;27476:419;;;:::o;27901:194::-;27941:4;27961:20;27979:1;27961:20;:::i;:::-;27956:25;;27995:20;28013:1;27995:20;:::i;:::-;27990:25;;28039:1;28036;28032:9;28024:17;;28063:1;28057:4;28054:11;28051:37;;;28068:18;;:::i;:::-;28051:37;27901:194;;;;:::o;28101:180::-;28149:77;28146:1;28139:88;28246:4;28243:1;28236:15;28270:4;28267:1;28260:15;28287:180;28335:77;28332:1;28325:88;28432:4;28429:1;28422:15;28456:4;28453:1;28446:15;28473:114;28540:6;28574:5;28568:12;28558:22;;28473:114;;;:::o;28593:184::-;28692:11;28726:6;28721:3;28714:19;28766:4;28761:3;28757:14;28742:29;;28593:184;;;;:::o;28783:132::-;28850:4;28873:3;28865:11;;28903:4;28898:3;28894:14;28886:22;;28783:132;;;:::o;28921:108::-;28998:24;29016:5;28998:24;:::i;:::-;28993:3;28986:37;28921:108;;:::o;29035:179::-;29104:10;29125:46;29167:3;29159:6;29125:46;:::i;:::-;29203:4;29198:3;29194:14;29180:28;;29035:179;;;;:::o;29220:113::-;29290:4;29322;29317:3;29313:14;29305:22;;29220:113;;;:::o;29369:732::-;29488:3;29517:54;29565:5;29517:54;:::i;:::-;29587:86;29666:6;29661:3;29587:86;:::i;:::-;29580:93;;29697:56;29747:5;29697:56;:::i;:::-;29776:7;29807:1;29792:284;29817:6;29814:1;29811:13;29792:284;;;29893:6;29887:13;29920:63;29979:3;29964:13;29920:63;:::i;:::-;29913:70;;30006:60;30059:6;30006:60;:::i;:::-;29996:70;;29852:224;29839:1;29836;29832:9;29827:14;;29792:284;;;29796:14;30092:3;30085:10;;29493:608;;;29369:732;;;;:::o;30107:831::-;30370:4;30408:3;30397:9;30393:19;30385:27;;30422:71;30490:1;30479:9;30475:17;30466:6;30422:71;:::i;:::-;30503:80;30579:2;30568:9;30564:18;30555:6;30503:80;:::i;:::-;30630:9;30624:4;30620:20;30615:2;30604:9;30600:18;30593:48;30658:108;30761:4;30752:6;30658:108;:::i;:::-;30650:116;;30776:72;30844:2;30833:9;30829:18;30820:6;30776:72;:::i;:::-;30858:73;30926:3;30915:9;30911:19;30902:6;30858:73;:::i;:::-;30107:831;;;;;;;;:::o;30944:147::-;31045:11;31082:3;31067:18;;30944:147;;;;:::o;31097:114::-;;:::o;31217:398::-;31376:3;31397:83;31478:1;31473:3;31397:83;:::i;:::-;31390:90;;31489:93;31578:3;31489:93;:::i;:::-;31607:1;31602:3;31598:11;31591:18;;31217:398;;;:::o;31621:379::-;31805:3;31827:147;31970:3;31827:147;:::i;:::-;31820:154;;31991:3;31984:10;;31621:379;;;:::o;32006:180::-;32054:77;32051:1;32044:88;32151:4;32148:1;32141:15;32175:4;32172:1;32165:15;32192:185;32232:1;32249:20;32267:1;32249:20;:::i;:::-;32244:25;;32283:20;32301:1;32283:20;:::i;:::-;32278:25;;32322:1;32312:35;;32327:18;;:::i;:::-;32312:35;32369:1;32366;32362:9;32357:14;;32192:185;;;;:::o;32383:220::-;32523:34;32519:1;32511:6;32507:14;32500:58;32592:3;32587:2;32579:6;32575:15;32568:28;32383:220;:::o;32609:366::-;32751:3;32772:67;32836:2;32831:3;32772:67;:::i;:::-;32765:74;;32848:93;32937:3;32848:93;:::i;:::-;32966:2;32961:3;32957:12;32950:19;;32609:366;;;:::o;32981:419::-;33147:4;33185:2;33174:9;33170:18;33162:26;;33234:9;33228:4;33224:20;33220:1;33209:9;33205:17;33198:47;33262:131;33388:4;33262:131;:::i;:::-;33254:139;;32981:419;;;:::o;33406:177::-;33546:29;33542:1;33534:6;33530:14;33523:53;33406:177;:::o;33589:366::-;33731:3;33752:67;33816:2;33811:3;33752:67;:::i;:::-;33745:74;;33828:93;33917:3;33828:93;:::i;:::-;33946:2;33941:3;33937:12;33930:19;;33589:366;;;:::o;33961:419::-;34127:4;34165:2;34154:9;34150:18;34142:26;;34214:9;34208:4;34204:20;34200:1;34189:9;34185:17;34178:47;34242:131;34368:4;34242:131;:::i;:::-;34234:139;;33961:419;;;:::o
Swarm Source
ipfs://9bbb140826af9fd6dbcf7fae37c428c9d5bfe0e93ae6bc3396469843c67fa512
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.