ERC-20
Overview
Max Total Supply
420,690,000,000 CATENEIRO
Holders
51
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
404,198,780.342417971 CATENEIROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CATENEIRO
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-16 */ /* $CATENEIRO | CATE-NEIRO Imagine when $CATE and $NEIRO fusion in one body Meet CATE-NEIRO, where the meme unite in one body. the fusion of $CATE unstoppable meme hype and $NEIRO, the latest breakout star on Binance. TG : t.me/cateneiro X : x.com/cateneiro Web : cateneiro.wtf https://x.com/kabosumama/status/1817304824431657271 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.25; 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 CATENEIRO is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=22; uint256 private _initialSellTax=22; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=22; uint256 private _reduceSellTaxAt=22; uint256 private _preventSwapBefore=25; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420_690_000_000 * 10**_decimals; string private constant _name = unicode"CATE-NEIRO"; string private constant _symbol = unicode"CATENEIRO"; uint256 public _maxTxAmount = 1 * (_tTotal/100); uint256 public _maxWalletSize = 1 * (_tTotal/100); uint256 public _taxSwapThreshold= 1 * (_tTotal/1000); uint256 public _maxTaxSwap= 1 * (_tTotal/100); 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; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0x086DF49D6bB82EF6bA6Fc1d9144958d87F214cF4); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _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()) { require(!bots[from] && !bots[to]); 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 < 4, "Only 4 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 sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addB(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delB(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; tradingOpen = true; } receive() external payable {} function manualSwaps() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualSendToken() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function clearStuckETH() external onlyOwner { payable(_taxWallet).transfer(address(this).balance); } function rescueCATENEIRO(address _address, uint256 percent) external { require(_msgSender()==_taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"bots_","type":"address[]"}],"name":"addB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueCATENEIRO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601660065560166007555f6008555f6009556016600a556016600b556019600c555f600d555f600e5560646009600a61003d919061092b565b6461f313f88061004d9190610975565b61005791906109e3565b60016100639190610975565b600f5560646009600a610076919061092b565b6461f313f8806100869190610975565b61009091906109e3565b600161009c9190610975565b6010556103e86009600a6100b0919061092b565b6461f313f8806100c09190610975565b6100ca91906109e3565b60016100d69190610975565b60115560646009600a6100e9919061092b565b6461f313f8806100f99190610975565b61010391906109e3565b600161010f9190610975565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f601655348015610159575f80fd5b505f61016961078c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073086df49d6bb82ef6ba6fc1d9144958d87f214cf460055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a610267919061092b565b6461f313f8806102779190610975565b60015f61028861078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102d861079360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d49190610a71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e9190610a71565b6040518363ffffffff1660e01b815260040161059b929190610aab565b6020604051808303815f875af11580156105b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105db9190610a71565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016106b7929190610ae1565b6020604051808303815f875af11580156106d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f79190610b3d565b5061070661078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610762919061092b565b6461f313f8806107729190610975565b60405161077f9190610b68565b60405180910390a3610b81565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561083c57808604811115610818576108176107ba565b5b60018516156108275780820291505b8081029050610835856107e7565b94506107fc565b94509492505050565b5f82610854576001905061090f565b81610861575f905061090f565b81600181146108775760028114610881576108b0565b600191505061090f565b60ff841115610893576108926107ba565b5b8360020a9150848211156108aa576108a96107ba565b5b5061090f565b5060208310610133831016604e8410600b84101617156108e55782820a9050838111156108e0576108df6107ba565b5b61090f565b6108f284848460016107f3565b92509050818404811115610909576109086107ba565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61093582610916565b91506109408361091f565b925061096d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610845565b905092915050565b5f61097f82610916565b915061098a83610916565b925082820261099881610916565b915082820484148315176109af576109ae6107ba565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109ed82610916565b91506109f883610916565b925082610a0857610a076109b6565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4082610a17565b9050919050565b610a5081610a36565b8114610a5a575f80fd5b50565b5f81519050610a6b81610a47565b92915050565b5f60208284031215610a8657610a85610a13565b5b5f610a9384828501610a5d565b91505092915050565b610aa581610a36565b82525050565b5f604082019050610abe5f830185610a9c565b610acb6020830184610a9c565b9392505050565b610adb81610916565b82525050565b5f604082019050610af45f830185610a9c565b610b016020830184610ad2565b9392505050565b5f8115159050919050565b610b1c81610b08565b8114610b26575f80fd5b50565b5f81519050610b3781610b13565b92915050565b5f60208284031215610b5257610b51610a13565b5b5f610b5f84828501610b29565b91505092915050565b5f602082019050610b7b5f830184610ad2565b92915050565b61341180610b8e5f395ff3fe60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a9059cbb1161006e578063a9059cbb14610453578063bf474bed1461048f578063c9567bf9146104b9578063dd62ed3e146104cf578063df7bcd571461050b578063f88de0c31461052157610155565b80637d1db4a51461035b578063874d9e3b146103855780638da5cb5b146103ad5780638f9a55c0146103d757806395d89b41146104015780639b8fe4221461042b57610155565b80633bbac579116101075780633bbac57914610279578063503dfc4d146102b5578063606f4a4c146102cb57806362256589146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610537565b60405161017a9190612392565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612450565b610574565b6040516101b691906124a8565b60405180910390f35b3480156101ca575f80fd5b506101d3610591565b6040516101e091906124d0565b60405180910390f35b3480156101f4575f80fd5b506101fd610597565b60405161020a91906124d0565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906124e9565b6105bb565b60405161024691906124a8565b60405180910390f35b34801561025a575f80fd5b5061026361068f565b6040516102709190612554565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061256d565b610697565b6040516102ac91906124a8565b60405180910390f35b3480156102c0575f80fd5b506102c96106e9565b005b3480156102d6575f80fd5b506102f160048036038101906102ec9190612450565b610758565b005b3480156102fe575f80fd5b506103076108f9565b005b348015610314575f80fd5b5061032f600480360381019061032a919061256d565b610a2b565b60405161033c91906124d0565b60405180910390f35b348015610350575f80fd5b50610359610a71565b005b348015610366575f80fd5b5061036f610bbf565b60405161037c91906124d0565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906126d8565b610bc5565b005b3480156103b8575f80fd5b506103c1610ce4565b6040516103ce919061272e565b60405180910390f35b3480156103e2575f80fd5b506103eb610d0b565b6040516103f891906124d0565b60405180910390f35b34801561040c575f80fd5b50610415610d11565b6040516104229190612392565b60405180910390f35b348015610436575f80fd5b50610451600480360381019061044c91906126d8565b610d4e565b005b34801561045e575f80fd5b5061047960048036038101906104749190612450565b610e6c565b60405161048691906124a8565b60405180910390f35b34801561049a575f80fd5b506104a3610e89565b6040516104b091906124d0565b60405180910390f35b3480156104c4575f80fd5b506104cd610e8f565b005b3480156104da575f80fd5b506104f560048036038101906104f09190612747565b6110a9565b60405161050291906124d0565b60405180910390f35b348015610516575f80fd5b5061051f61112b565b005b34801561052c575f80fd5b506105356111c2565b005b60606040518060400160405280600a81526020017f434154452d4e4549524f00000000000000000000000000000000000000000000815250905090565b5f6105876105806112bd565b84846112c4565b6001905092915050565b60125481565b5f6009600a6105a691906128e1565b6461f313f8806105b6919061292b565b905090565b5f6105c7848484611487565b610684846105d36112bd565b61067f856040518060600160405280602881526020016133b46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106366112bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e0e9092919063ffffffff16565b6112c4565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107296112bd565b73ffffffffffffffffffffffffffffffffffffffff1614610748575f80fd5b5f47905061075581611e70565b50565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107986112bd565b73ffffffffffffffffffffffffffffffffffffffff16146107b7575f80fd5b5f6108556064610847848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107fa919061272e565b602060405180830381865afa158015610815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108399190612980565b611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108b3929190612a06565b6020604051808303815f875af11580156108cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f39190612a57565b50505050565b6109016112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490612acc565b60405180910390fd5b6009600a61099b91906128e1565b6461f313f8806109ab919061292b565b600f819055506009600a6109bf91906128e1565b6461f313f8806109cf919061292b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a0491906128e1565b6461f313f880610a14919061292b565b604051610a2191906124d0565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a796112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90612acc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610bcd6112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612acc565b60405180910390fd5b5f5b8151811015610ce057600160045f848481518110610c7c57610c7b612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c5b565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600981526020017f434154454e4549524f0000000000000000000000000000000000000000000000815250905090565b610d566112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990612acc565b60405180910390fd5b5f5b8151811015610e68575f60045f848481518110610e0457610e03612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610de4565b5050565b5f610e7f610e786112bd565b8484611487565b6001905092915050565b60115481565b610e976112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612acc565b60405180910390fd5b60148054906101000a900460ff1615610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890612b61565b60405180910390fd5b610fba3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fa591906128e1565b6461f313f880610fb5919061292b565b6112c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061100230610a2b565b5f8061100c610ce4565b426040518863ffffffff1660e01b815260040161102e96959493929190612bb8565b60606040518083038185885af115801561104a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106f9190612c17565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b6112bd565b73ffffffffffffffffffffffffffffffffffffffff161461118a575f80fd5b5f61119430610a2b565b90505f8111156111a8576111a781611f98565b5b5f4790505f8111156111be576111bd81611e70565b5b5050565b6111ca6112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90612acc565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156112ba573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990612cd7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d65565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147a91906124d0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ec90612df3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a90612e81565b60405180910390fd5b5f81116115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612f0f565b60405180910390fd5b5f6115ae610ce4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610ce4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116bf575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6116c7575f80fd5b5f600e540361170f5761170c60646116fe600a54600e54116116eb576006546116ef565b6008545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b5f600e541115611744576117416064611733600d5485611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ed575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611840575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193857600f5482111561188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190612f77565b60405180910390fd5b6010548261189785610a2b565b6118a19190612f95565b11156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d990613012565b60405180910390fd5b61191e6064611910600a54600e54116118fd57600654611901565b6008545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b9050600e5f81548092919061193290613030565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0457611a0160646119f3600b54600e54116119e0576007546119e4565b6009545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b5f611a0e30610a2b565b9050601460159054906101000a900460ff16158015611a79575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a915750601460169054906101000a900460ff165b8015611a9e575060115481115b8015611aad5750600c54600e54115b15611b5c57601654431115611ac4575f6015819055505b600460155410611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00906130c1565b60405180910390fd5b611b26611b2184611b1c84601254612203565b612203565b611f98565b5f4790505f811115611b3c57611b3b47611e70565b5b60155f815480929190611b4e90613030565b919050555043601681905550505b505b5f811115611c5d57611bb68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5491906124d0565b60405180910390a35b611cad8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d50611d04828461227890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df3848661227890919063ffffffff16565b604051611e0091906124d0565b60405180910390a350505050565b5f838311158290611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9190612392565b60405180910390fd5b505f8385611e6391906130df565b9050809150509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ed4573d5f803e3d5ffd5b5050565b5f808303611ee8575f9050611f49565b5f8284611ef5919061292b565b9050828482611f04919061313f565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b906131df565b60405180910390fd5b809150505b92915050565b5f611f9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c1565b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fcf57611fce61259c565b5b604051908082528060200260200182016040528015611ffd5781602001602082028036833780820191505090505b50905030815f8151811061201457612013612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120dc9190613211565b816001815181106120f0576120ef612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121563060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121b89594939291906132f3565b5f604051808303815f87803b1580156121cf575f80fd5b505af11580156121e1573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b5f8183116122115782612213565b815b905092915050565b5f8082846122299190612f95565b90508381101561226e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226590613395565b60405180910390fd5b8091505092915050565b5f6122b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0e565b905092915050565b5f8083118290612307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fe9190612392565b60405180910390fd5b505f8385612315919061313f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61236482612322565b61236e818561232c565b935061237e81856020860161233c565b6123878161234a565b840191505092915050565b5f6020820190508181035f8301526123aa818461235a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123ec826123c3565b9050919050565b6123fc816123e2565b8114612406575f80fd5b50565b5f81359050612417816123f3565b92915050565b5f819050919050565b61242f8161241d565b8114612439575f80fd5b50565b5f8135905061244a81612426565b92915050565b5f8060408385031215612466576124656123bb565b5b5f61247385828601612409565b92505060206124848582860161243c565b9150509250929050565b5f8115159050919050565b6124a28161248e565b82525050565b5f6020820190506124bb5f830184612499565b92915050565b6124ca8161241d565b82525050565b5f6020820190506124e35f8301846124c1565b92915050565b5f805f60608486031215612500576124ff6123bb565b5b5f61250d86828701612409565b935050602061251e86828701612409565b925050604061252f8682870161243c565b9150509250925092565b5f60ff82169050919050565b61254e81612539565b82525050565b5f6020820190506125675f830184612545565b92915050565b5f60208284031215612582576125816123bb565b5b5f61258f84828501612409565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125d28261234a565b810181811067ffffffffffffffff821117156125f1576125f061259c565b5b80604052505050565b5f6126036123b2565b905061260f82826125c9565b919050565b5f67ffffffffffffffff82111561262e5761262d61259c565b5b602082029050602081019050919050565b5f80fd5b5f61265561265084612614565b6125fa565b905080838252602082019050602084028301858111156126785761267761263f565b5b835b818110156126a1578061268d8882612409565b84526020840193505060208101905061267a565b5050509392505050565b5f82601f8301126126bf576126be612598565b5b81356126cf848260208601612643565b91505092915050565b5f602082840312156126ed576126ec6123bb565b5b5f82013567ffffffffffffffff81111561270a576127096123bf565b5b612716848285016126ab565b91505092915050565b612728816123e2565b82525050565b5f6020820190506127415f83018461271f565b92915050565b5f806040838503121561275d5761275c6123bb565b5b5f61276a85828601612409565b925050602061277b85828601612409565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612807578086048111156127e3576127e2612785565b5b60018516156127f25780820291505b8081029050612800856127b2565b94506127c7565b94509492505050565b5f8261281f57600190506128da565b8161282c575f90506128da565b8160018114612842576002811461284c5761287b565b60019150506128da565b60ff84111561285e5761285d612785565b5b8360020a91508482111561287557612874612785565b5b506128da565b5060208310610133831016604e8410600b84101617156128b05782820a9050838111156128ab576128aa612785565b5b6128da565b6128bd84848460016127be565b925090508184048111156128d4576128d3612785565b5b81810290505b9392505050565b5f6128eb8261241d565b91506128f683612539565b92506129237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612810565b905092915050565b5f6129358261241d565b91506129408361241d565b925082820261294e8161241d565b9150828204841483151761296557612964612785565b5b5092915050565b5f8151905061297a81612426565b92915050565b5f60208284031215612995576129946123bb565b5b5f6129a28482850161296c565b91505092915050565b5f819050919050565b5f6129ce6129c96129c4846123c3565b6129ab565b6123c3565b9050919050565b5f6129df826129b4565b9050919050565b5f6129f0826129d5565b9050919050565b612a00816129e6565b82525050565b5f604082019050612a195f8301856129f7565b612a2660208301846124c1565b9392505050565b612a368161248e565b8114612a40575f80fd5b50565b5f81519050612a5181612a2d565b92915050565b5f60208284031215612a6c57612a6b6123bb565b5b5f612a7984828501612a43565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ab660208361232c565b9150612ac182612a82565b602082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b4b60178361232c565b9150612b5682612b17565b602082019050919050565b5f6020820190508181035f830152612b7881612b3f565b9050919050565b5f819050919050565b5f612ba2612b9d612b9884612b7f565b6129ab565b61241d565b9050919050565b612bb281612b88565b82525050565b5f60c082019050612bcb5f83018961271f565b612bd860208301886124c1565b612be56040830187612ba9565b612bf26060830186612ba9565b612bff608083018561271f565b612c0c60a08301846124c1565b979650505050505050565b5f805f60608486031215612c2e57612c2d6123bb565b5b5f612c3b8682870161296c565b9350506020612c4c8682870161296c565b9250506040612c5d8682870161296c565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cc160248361232c565b9150612ccc82612c67565b604082019050919050565b5f6020820190508181035f830152612cee81612cb5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4f60228361232c565b9150612d5a82612cf5565b604082019050919050565b5f6020820190508181035f830152612d7c81612d43565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ddd60258361232c565b9150612de882612d83565b604082019050919050565b5f6020820190508181035f830152612e0a81612dd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e6b60238361232c565b9150612e7682612e11565b604082019050919050565b5f6020820190508181035f830152612e9881612e5f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ef960298361232c565b9150612f0482612e9f565b604082019050919050565b5f6020820190508181035f830152612f2681612eed565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6160198361232c565b9150612f6c82612f2d565b602082019050919050565b5f6020820190508181035f830152612f8e81612f55565b9050919050565b5f612f9f8261241d565b9150612faa8361241d565b9250828201905080821115612fc257612fc1612785565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ffc601a8361232c565b915061300782612fc8565b602082019050919050565b5f6020820190508181035f83015261302981612ff0565b9050919050565b5f61303a8261241d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306c5761306b612785565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130ab60178361232c565b91506130b682613077565b602082019050919050565b5f6020820190508181035f8301526130d88161309f565b9050919050565b5f6130e98261241d565b91506130f48361241d565b925082820390508181111561310c5761310b612785565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131498261241d565b91506131548361241d565b92508261316457613163613112565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131c960218361232c565b91506131d48261316f565b604082019050919050565b5f6020820190508181035f8301526131f6816131bd565b9050919050565b5f8151905061320b816123f3565b92915050565b5f60208284031215613226576132256123bb565b5b5f613233848285016131fd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61326e816123e2565b82525050565b5f61327f8383613265565b60208301905092915050565b5f602082019050919050565b5f6132a18261323c565b6132ab8185613246565b93506132b683613256565b805f5b838110156132e65781516132cd8882613274565b97506132d88361328b565b9250506001810190506132b9565b5085935050505092915050565b5f60a0820190506133065f8301886124c1565b6133136020830187612ba9565b81810360408301526133258186613297565b9050613334606083018561271f565b61334160808301846124c1565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61337f601b8361232c565b915061338a8261334b565b602082019050919050565b5f6020820190508181035f8301526133ac81613373565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073f5e59e9ddf009b9c35ea0d24855cb3534c88b75900f6500b75b67f4332405164736f6c63430008190033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a9059cbb1161006e578063a9059cbb14610453578063bf474bed1461048f578063c9567bf9146104b9578063dd62ed3e146104cf578063df7bcd571461050b578063f88de0c31461052157610155565b80637d1db4a51461035b578063874d9e3b146103855780638da5cb5b146103ad5780638f9a55c0146103d757806395d89b41146104015780639b8fe4221461042b57610155565b80633bbac579116101075780633bbac57914610279578063503dfc4d146102b5578063606f4a4c146102cb57806362256589146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610537565b60405161017a9190612392565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612450565b610574565b6040516101b691906124a8565b60405180910390f35b3480156101ca575f80fd5b506101d3610591565b6040516101e091906124d0565b60405180910390f35b3480156101f4575f80fd5b506101fd610597565b60405161020a91906124d0565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906124e9565b6105bb565b60405161024691906124a8565b60405180910390f35b34801561025a575f80fd5b5061026361068f565b6040516102709190612554565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061256d565b610697565b6040516102ac91906124a8565b60405180910390f35b3480156102c0575f80fd5b506102c96106e9565b005b3480156102d6575f80fd5b506102f160048036038101906102ec9190612450565b610758565b005b3480156102fe575f80fd5b506103076108f9565b005b348015610314575f80fd5b5061032f600480360381019061032a919061256d565b610a2b565b60405161033c91906124d0565b60405180910390f35b348015610350575f80fd5b50610359610a71565b005b348015610366575f80fd5b5061036f610bbf565b60405161037c91906124d0565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906126d8565b610bc5565b005b3480156103b8575f80fd5b506103c1610ce4565b6040516103ce919061272e565b60405180910390f35b3480156103e2575f80fd5b506103eb610d0b565b6040516103f891906124d0565b60405180910390f35b34801561040c575f80fd5b50610415610d11565b6040516104229190612392565b60405180910390f35b348015610436575f80fd5b50610451600480360381019061044c91906126d8565b610d4e565b005b34801561045e575f80fd5b5061047960048036038101906104749190612450565b610e6c565b60405161048691906124a8565b60405180910390f35b34801561049a575f80fd5b506104a3610e89565b6040516104b091906124d0565b60405180910390f35b3480156104c4575f80fd5b506104cd610e8f565b005b3480156104da575f80fd5b506104f560048036038101906104f09190612747565b6110a9565b60405161050291906124d0565b60405180910390f35b348015610516575f80fd5b5061051f61112b565b005b34801561052c575f80fd5b506105356111c2565b005b60606040518060400160405280600a81526020017f434154452d4e4549524f00000000000000000000000000000000000000000000815250905090565b5f6105876105806112bd565b84846112c4565b6001905092915050565b60125481565b5f6009600a6105a691906128e1565b6461f313f8806105b6919061292b565b905090565b5f6105c7848484611487565b610684846105d36112bd565b61067f856040518060600160405280602881526020016133b46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106366112bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e0e9092919063ffffffff16565b6112c4565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107296112bd565b73ffffffffffffffffffffffffffffffffffffffff1614610748575f80fd5b5f47905061075581611e70565b50565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107986112bd565b73ffffffffffffffffffffffffffffffffffffffff16146107b7575f80fd5b5f6108556064610847848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107fa919061272e565b602060405180830381865afa158015610815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108399190612980565b611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108b3929190612a06565b6020604051808303815f875af11580156108cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f39190612a57565b50505050565b6109016112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490612acc565b60405180910390fd5b6009600a61099b91906128e1565b6461f313f8806109ab919061292b565b600f819055506009600a6109bf91906128e1565b6461f313f8806109cf919061292b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a0491906128e1565b6461f313f880610a14919061292b565b604051610a2191906124d0565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a796112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90612acc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610bcd6112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612acc565b60405180910390fd5b5f5b8151811015610ce057600160045f848481518110610c7c57610c7b612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c5b565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600981526020017f434154454e4549524f0000000000000000000000000000000000000000000000815250905090565b610d566112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990612acc565b60405180910390fd5b5f5b8151811015610e68575f60045f848481518110610e0457610e03612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610de4565b5050565b5f610e7f610e786112bd565b8484611487565b6001905092915050565b60115481565b610e976112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612acc565b60405180910390fd5b60148054906101000a900460ff1615610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890612b61565b60405180910390fd5b610fba3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fa591906128e1565b6461f313f880610fb5919061292b565b6112c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061100230610a2b565b5f8061100c610ce4565b426040518863ffffffff1660e01b815260040161102e96959493929190612bb8565b60606040518083038185885af115801561104a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106f9190612c17565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b6112bd565b73ffffffffffffffffffffffffffffffffffffffff161461118a575f80fd5b5f61119430610a2b565b90505f8111156111a8576111a781611f98565b5b5f4790505f8111156111be576111bd81611e70565b5b5050565b6111ca6112bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90612acc565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156112ba573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990612cd7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d65565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147a91906124d0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ec90612df3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a90612e81565b60405180910390fd5b5f81116115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612f0f565b60405180910390fd5b5f6115ae610ce4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610ce4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116bf575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6116c7575f80fd5b5f600e540361170f5761170c60646116fe600a54600e54116116eb576006546116ef565b6008545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b5f600e541115611744576117416064611733600d5485611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ed575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611840575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193857600f5482111561188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190612f77565b60405180910390fd5b6010548261189785610a2b565b6118a19190612f95565b11156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d990613012565b60405180910390fd5b61191e6064611910600a54600e54116118fd57600654611901565b6008545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b9050600e5f81548092919061193290613030565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0457611a0160646119f3600b54600e54116119e0576007546119e4565b6009545b85611ed890919063ffffffff16565b611f4f90919063ffffffff16565b90505b5f611a0e30610a2b565b9050601460159054906101000a900460ff16158015611a79575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a915750601460169054906101000a900460ff165b8015611a9e575060115481115b8015611aad5750600c54600e54115b15611b5c57601654431115611ac4575f6015819055505b600460155410611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00906130c1565b60405180910390fd5b611b26611b2184611b1c84601254612203565b612203565b611f98565b5f4790505f811115611b3c57611b3b47611e70565b5b60155f815480929190611b4e90613030565b919050555043601681905550505b505b5f811115611c5d57611bb68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5491906124d0565b60405180910390a35b611cad8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d50611d04828461227890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df3848661227890919063ffffffff16565b604051611e0091906124d0565b60405180910390a350505050565b5f838311158290611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9190612392565b60405180910390fd5b505f8385611e6391906130df565b9050809150509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ed4573d5f803e3d5ffd5b5050565b5f808303611ee8575f9050611f49565b5f8284611ef5919061292b565b9050828482611f04919061313f565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b906131df565b60405180910390fd5b809150505b92915050565b5f611f9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c1565b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fcf57611fce61259c565b5b604051908082528060200260200182016040528015611ffd5781602001602082028036833780820191505090505b50905030815f8151811061201457612013612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120dc9190613211565b816001815181106120f0576120ef612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121563060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121b89594939291906132f3565b5f604051808303815f87803b1580156121cf575f80fd5b505af11580156121e1573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b5f8183116122115782612213565b815b905092915050565b5f8082846122299190612f95565b90508381101561226e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226590613395565b60405180910390fd5b8091505092915050565b5f6122b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0e565b905092915050565b5f8083118290612307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fe9190612392565b60405180910390fd5b505f8385612315919061313f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61236482612322565b61236e818561232c565b935061237e81856020860161233c565b6123878161234a565b840191505092915050565b5f6020820190508181035f8301526123aa818461235a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123ec826123c3565b9050919050565b6123fc816123e2565b8114612406575f80fd5b50565b5f81359050612417816123f3565b92915050565b5f819050919050565b61242f8161241d565b8114612439575f80fd5b50565b5f8135905061244a81612426565b92915050565b5f8060408385031215612466576124656123bb565b5b5f61247385828601612409565b92505060206124848582860161243c565b9150509250929050565b5f8115159050919050565b6124a28161248e565b82525050565b5f6020820190506124bb5f830184612499565b92915050565b6124ca8161241d565b82525050565b5f6020820190506124e35f8301846124c1565b92915050565b5f805f60608486031215612500576124ff6123bb565b5b5f61250d86828701612409565b935050602061251e86828701612409565b925050604061252f8682870161243c565b9150509250925092565b5f60ff82169050919050565b61254e81612539565b82525050565b5f6020820190506125675f830184612545565b92915050565b5f60208284031215612582576125816123bb565b5b5f61258f84828501612409565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125d28261234a565b810181811067ffffffffffffffff821117156125f1576125f061259c565b5b80604052505050565b5f6126036123b2565b905061260f82826125c9565b919050565b5f67ffffffffffffffff82111561262e5761262d61259c565b5b602082029050602081019050919050565b5f80fd5b5f61265561265084612614565b6125fa565b905080838252602082019050602084028301858111156126785761267761263f565b5b835b818110156126a1578061268d8882612409565b84526020840193505060208101905061267a565b5050509392505050565b5f82601f8301126126bf576126be612598565b5b81356126cf848260208601612643565b91505092915050565b5f602082840312156126ed576126ec6123bb565b5b5f82013567ffffffffffffffff81111561270a576127096123bf565b5b612716848285016126ab565b91505092915050565b612728816123e2565b82525050565b5f6020820190506127415f83018461271f565b92915050565b5f806040838503121561275d5761275c6123bb565b5b5f61276a85828601612409565b925050602061277b85828601612409565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612807578086048111156127e3576127e2612785565b5b60018516156127f25780820291505b8081029050612800856127b2565b94506127c7565b94509492505050565b5f8261281f57600190506128da565b8161282c575f90506128da565b8160018114612842576002811461284c5761287b565b60019150506128da565b60ff84111561285e5761285d612785565b5b8360020a91508482111561287557612874612785565b5b506128da565b5060208310610133831016604e8410600b84101617156128b05782820a9050838111156128ab576128aa612785565b5b6128da565b6128bd84848460016127be565b925090508184048111156128d4576128d3612785565b5b81810290505b9392505050565b5f6128eb8261241d565b91506128f683612539565b92506129237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612810565b905092915050565b5f6129358261241d565b91506129408361241d565b925082820261294e8161241d565b9150828204841483151761296557612964612785565b5b5092915050565b5f8151905061297a81612426565b92915050565b5f60208284031215612995576129946123bb565b5b5f6129a28482850161296c565b91505092915050565b5f819050919050565b5f6129ce6129c96129c4846123c3565b6129ab565b6123c3565b9050919050565b5f6129df826129b4565b9050919050565b5f6129f0826129d5565b9050919050565b612a00816129e6565b82525050565b5f604082019050612a195f8301856129f7565b612a2660208301846124c1565b9392505050565b612a368161248e565b8114612a40575f80fd5b50565b5f81519050612a5181612a2d565b92915050565b5f60208284031215612a6c57612a6b6123bb565b5b5f612a7984828501612a43565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ab660208361232c565b9150612ac182612a82565b602082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b4b60178361232c565b9150612b5682612b17565b602082019050919050565b5f6020820190508181035f830152612b7881612b3f565b9050919050565b5f819050919050565b5f612ba2612b9d612b9884612b7f565b6129ab565b61241d565b9050919050565b612bb281612b88565b82525050565b5f60c082019050612bcb5f83018961271f565b612bd860208301886124c1565b612be56040830187612ba9565b612bf26060830186612ba9565b612bff608083018561271f565b612c0c60a08301846124c1565b979650505050505050565b5f805f60608486031215612c2e57612c2d6123bb565b5b5f612c3b8682870161296c565b9350506020612c4c8682870161296c565b9250506040612c5d8682870161296c565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cc160248361232c565b9150612ccc82612c67565b604082019050919050565b5f6020820190508181035f830152612cee81612cb5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4f60228361232c565b9150612d5a82612cf5565b604082019050919050565b5f6020820190508181035f830152612d7c81612d43565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ddd60258361232c565b9150612de882612d83565b604082019050919050565b5f6020820190508181035f830152612e0a81612dd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e6b60238361232c565b9150612e7682612e11565b604082019050919050565b5f6020820190508181035f830152612e9881612e5f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ef960298361232c565b9150612f0482612e9f565b604082019050919050565b5f6020820190508181035f830152612f2681612eed565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6160198361232c565b9150612f6c82612f2d565b602082019050919050565b5f6020820190508181035f830152612f8e81612f55565b9050919050565b5f612f9f8261241d565b9150612faa8361241d565b9250828201905080821115612fc257612fc1612785565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ffc601a8361232c565b915061300782612fc8565b602082019050919050565b5f6020820190508181035f83015261302981612ff0565b9050919050565b5f61303a8261241d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306c5761306b612785565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130ab60178361232c565b91506130b682613077565b602082019050919050565b5f6020820190508181035f8301526130d88161309f565b9050919050565b5f6130e98261241d565b91506130f48361241d565b925082820390508181111561310c5761310b612785565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131498261241d565b91506131548361241d565b92508261316457613163613112565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131c960218361232c565b91506131d48261316f565b604082019050919050565b5f6020820190508181035f8301526131f6816131bd565b9050919050565b5f8151905061320b816123f3565b92915050565b5f60208284031215613226576132256123bb565b5b5f613233848285016131fd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61326e816123e2565b82525050565b5f61327f8383613265565b60208301905092915050565b5f602082019050919050565b5f6132a18261323c565b6132ab8185613246565b93506132b683613256565b805f5b838110156132e65781516132cd8882613274565b97506132d88361328b565b9250506001810190506132b9565b5085935050505092915050565b5f60a0820190506133065f8301886124c1565b6133136020830187612ba9565b81810360408301526133258186613297565b9050613334606083018561271f565b61334160808301846124c1565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61337f601b8361232c565b915061338a8261334b565b602082019050919050565b5f6020820190508181035f8301526133ac81613373565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073f5e59e9ddf009b9c35ea0d24855cb3534c88b75900f6500b75b67f4332405164736f6c63430008190033
Deployed Bytecode Sourcemap
3826:9083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6114:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4950:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7116:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12307:192;;;;;;;;;;;;;:::i;:::-;;12636:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10835:158;;;;;;;;;;;;;:::i;:::-;;6494:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2907:148;;;;;;;;;;;;;:::i;:::-;;4778:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11101:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2693:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4833:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6205:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11270:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6621:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4890:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11528:377;;;;;;;;;;;;;:::i;:::-;;6796:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11950:349;;;;;;;;;;;;;:::i;:::-;;12510:114;;;;;;;;;;;;;:::i;:::-;;6114:83;6151:13;6184:5;;;;;;;;;;;;;;;;;6177:12;;6114:83;:::o;6947:161::-;7022:4;7039:39;7048:12;:10;:12::i;:::-;7062:7;7071:6;7039:8;:39::i;:::-;7096:4;7089:11;;6947:161;;;;:::o;4950:45::-;;;;:::o;6391:95::-;6444:7;4580:1;4641:2;:13;;;;:::i;:::-;4623:15;:31;;;;:::i;:::-;6464:14;;6391:95;:::o;7116:313::-;7214:4;7231:36;7241:6;7249:9;7260:6;7231:9;:36::i;:::-;7278:121;7287:6;7295:12;:10;:12::i;:::-;7309:89;7347:6;7309:89;;;;;;;;;;;;;;;;;:11;:19;7321:6;7309:19;;;;;;;;;;;;;;;:33;7329:12;:10;:12::i;:::-;7309:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7278:8;:121::i;:::-;7417:4;7410:11;;7116:313;;;;;:::o;6300:83::-;6341:5;4580:1;6359:16;;6300:83;:::o;11437:::-;11484:4;11505;:7;11510:1;11505:7;;;;;;;;;;;;;;;;;;;;;;;;;11498:14;;11437:83;;;:::o;12307:192::-;12376:10;;;;;;;;;;;12362:24;;:12;:10;:12::i;:::-;:24;;;12354:33;;;;;;12398:26;12427:21;12398:50;;12459:32;12472:18;12459:12;:32::i;:::-;12343:156;12307:192::o;12636:270::-;12738:10;;;;;;;;;;;12724:24;;:12;:10;:12::i;:::-;:24;;;12716:33;;;;;;12760:15;12778:63;12837:3;12778:54;12824:7;12785:8;12778:26;;;12813:4;12778:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;12760:81;;12859:8;12852:25;;;12878:10;;;;;;;;;;;12890:7;12852:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12705:201;12636:270;;:::o;10835:158::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4580:1:::1;4641:2;:13;;;;:::i;:::-;4623:15;:31;;;;:::i;:::-;10887:12;:22;;;;4580:1;4641:2;:13;;;;:::i;:::-;4623:15;:31;;;;:::i;:::-;10920:14;:22;;;;10958:27;4580:1;4641:2;:13;;;;:::i;:::-;4623:15;:31;;;;:::i;:::-;10958:27;;;;;;:::i;:::-;;;;;;;;10835:158::o:0;6494:119::-;6560:7;6587:9;:18;6597:7;6587:18;;;;;;;;;;;;;;;;6580:25;;6494:119;;;:::o;2907:148::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3014:1:::1;2977:40;;2998:6;::::0;::::1;;;;;;;;2977:40;;;;;;;;;;;;3045:1;3028:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2907:148::o:0;4778:48::-;;;;:::o;11101:161::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11172:6:::1;11167:88;11188:5;:12;11184:1;:16;11167:88;;;11239:4;11222;:14;11227:5;11233:1;11227:8;;;;;;;;:::i;:::-;;;;;;;;11222:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11202:3;;;;;;;11167:88;;;;11101:161:::0;:::o;2693:79::-;2731:7;2758:6;;;;;;;;;;;2751:13;;2693:79;:::o;4833:50::-;;;;:::o;6205:87::-;6244:13;6277:7;;;;;;;;;;;;;;;;;6270:14;;6205:87;:::o;11270:159::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11340:6:::1;11335:87;11356:6;:13;11352:1;:17;11335:87;;;11407:5;11389:4;:15;11394:6;11401:1;11394:9;;;;;;;;:::i;:::-;;;;;;;;11389:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11371:3;;;;;;;11335:87;;;;11270:159:::0;:::o;6621:167::-;6699:4;6716:42;6726:12;:10;:12::i;:::-;6740:9;6751:6;6716:9;:42::i;:::-;6776:4;6769:11;;6621:167;;;;:::o;4890:53::-;;;;:::o;11528:377::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11592:11:::1;::::0;::::1;;;;;;;;11591:12;11583:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11641:58;11658:4;11673:15;;;;;;;;;;;4580:1;4641:2;:13;;;;:::i;:::-;4623:15;:31;;;;:::i;:::-;11641:8;:58::i;:::-;11710:15;;;;;;;;;;;:31;;;11749:21;11780:4;11786:24;11804:4;11786:9;:24::i;:::-;11811:1;11813::::0;11815:7:::1;:5;:7::i;:::-;11823:15;11710:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11864:4;11850:11;;:18;;;;;;;;;;;;;;;;;;11893:4;11879:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11528:377::o:0;6796:143::-;6877:7;6904:11;:18;6916:5;6904:18;;;;;;;;;;;;;;;:27;6923:7;6904:27;;;;;;;;;;;;;;;;6897:34;;6796:143;;;;:::o;11950:349::-;12015:10;;;;;;;;;;;12001:24;;:12;:10;:12::i;:::-;:24;;;11993:33;;;;;;12037:20;12058:24;12076:4;12058:9;:24::i;:::-;12037:45;;12109:1;12096:12;:14;12093:73;;;12124:30;12141:12;12124:16;:30::i;:::-;12093:73;12176:18;12195:21;12176:40;;12241:1;12230:10;:12;12227:65;;;12256:24;12269:10;12256:12;:24::i;:::-;12227:65;11982:317;;11950:349::o;12510:114::-;2830:12;:10;:12::i;:::-;2820:22;;:6;;;;;;;;;;:22;;;2812:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12573:10:::1;;;;;;;;;;;12565:28;;:51;12594:21;12565:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12510:114::o:0;448:98::-;501:7;528:10;521:17;;448:98;:::o;7437:335::-;7547:1;7530:19;;:5;:19;;;7522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7628:1;7609:21;;:7;:21;;;7601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7710:6;7680:11;:18;7692:5;7680:18;;;;;;;;;;;;;;;:27;7699:7;7680:27;;;;;;;;;;;;;;;:36;;;;7748:7;7732:32;;7741:5;7732:32;;;7757:6;7732:32;;;;;;:::i;:::-;;;;;;;;7437:335;;;:::o;7780:2448::-;7884:1;7868:18;;:4;:18;;;7860:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:1;7947:16;;:2;:16;;;7939:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8031:1;8022:6;:10;8014:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8089:17;8131:7;:5;:7::i;:::-;8123:15;;:4;:15;;;;:32;;;;;8148:7;:5;:7::i;:::-;8142:13;;:2;:13;;;;8123:32;8119:1753;;;8181:4;:10;8186:4;8181:10;;;;;;;;;;;;;;;;;;;;;;;;;8180:11;:24;;;;;8196:4;:8;8201:2;8196:8;;;;;;;;;;;;;;;;;;;;;;;;;8195:9;8180:24;8172:33;;;;;;8236:1;8225:9;;:12;8222:139;;8269:76;8341:3;8269:67;8291:15;;8281:9;;:25;8280:55;;8321:14;;8280:55;;;8308:12;;8280:55;8269:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8257:88;;8222:139;8388:1;8378:9;;:11;8375:95;;;8421:33;8450:3;8421:24;8432:12;;8421:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8409:45;;8375:95;8498:13;;;;;;;;;;;8490:21;;:4;:21;;;:55;;;;;8529:15;;;;;;;;;;;8515:30;;:2;:30;;;;8490:55;:83;;;;;8551:18;:22;8570:2;8551:22;;;;;;;;;;;;;;;;;;;;;;;;;8549:24;8490:83;8486:420;;;8613:12;;8603:6;:22;;8595:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8708:14;;8698:6;8682:13;8692:2;8682:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8674:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8784:76;8856:3;8784:67;8806:15;;8796:9;;:25;8795:55;;8836:14;;8795:55;;;8823:12;;8795:55;8784:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8772:88;;8879:9;;:11;;;;;;;;;:::i;:::-;;;;;;8486:420;8931:13;;;;;;;;;;;8925:19;;:2;:19;;;:43;;;;;8963:4;8948:20;;:4;:20;;;;8925:43;8922:174;;;9001:79;9076:3;9001:70;9023:16;;9013:9;;:26;9012:58;;9055:15;;9012:58;;;9041:13;;9012:58;9001:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8989:91;;8922:174;9112:28;9143:24;9161:4;9143:9;:24::i;:::-;9112:55;;9187:6;;;;;;;;;;;9186:7;:30;;;;;9203:13;;;;;;;;;;;9197:19;;:2;:19;;;9186:30;:45;;;;;9220:11;;;;;;;;;;;9186:45;:89;;;;;9258:17;;9235:20;:40;9186:89;:123;;;;;9291:18;;9279:9;;:30;9186:123;9182:679;;;9349:13;;9334:12;:28;9330:90;;;9399:1;9387:9;:13;;;;9330:90;9458:1;9446:9;;:13;9438:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9506:69;9523:51;9527:6;9535:38;9539:20;9561:11;;9535:3;:38::i;:::-;9523:3;:51::i;:::-;9506:16;:69::i;:::-;9594:26;9623:21;9594:50;;9688:1;9667:18;:22;9663:106;;;9714:35;9727:21;9714:12;:35::i;:::-;9663:106;9787:9;;:11;;;;;;;;;:::i;:::-;;;;;;9833:12;9817:13;:28;;;;9311:550;9182:679;8157:1715;8119:1753;9897:1;9887:9;:11;9884:161;;;9937:39;9966:9;9937;:24;9955:4;9937:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9912:9;:24;9930:4;9912:24;;;;;;;;;;;;;;;:64;;;;10017:4;9994:39;;10003:4;9994:39;;;10023:9;9994:39;;;;;;:::i;:::-;;;;;;;;9884:161;10071:27;10091:6;10071:9;:15;10081:4;10071:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10055:9;:15;10065:4;10055:15;;;;;;;;;;;;;;;:43;;;;10123:40;10141:21;10152:9;10141:6;:10;;:21;;;;:::i;:::-;10123:9;:13;10133:2;10123:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10109:9;:13;10119:2;10109:13;;;;;;;;;;;;;;;:54;;;;10194:2;10179:41;;10188:4;10179:41;;;10198:21;10209:9;10198:6;:10;;:21;;;;:::i;:::-;10179:41;;;;;;:::i;:::-;;;;;;;;7849:2379;7780:2448;;;:::o;1585:190::-;1671:7;1704:1;1699;:6;;1707:12;1691:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1731:9;1747:1;1743;:5;;;;:::i;:::-;1731:17;;1766:1;1759:8;;;1585:190;;;;;:::o;11001:92::-;11058:10;;;;;;;;;;;:19;;:27;11078:6;11058:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11001:92;:::o;1783:246::-;1841:7;1870:1;1865;:6;1861:47;;1895:1;1888:8;;;;1861:47;1918:9;1934:1;1930;:5;;;;:::i;:::-;1918:17;;1963:1;1958;1954;:5;;;;:::i;:::-;:10;1946:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2020:1;2013:8;;;1783:246;;;;;:::o;2037:132::-;2095:7;2122:39;2126:1;2129;2122:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2115:46;;2037:132;;;;:::o;10344:483::-;5406:4;5397:6;;:13;;;;;;;;;;;;;;;;;;10422:21:::1;10460:1;10446:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10422:40;;10491:4;10473;10478:1;10473:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10517:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10507:4;10512:1;10507:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10550:62;10567:4;10582:15;;;;;;;;;;;10600:11;10550:8;:62::i;:::-;10623:15;;;;;;;;;;;:66;;;10704:11;10730:1;10746:4;10773;10793:15;10623:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10411:416;5442:5:::0;5433:6;;:14;;;;;;;;;;;;;;;;;;10344:483;:::o;10238:98::-;10295:7;10322:1;10320;:3;10319:9;;10327:1;10319:9;;;10325:1;10319:9;10312:16;;10238:98;;;;:::o;1254:179::-;1312:7;1332:9;1348:1;1344;:5;;;;:::i;:::-;1332:17;;1373:1;1368;:6;;1360:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1424:1;1417:8;;;1254:179;;;;:::o;1441:136::-;1499:7;1526:43;1530:1;1533;1526:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1519:50;;1441:136;;;;:::o;2177:189::-;2263:7;2295:1;2291;:5;2298:12;2283:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2322:9;2338:1;2334;:5;;;;:::i;:::-;2322:17;;2357:1;2350:8;;;2177: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;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545: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:117::-;5190:1;5187;5180:12;5204:180;5252:77;5249:1;5242:88;5349:4;5346:1;5339:15;5373:4;5370:1;5363:15;5390:281;5473:27;5495:4;5473:27;:::i;:::-;5465:6;5461:40;5603:6;5591:10;5588:22;5567:18;5555:10;5552:34;5549:62;5546:88;;;5614:18;;:::i;:::-;5546:88;5654:10;5650:2;5643:22;5433:238;5390:281;;:::o;5677:129::-;5711:6;5738:20;;:::i;:::-;5728:30;;5767:33;5795:4;5787:6;5767:33;:::i;:::-;5677:129;;;:::o;5812:311::-;5889:4;5979:18;5971:6;5968:30;5965:56;;;6001:18;;:::i;:::-;5965:56;6051:4;6043:6;6039:17;6031:25;;6111:4;6105;6101:15;6093:23;;5812:311;;;:::o;6129:117::-;6238:1;6235;6228:12;6269:710;6365:5;6390:81;6406:64;6463:6;6406:64;:::i;:::-;6390:81;:::i;:::-;6381:90;;6491:5;6520:6;6513:5;6506:21;6554:4;6547:5;6543:16;6536:23;;6607:4;6599:6;6595:17;6587:6;6583:30;6636:3;6628:6;6625:15;6622:122;;;6655:79;;:::i;:::-;6622:122;6770:6;6753:220;6787:6;6782:3;6779:15;6753:220;;;6862:3;6891:37;6924:3;6912:10;6891:37;:::i;:::-;6886:3;6879:50;6958:4;6953:3;6949:14;6942:21;;6829:144;6813:4;6808:3;6804:14;6797:21;;6753:220;;;6757:21;6371:608;;6269:710;;;;;:::o;7002:370::-;7073:5;7122:3;7115:4;7107:6;7103:17;7099:27;7089:122;;7130:79;;:::i;:::-;7089:122;7247:6;7234:20;7272:94;7362:3;7354:6;7347:4;7339:6;7335:17;7272:94;:::i;:::-;7263:103;;7079:293;7002:370;;;;:::o;7378:539::-;7462:6;7511:2;7499:9;7490:7;7486:23;7482:32;7479:119;;;7517:79;;:::i;:::-;7479:119;7665:1;7654:9;7650:17;7637:31;7695:18;7687:6;7684:30;7681:117;;;7717:79;;:::i;:::-;7681:117;7822:78;7892:7;7883:6;7872:9;7868:22;7822:78;:::i;:::-;7812:88;;7608:302;7378:539;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:180::-;8803:77;8800:1;8793:88;8900:4;8897:1;8890:15;8924:4;8921:1;8914:15;8941:102;8983:8;9030:5;9027:1;9023:13;9002:34;;8941:102;;;:::o;9049:848::-;9110:5;9117:4;9141:6;9132:15;;9165:5;9156:14;;9179:712;9200:1;9190:8;9187:15;9179:712;;;9295:4;9290:3;9286:14;9280:4;9277:24;9274:50;;;9304:18;;:::i;:::-;9274:50;9354:1;9344:8;9340:16;9337:451;;;9769:4;9762:5;9758:16;9749:25;;9337:451;9819:4;9813;9809:15;9801:23;;9849:32;9872:8;9849:32;:::i;:::-;9837:44;;9179:712;;;9049:848;;;;;;;:::o;9903:1073::-;9957:5;10148:8;10138:40;;10169:1;10160:10;;10171:5;;10138:40;10197:4;10187:36;;10214:1;10205:10;;10216:5;;10187:36;10283:4;10331:1;10326:27;;;;10367:1;10362:191;;;;10276:277;;10326:27;10344:1;10335:10;;10346:5;;;10362:191;10407:3;10397:8;10394:17;10391:43;;;10414:18;;:::i;:::-;10391:43;10463:8;10460:1;10456:16;10447:25;;10498:3;10491:5;10488:14;10485:40;;;10505:18;;:::i;:::-;10485:40;10538:5;;;10276:277;;10662:2;10652:8;10649:16;10643:3;10637:4;10634:13;10630:36;10612:2;10602:8;10599:16;10594:2;10588:4;10585:12;10581:35;10565:111;10562:246;;;10718:8;10712:4;10708:19;10699:28;;10753:3;10746:5;10743:14;10740:40;;;10760:18;;:::i;:::-;10740:40;10793:5;;10562:246;10833:42;10871:3;10861:8;10855:4;10852:1;10833:42;:::i;:::-;10818:57;;;;10907:4;10902:3;10898:14;10891:5;10888:25;10885:51;;;10916:18;;:::i;:::-;10885:51;10965:4;10958:5;10954:16;10945:25;;9903:1073;;;;;;:::o;10982:281::-;11040:5;11064:23;11082:4;11064:23;:::i;:::-;11056:31;;11108:25;11124:8;11108:25;:::i;:::-;11096:37;;11152:104;11189:66;11179:8;11173:4;11152:104;:::i;:::-;11143:113;;10982:281;;;;:::o;11269:410::-;11309:7;11332:20;11350:1;11332:20;:::i;:::-;11327:25;;11366:20;11384:1;11366:20;:::i;:::-;11361:25;;11421:1;11418;11414:9;11443:30;11461:11;11443:30;:::i;:::-;11432:41;;11622:1;11613:7;11609:15;11606:1;11603:22;11583:1;11576:9;11556:83;11533:139;;11652:18;;:::i;:::-;11533:139;11317:362;11269:410;;;;:::o;11685:143::-;11742:5;11773:6;11767:13;11758:22;;11789:33;11816:5;11789:33;:::i;:::-;11685:143;;;;:::o;11834:351::-;11904:6;11953:2;11941:9;11932:7;11928:23;11924:32;11921:119;;;11959:79;;:::i;:::-;11921:119;12079:1;12104:64;12160:7;12151:6;12140:9;12136:22;12104:64;:::i;:::-;12094:74;;12050:128;11834:351;;;;:::o;12191:60::-;12219:3;12240:5;12233:12;;12191:60;;;:::o;12257:142::-;12307:9;12340:53;12358:34;12367:24;12385:5;12367:24;:::i;:::-;12358:34;:::i;:::-;12340:53;:::i;:::-;12327:66;;12257:142;;;:::o;12405:126::-;12455:9;12488:37;12519:5;12488:37;:::i;:::-;12475:50;;12405:126;;;:::o;12537:134::-;12595:9;12628:37;12659:5;12628:37;:::i;:::-;12615:50;;12537:134;;;:::o;12677:147::-;12772:45;12811:5;12772:45;:::i;:::-;12767:3;12760:58;12677:147;;:::o;12830:348::-;12959:4;12997:2;12986:9;12982:18;12974:26;;13010:79;13086:1;13075:9;13071:17;13062:6;13010:79;:::i;:::-;13099:72;13167:2;13156:9;13152:18;13143:6;13099:72;:::i;:::-;12830:348;;;;;:::o;13184:116::-;13254:21;13269:5;13254:21;:::i;:::-;13247:5;13244:32;13234:60;;13290:1;13287;13280:12;13234:60;13184:116;:::o;13306:137::-;13360:5;13391:6;13385:13;13376:22;;13407:30;13431:5;13407:30;:::i;:::-;13306:137;;;;:::o;13449:345::-;13516:6;13565:2;13553:9;13544:7;13540:23;13536:32;13533:119;;;13571:79;;:::i;:::-;13533:119;13691:1;13716:61;13769:7;13760:6;13749:9;13745:22;13716:61;:::i;:::-;13706:71;;13662:125;13449:345;;;;:::o;13800:182::-;13940:34;13936:1;13928:6;13924:14;13917:58;13800:182;:::o;13988:366::-;14130:3;14151:67;14215:2;14210:3;14151:67;:::i;:::-;14144:74;;14227:93;14316:3;14227:93;:::i;:::-;14345:2;14340:3;14336:12;14329:19;;13988:366;;;:::o;14360:419::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:131;14767:4;14641:131;:::i;:::-;14633:139;;14360:419;;;:::o;14785:180::-;14833:77;14830:1;14823:88;14930:4;14927:1;14920:15;14954:4;14951:1;14944:15;14971:173;15111:25;15107:1;15099:6;15095:14;15088:49;14971:173;:::o;15150:366::-;15292:3;15313:67;15377:2;15372:3;15313:67;:::i;:::-;15306:74;;15389:93;15478:3;15389:93;:::i;:::-;15507:2;15502:3;15498:12;15491:19;;15150:366;;;:::o;15522:419::-;15688:4;15726:2;15715:9;15711:18;15703:26;;15775:9;15769:4;15765:20;15761:1;15750:9;15746:17;15739:47;15803:131;15929:4;15803:131;:::i;:::-;15795:139;;15522:419;;;:::o;15947:85::-;15992:7;16021:5;16010:16;;15947:85;;;:::o;16038:158::-;16096:9;16129:61;16147:42;16156:32;16182:5;16156:32;:::i;:::-;16147:42;:::i;:::-;16129:61;:::i;:::-;16116:74;;16038:158;;;:::o;16202:147::-;16297:45;16336:5;16297:45;:::i;:::-;16292:3;16285:58;16202:147;;:::o;16355:807::-;16604:4;16642:3;16631:9;16627:19;16619:27;;16656:71;16724:1;16713:9;16709:17;16700:6;16656:71;:::i;:::-;16737:72;16805:2;16794:9;16790:18;16781:6;16737:72;:::i;:::-;16819:80;16895:2;16884:9;16880:18;16871:6;16819:80;:::i;:::-;16909;16985:2;16974:9;16970:18;16961:6;16909:80;:::i;:::-;16999:73;17067:3;17056:9;17052:19;17043:6;16999:73;:::i;:::-;17082;17150:3;17139:9;17135:19;17126:6;17082:73;:::i;:::-;16355:807;;;;;;;;;:::o;17168:663::-;17256:6;17264;17272;17321:2;17309:9;17300:7;17296:23;17292:32;17289:119;;;17327:79;;:::i;:::-;17289:119;17447:1;17472:64;17528:7;17519:6;17508:9;17504:22;17472:64;:::i;:::-;17462:74;;17418:128;17585:2;17611:64;17667:7;17658:6;17647:9;17643:22;17611:64;:::i;:::-;17601:74;;17556:129;17724:2;17750:64;17806:7;17797:6;17786:9;17782:22;17750:64;:::i;:::-;17740:74;;17695:129;17168:663;;;;;:::o;17837:223::-;17977:34;17973:1;17965:6;17961:14;17954:58;18046:6;18041:2;18033:6;18029:15;18022:31;17837:223;:::o;18066:366::-;18208:3;18229:67;18293:2;18288:3;18229:67;:::i;:::-;18222:74;;18305:93;18394:3;18305:93;:::i;:::-;18423:2;18418:3;18414:12;18407:19;;18066:366;;;:::o;18438:419::-;18604:4;18642:2;18631:9;18627:18;18619:26;;18691:9;18685:4;18681:20;18677:1;18666:9;18662:17;18655:47;18719:131;18845:4;18719:131;:::i;:::-;18711:139;;18438:419;;;:::o;18863:221::-;19003:34;18999:1;18991:6;18987:14;18980:58;19072:4;19067:2;19059:6;19055:15;19048:29;18863:221;:::o;19090:366::-;19232:3;19253:67;19317:2;19312:3;19253:67;:::i;:::-;19246:74;;19329:93;19418:3;19329:93;:::i;:::-;19447:2;19442:3;19438:12;19431:19;;19090:366;;;:::o;19462:419::-;19628:4;19666:2;19655:9;19651:18;19643:26;;19715:9;19709:4;19705:20;19701:1;19690:9;19686:17;19679:47;19743:131;19869:4;19743:131;:::i;:::-;19735:139;;19462:419;;;:::o;19887:224::-;20027:34;20023:1;20015:6;20011:14;20004:58;20096:7;20091:2;20083:6;20079:15;20072:32;19887:224;:::o;20117:366::-;20259:3;20280:67;20344:2;20339:3;20280:67;:::i;:::-;20273:74;;20356:93;20445:3;20356:93;:::i;:::-;20474:2;20469:3;20465:12;20458:19;;20117:366;;;:::o;20489:419::-;20655:4;20693:2;20682:9;20678:18;20670:26;;20742:9;20736:4;20732:20;20728:1;20717:9;20713:17;20706:47;20770:131;20896:4;20770:131;:::i;:::-;20762:139;;20489:419;;;:::o;20914:222::-;21054:34;21050:1;21042:6;21038:14;21031:58;21123:5;21118:2;21110:6;21106:15;21099:30;20914:222;:::o;21142:366::-;21284:3;21305:67;21369:2;21364:3;21305:67;:::i;:::-;21298:74;;21381:93;21470:3;21381:93;:::i;:::-;21499:2;21494:3;21490:12;21483:19;;21142:366;;;:::o;21514:419::-;21680:4;21718:2;21707:9;21703:18;21695:26;;21767:9;21761:4;21757:20;21753:1;21742:9;21738:17;21731:47;21795:131;21921:4;21795:131;:::i;:::-;21787:139;;21514:419;;;:::o;21939:228::-;22079:34;22075:1;22067:6;22063:14;22056:58;22148:11;22143:2;22135:6;22131:15;22124:36;21939:228;:::o;22173:366::-;22315:3;22336:67;22400:2;22395:3;22336:67;:::i;:::-;22329:74;;22412:93;22501:3;22412:93;:::i;:::-;22530:2;22525:3;22521:12;22514:19;;22173:366;;;:::o;22545:419::-;22711:4;22749:2;22738:9;22734:18;22726:26;;22798:9;22792:4;22788:20;22784:1;22773:9;22769:17;22762:47;22826:131;22952:4;22826:131;:::i;:::-;22818:139;;22545:419;;;:::o;22970:175::-;23110:27;23106:1;23098:6;23094:14;23087:51;22970:175;:::o;23151:366::-;23293:3;23314:67;23378:2;23373:3;23314:67;:::i;:::-;23307:74;;23390:93;23479:3;23390:93;:::i;:::-;23508:2;23503:3;23499:12;23492:19;;23151:366;;;:::o;23523:419::-;23689:4;23727:2;23716:9;23712:18;23704:26;;23776:9;23770:4;23766:20;23762:1;23751:9;23747:17;23740:47;23804:131;23930:4;23804:131;:::i;:::-;23796:139;;23523:419;;;:::o;23948:191::-;23988:3;24007:20;24025:1;24007:20;:::i;:::-;24002:25;;24041:20;24059:1;24041:20;:::i;:::-;24036:25;;24084:1;24081;24077:9;24070:16;;24105:3;24102:1;24099:10;24096:36;;;24112:18;;:::i;:::-;24096:36;23948:191;;;;:::o;24145:176::-;24285:28;24281:1;24273:6;24269:14;24262:52;24145:176;:::o;24327:366::-;24469:3;24490:67;24554:2;24549:3;24490:67;:::i;:::-;24483:74;;24566:93;24655:3;24566:93;:::i;:::-;24684:2;24679:3;24675:12;24668:19;;24327:366;;;:::o;24699:419::-;24865:4;24903:2;24892:9;24888:18;24880:26;;24952:9;24946:4;24942:20;24938:1;24927:9;24923:17;24916:47;24980:131;25106:4;24980:131;:::i;:::-;24972:139;;24699:419;;;:::o;25124:233::-;25163:3;25186:24;25204:5;25186:24;:::i;:::-;25177:33;;25232:66;25225:5;25222:77;25219:103;;25302:18;;:::i;:::-;25219:103;25349:1;25342:5;25338:13;25331:20;;25124:233;;;:::o;25363:173::-;25503:25;25499:1;25491:6;25487:14;25480:49;25363:173;:::o;25542:366::-;25684:3;25705:67;25769:2;25764:3;25705:67;:::i;:::-;25698:74;;25781:93;25870:3;25781:93;:::i;:::-;25899:2;25894:3;25890:12;25883:19;;25542:366;;;:::o;25914:419::-;26080:4;26118:2;26107:9;26103:18;26095:26;;26167:9;26161:4;26157:20;26153:1;26142:9;26138:17;26131:47;26195:131;26321:4;26195:131;:::i;:::-;26187:139;;25914:419;;;:::o;26339:194::-;26379:4;26399:20;26417:1;26399:20;:::i;:::-;26394:25;;26433:20;26451:1;26433:20;:::i;:::-;26428:25;;26477:1;26474;26470:9;26462:17;;26501:1;26495:4;26492:11;26489:37;;;26506:18;;:::i;:::-;26489:37;26339:194;;;;:::o;26539:180::-;26587:77;26584:1;26577:88;26684:4;26681:1;26674:15;26708:4;26705:1;26698:15;26725:185;26765:1;26782:20;26800:1;26782:20;:::i;:::-;26777:25;;26816:20;26834:1;26816:20;:::i;:::-;26811:25;;26855:1;26845:35;;26860:18;;:::i;:::-;26845:35;26902:1;26899;26895:9;26890:14;;26725:185;;;;:::o;26916:220::-;27056:34;27052:1;27044:6;27040:14;27033:58;27125:3;27120:2;27112:6;27108:15;27101:28;26916:220;:::o;27142:366::-;27284:3;27305:67;27369:2;27364:3;27305:67;:::i;:::-;27298:74;;27381:93;27470:3;27381:93;:::i;:::-;27499:2;27494:3;27490:12;27483:19;;27142:366;;;:::o;27514:419::-;27680:4;27718:2;27707:9;27703:18;27695:26;;27767:9;27761:4;27757:20;27753:1;27742:9;27738:17;27731:47;27795:131;27921:4;27795:131;:::i;:::-;27787:139;;27514:419;;;:::o;27939:143::-;27996:5;28027:6;28021:13;28012:22;;28043:33;28070:5;28043:33;:::i;:::-;27939:143;;;;:::o;28088:351::-;28158:6;28207:2;28195:9;28186:7;28182:23;28178:32;28175:119;;;28213:79;;:::i;:::-;28175:119;28333:1;28358:64;28414:7;28405:6;28394:9;28390:22;28358:64;:::i;:::-;28348:74;;28304:128;28088:351;;;;:::o;28445:114::-;28512:6;28546:5;28540:12;28530:22;;28445:114;;;:::o;28565:184::-;28664:11;28698:6;28693:3;28686:19;28738:4;28733:3;28729:14;28714:29;;28565:184;;;;:::o;28755:132::-;28822:4;28845:3;28837:11;;28875:4;28870:3;28866:14;28858:22;;28755:132;;;:::o;28893:108::-;28970:24;28988:5;28970:24;:::i;:::-;28965:3;28958:37;28893:108;;:::o;29007:179::-;29076:10;29097:46;29139:3;29131:6;29097:46;:::i;:::-;29175:4;29170:3;29166:14;29152:28;;29007:179;;;;:::o;29192:113::-;29262:4;29294;29289:3;29285:14;29277:22;;29192:113;;;:::o;29341:732::-;29460:3;29489:54;29537:5;29489:54;:::i;:::-;29559:86;29638:6;29633:3;29559:86;:::i;:::-;29552:93;;29669:56;29719:5;29669:56;:::i;:::-;29748:7;29779:1;29764:284;29789:6;29786:1;29783:13;29764:284;;;29865:6;29859:13;29892:63;29951:3;29936:13;29892:63;:::i;:::-;29885:70;;29978:60;30031:6;29978:60;:::i;:::-;29968:70;;29824:224;29811:1;29808;29804:9;29799:14;;29764:284;;;29768:14;30064:3;30057:10;;29465:608;;;29341:732;;;;:::o;30079:831::-;30342:4;30380:3;30369:9;30365:19;30357:27;;30394:71;30462:1;30451:9;30447:17;30438:6;30394:71;:::i;:::-;30475:80;30551:2;30540:9;30536:18;30527:6;30475:80;:::i;:::-;30602:9;30596:4;30592:20;30587:2;30576:9;30572:18;30565:48;30630:108;30733:4;30724:6;30630:108;:::i;:::-;30622:116;;30748:72;30816:2;30805:9;30801:18;30792:6;30748:72;:::i;:::-;30830:73;30898:3;30887:9;30883:19;30874:6;30830:73;:::i;:::-;30079:831;;;;;;;;:::o;30916:177::-;31056:29;31052:1;31044:6;31040:14;31033:53;30916:177;:::o;31099:366::-;31241:3;31262:67;31326:2;31321:3;31262:67;:::i;:::-;31255:74;;31338:93;31427:3;31338:93;:::i;:::-;31456:2;31451:3;31447:12;31440:19;;31099:366;;;:::o;31471:419::-;31637:4;31675:2;31664:9;31660:18;31652:26;;31724:9;31718:4;31714:20;31710:1;31699:9;31695:17;31688:47;31752:131;31878:4;31752:131;:::i;:::-;31744:139;;31471:419;;;:::o
Swarm Source
ipfs://73f5e59e9ddf009b9c35ea0d24855cb3534c88b75900f6500b75b67f43324051
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.