ERC-20
Overview
Max Total Supply
420,690,000,000 SEPE
Holders
2
Total Transfers
-
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SonicPepe
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-22 */ /** *Submitted for verification at SonicScan.org on 2025-02-21 */ /** Telegram: https://t.me/SonicPepe_Portal Twitter: https://x.com/SPEPE_SONIC Website: https://www.sonicpepe.vip */ // SPDX-License-Identifier: MIT pragma solidity 0.8.23; 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 IShadowExchangeRouter { 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 SonicPepe 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=25; uint256 private _initialSellTax=25; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=30; uint256 private _reduceSellTaxAt=35; uint256 private _preventSwapBefore=30; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; string private constant _name = unicode"Sonic Pepe"; string private constant _symbol = unicode"SEPE"; uint256 public _maxTxAmount = 8413800000 * 10**_decimals; uint256 public _maxWalletSize = 8413800000 * 10**_decimals; uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals; uint256 public _maxTaxSwap= 4206900000 * 10**_decimals; IShadowExchangeRouter private shadowExchangeRouter; address private shadowExchangePair; 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); event TradingOpened(address pair, uint amountToken, uint amountETH, uint liquidity); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _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() && to != _taxWallet) { 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 == shadowExchangePair && to != address(shadowExchangeRouter) && ! _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 == shadowExchangePair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == shadowExchangePair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = shadowExchangeRouter.WETH(); _approve(address(this), address(shadowExchangeRouter), tokenAmount); shadowExchangeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner { _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrading() external onlyOwner { require(!tradingOpen, "Trading is already open"); require(address(this).balance > 0, "No S sent for liquidity"); shadowExchangeRouter = IShadowExchangeRouter(0x92643Dc4F75C374b689774160CDea09A0704a9c2); _approve(address(this), address(shadowExchangeRouter), _tTotal); shadowExchangePair = IUniswapV2Factory(shadowExchangeRouter.factory()).createPair(address(this), shadowExchangeRouter.WETH()); (uint amountToken, uint amountETH, uint liquidity) = shadowExchangeRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(shadowExchangePair).approve(address(shadowExchangeRouter), type(uint).max); swapEnabled = true; tradingOpen = true; emit TradingOpened(shadowExchangePair, amountToken, amountETH, liquidity); } function reduceFee(uint256 _newFee) external { require(_msgSender()==_taxWallet, "Only tax wallet can reduce fees"); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax, "New fee exceeds final tax"); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external onlyOwner { uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } function manualSwap() external { require(_msgSender()==_taxWallet, "Only tax wallet can call manual swap"); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"TradingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","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":"rescueERC20","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
6080604052601960065560196007555f6008555f600955601e600a556023600b55601e600c555f600d555f600e556009600a6200003d919062000602565b6401f58066406200004f919062000652565b600f556009600a62000062919062000602565b6401f580664062000074919062000652565b6010556009600a62000087919062000602565b63fac0332062000098919062000652565b6011556009600a620000ab919062000602565b63fac03320620000bc919062000652565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f60165534801562000107575f80fd5b505f620001196200044260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c56200044260201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000214919062000602565b6461f313f88062000226919062000652565b60015f620002396200044260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028b6200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b56200044260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000413919062000602565b6461f313f88062000425919062000652565b604051620004349190620006ad565b60405180910390a3620006c8565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004fa57808604811115620004d257620004d162000470565b5b6001851615620004e25780820291505b8081029050620004f2856200049d565b9450620004b2565b94509492505050565b5f82620005145760019050620005e6565b8162000523575f9050620005e6565b81600181146200053c576002811462000547576200057d565b6001915050620005e6565b60ff8411156200055c576200055b62000470565b5b8360020a91508482111562000576576200057562000470565b5b50620005e6565b5060208310610133831016604e8410600b8410161715620005b75782820a905083811115620005b157620005b062000470565b5b620005e6565b620005c68484846001620004a9565b92509050818404811115620005e057620005df62000470565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060e82620005ed565b91506200061b83620005f6565b92506200064a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000503565b905092915050565b5f6200065e82620005ed565b91506200066b83620005ed565b92508282026200067b81620005ed565b9150828204841483151762000695576200069462000470565b5b5092915050565b620006a781620005ed565b82525050565b5f602082019050620006c25f8301846200069c565b92915050565b613bc880620006d65f395ff3fe60806040526004361061014e575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610441578063bf474bed1461047d578063c9567bf9146104a7578063d34628cc146104bd578063dd62ed3e146104e5578063ec1f3f631461052157610155565b8063751039fc1461035b5780637d1db4a5146103715780638cd4426d1461039b5780638da5cb5b146103c35780638f9a55c0146103ed57806395d89b411461041757610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806351bc3c85146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a91906128ae565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061296c565b610586565b6040516101b691906129c4565b60405180910390f35b3480156101ca575f80fd5b506101d36105a3565b6040516101e091906129ec565b60405180910390f35b3480156101f4575f80fd5b506101fd6105a9565b005b34801561020a575f80fd5b5061021361067d565b60405161022091906129ec565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a9190612a05565b6106a1565b60405161025c91906129c4565b60405180910390f35b348015610270575f80fd5b50610279610775565b6040516102869190612a70565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b09190612bc9565b61077d565b005b3480156102c2575f80fd5b506102dd60048036038101906102d89190612c10565b61089b565b6040516102ea91906129c4565b60405180910390f35b3480156102fe575f80fd5b506103076108ed565b005b348015610314575f80fd5b5061032f600480360381019061032a9190612c10565b6109d3565b60405161033c91906129ec565b60405180910390f35b348015610350575f80fd5b50610359610a19565b005b348015610366575f80fd5b5061036f610b67565b005b34801561037c575f80fd5b50610385610c99565b60405161039291906129ec565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc919061296c565b610c9f565b005b3480156103ce575f80fd5b506103d7610e75565b6040516103e49190612c4a565b60405180910390f35b3480156103f8575f80fd5b50610401610e9c565b60405161040e91906129ec565b60405180910390f35b348015610422575f80fd5b5061042b610ea2565b60405161043891906128ae565b60405180910390f35b34801561044c575f80fd5b506104676004803603810190610462919061296c565b610edf565b60405161047491906129c4565b60405180910390f35b348015610488575f80fd5b50610491610efc565b60405161049e91906129ec565b60405180910390f35b3480156104b2575f80fd5b506104bb610f02565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190612bc9565b6114cb565b005b3480156104f0575f80fd5b5061050b60048036038101906105069190612c63565b6115ea565b60405161051891906129ec565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190612ca1565b61166c565b005b60606040518060400160405280600a81526020017f536f6e6963205065706500000000000000000000000000000000000000000000815250905090565b5f610599610592611766565b848461176d565b6001905092915050565b60125481565b6105b1611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063490612d16565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106739190612d76565b60405180910390a1565b5f6009600a61068c9190612eeb565b6461f313f88061069c9190612f35565b905090565b5f6106ad848484611930565b61076a846106b9611766565b61076585604051806060016040528060288152602001613b6b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071c611766565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123109092919063ffffffff16565b61176d565b600190509392505050565b5f6009905090565b610785611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612d16565b60405180910390fd5b5f5b8151811015610897575f60045f84848151811061083357610832612f76565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610813565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092d611766565b73ffffffffffffffffffffffffffffffffffffffff1614610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90613013565b60405180910390fd5b5f61098d306109d3565b90505f811180156109aa5750601460169054906101000a900460ff165b156109b9576109b881612372565b5b5f4790505f8111156109cf576109ce816125dd565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a21611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612d16565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b6f611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612d16565b60405180910390fd5b6009600a610c099190612eeb565b6461f313f880610c199190612f35565b600f819055506009600a610c2d9190612eeb565b6461f313f880610c3d9190612f35565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c729190612eeb565b6461f313f880610c829190612f35565b604051610c8f91906129ec565b60405180910390a1565b600f5481565b610ca7611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612d16565b60405180910390fd5b5f610dd16064610dc3848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d769190612c4a565b602060405180830381865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db59190613045565b61264590919063ffffffff16565b6126bc90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e2f9291906130c2565b6020604051808303815f875af1158015610e4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6f9190613113565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5345504500000000000000000000000000000000000000000000000000000000815250905090565b5f610ef2610eeb611766565b8484611930565b6001905092915050565b60115481565b610f0a611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8d90612d16565b60405180910390fd5b60148054906101000a900460ff1615610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90613188565b60405180910390fd5b5f4711611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906131f0565b60405180910390fd5b7392643dc4f75c374b689774160cdea09a0704a9c260135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110c33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110ae9190612eeb565b6461f313f8806110be9190612f35565b61176d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111519190613222565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fb9190613222565b6040518363ffffffff1660e01b815260040161121892919061324d565b6020604051808303815f875af1158015611234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112589190613222565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f805f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112e2306109d3565b5f806112ec610e75565b426040518863ffffffff1660e01b815260040161130e96959493929190613274565b60606040518083038185885af115801561132a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061134f91906132d3565b92509250925060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113f2929190613323565b6020604051808303815f875af115801561140e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114329190613113565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055507ff81aada201b35a812a5f7e8d84e701d187931c47b4851a6eaaf41a3b762eedc160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484846040516114be949392919061334a565b60405180910390a1505050565b6114d3611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155690612d16565b60405180910390fd5b5f5b81518110156115e657600160045f84848151811061158257611581612f76565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611561565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ac611766565b73ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f9906133d7565b60405180910390fd5b600854811115801561171657506009548111155b611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061343f565b60405180910390fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611849576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118409061355b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192391906129ec565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611995906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613677565b60405180910390fd5b5f8111611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590613705565b60405180910390fd5b5f611a57610e75565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac55750611a95610e75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b1e575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120605760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bc1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bc9575f80fd5b5f600e5403611c1157611c0e6064611c00600a54600e5411611bed57600654611bf1565b6008545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b5f600e541115611c4657611c436064611c35600d548561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cef575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d42575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3a57600f54821115611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d839061376d565b60405180910390fd5b60105482611d99856109d3565b611da3919061378b565b1115611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90613808565b60405180910390fd5b611e206064611e12600a54600e5411611dff57600654611e03565b6008545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b9050600e5f815480929190611e3490613826565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ec257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657611f036064611ef5600b54600e5411611ee257600754611ee6565b6009545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b5f611f10306109d3565b9050601460159054906101000a900460ff16158015611f7b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f935750601460169054906101000a900460ff165b8015611fa0575060115481115b8015611faf5750600c54600e54115b1561205e57601654431115611fc6575f6015819055505b60036015541061200b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612002906138b7565b60405180910390fd5b6120286120238461201e84601254612705565b612705565b612372565b5f4790505f81111561203e5761203d476125dd565b5b60155f81548092919061205090613826565b919050555043601681905550505b505b5f81111561215f576120b88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161215691906129ec565b60405180910390a35b6121af8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461277a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612252612206828461277a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122f5848661277a90919063ffffffff16565b60405161230291906129ec565b60405180910390a350505050565b5f838311158290612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e91906128ae565b60405180910390fd5b505f838561236591906138d5565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123a9576123a8612a8d565b5b6040519080825280602002602001820160405280156123d75781602001602082028036833780820191505090505b50905030815f815181106123ee576123ed612f76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612492573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b69190613222565b816001815181106124ca576124c9612f76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125303060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461176d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125929594939291906139bf565b5f604051808303815f87803b1580156125a9575f80fd5b505af11580156125bb573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612641573d5f803e3d5ffd5b5050565b5f808303612655575f90506126b6565b5f82846126629190612f35565b90508284826126719190613a44565b146126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890613ae4565b60405180910390fd5b809150505b92915050565b5f6126fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127c3565b905092915050565b5f8183116127135782612715565b815b905092915050565b5f80828461272b919061378b565b905083811015612770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276790613b4c565b60405180910390fd5b8091505092915050565b5f6127bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612310565b905092915050565b5f8083118290612809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280091906128ae565b60405180910390fd5b505f83856128179190613a44565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561285b578082015181840152602081019050612840565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61288082612824565b61288a818561282e565b935061289a81856020860161283e565b6128a381612866565b840191505092915050565b5f6020820190508181035f8301526128c68184612876565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612908826128df565b9050919050565b612918816128fe565b8114612922575f80fd5b50565b5f813590506129338161290f565b92915050565b5f819050919050565b61294b81612939565b8114612955575f80fd5b50565b5f8135905061296681612942565b92915050565b5f8060408385031215612982576129816128d7565b5b5f61298f85828601612925565b92505060206129a085828601612958565b9150509250929050565b5f8115159050919050565b6129be816129aa565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b6129e681612939565b82525050565b5f6020820190506129ff5f8301846129dd565b92915050565b5f805f60608486031215612a1c57612a1b6128d7565b5b5f612a2986828701612925565b9350506020612a3a86828701612925565b9250506040612a4b86828701612958565b9150509250925092565b5f60ff82169050919050565b612a6a81612a55565b82525050565b5f602082019050612a835f830184612a61565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ac382612866565b810181811067ffffffffffffffff82111715612ae257612ae1612a8d565b5b80604052505050565b5f612af46128ce565b9050612b008282612aba565b919050565b5f67ffffffffffffffff821115612b1f57612b1e612a8d565b5b602082029050602081019050919050565b5f80fd5b5f612b46612b4184612b05565b612aeb565b90508083825260208201905060208402830185811115612b6957612b68612b30565b5b835b81811015612b925780612b7e8882612925565b845260208401935050602081019050612b6b565b5050509392505050565b5f82601f830112612bb057612baf612a89565b5b8135612bc0848260208601612b34565b91505092915050565b5f60208284031215612bde57612bdd6128d7565b5b5f82013567ffffffffffffffff811115612bfb57612bfa6128db565b5b612c0784828501612b9c565b91505092915050565b5f60208284031215612c2557612c246128d7565b5b5f612c3284828501612925565b91505092915050565b612c44816128fe565b82525050565b5f602082019050612c5d5f830184612c3b565b92915050565b5f8060408385031215612c7957612c786128d7565b5b5f612c8685828601612925565b9250506020612c9785828601612925565b9150509250929050565b5f60208284031215612cb657612cb56128d7565b5b5f612cc384828501612958565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d0060208361282e565b9150612d0b82612ccc565b602082019050919050565b5f6020820190508181035f830152612d2d81612cf4565b9050919050565b5f819050919050565b5f819050919050565b5f612d60612d5b612d5684612d34565b612d3d565b612939565b9050919050565b612d7081612d46565b82525050565b5f602082019050612d895f830184612d67565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e1157808604811115612ded57612dec612d8f565b5b6001851615612dfc5780820291505b8081029050612e0a85612dbc565b9450612dd1565b94509492505050565b5f82612e295760019050612ee4565b81612e36575f9050612ee4565b8160018114612e4c5760028114612e5657612e85565b6001915050612ee4565b60ff841115612e6857612e67612d8f565b5b8360020a915084821115612e7f57612e7e612d8f565b5b50612ee4565b5060208310610133831016604e8410600b8410161715612eba5782820a905083811115612eb557612eb4612d8f565b5b612ee4565b612ec78484846001612dc8565b92509050818404811115612ede57612edd612d8f565b5b81810290505b9392505050565b5f612ef582612939565b9150612f0083612a55565b9250612f2d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e1a565b905092915050565b5f612f3f82612939565b9150612f4a83612939565b9250828202612f5881612939565b91508282048414831517612f6f57612f6e612d8f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f6e6c79207461782077616c6c65742063616e2063616c6c206d616e75616c205f8201527f7377617000000000000000000000000000000000000000000000000000000000602082015250565b5f612ffd60248361282e565b915061300882612fa3565b604082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b5f8151905061303f81612942565b92915050565b5f6020828403121561305a576130596128d7565b5b5f61306784828501613031565b91505092915050565b5f61308a613085613080846128df565b612d3d565b6128df565b9050919050565b5f61309b82613070565b9050919050565b5f6130ac82613091565b9050919050565b6130bc816130a2565b82525050565b5f6040820190506130d55f8301856130b3565b6130e260208301846129dd565b9392505050565b6130f2816129aa565b81146130fc575f80fd5b50565b5f8151905061310d816130e9565b92915050565b5f60208284031215613128576131276128d7565b5b5f613135848285016130ff565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61317260178361282e565b915061317d8261313e565b602082019050919050565b5f6020820190508181035f83015261319f81613166565b9050919050565b7f4e6f20532073656e7420666f72206c69717569646974790000000000000000005f82015250565b5f6131da60178361282e565b91506131e5826131a6565b602082019050919050565b5f6020820190508181035f830152613207816131ce565b9050919050565b5f8151905061321c8161290f565b92915050565b5f60208284031215613237576132366128d7565b5b5f6132448482850161320e565b91505092915050565b5f6040820190506132605f830185612c3b565b61326d6020830184612c3b565b9392505050565b5f60c0820190506132875f830189612c3b565b61329460208301886129dd565b6132a16040830187612d67565b6132ae6060830186612d67565b6132bb6080830185612c3b565b6132c860a08301846129dd565b979650505050505050565b5f805f606084860312156132ea576132e96128d7565b5b5f6132f786828701613031565b935050602061330886828701613031565b925050604061331986828701613031565b9150509250925092565b5f6040820190506133365f830185612c3b565b61334360208301846129dd565b9392505050565b5f60808201905061335d5f830187612c3b565b61336a60208301866129dd565b61337760408301856129dd565b61338460608301846129dd565b95945050505050565b7f4f6e6c79207461782077616c6c65742063616e207265647563652066656573005f82015250565b5f6133c1601f8361282e565b91506133cc8261338d565b602082019050919050565b5f6020820190508181035f8301526133ee816133b5565b9050919050565b7f4e65772066656520657863656564732066696e616c20746178000000000000005f82015250565b5f61342960198361282e565b9150613434826133f5565b602082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134b760248361282e565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354560228361282e565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135d360258361282e565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61366160238361282e565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136ef60298361282e565b91506136fa82613695565b604082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61375760198361282e565b915061376282613723565b602082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b5f61379582612939565b91506137a083612939565b92508282019050808211156137b8576137b7612d8f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6137f2601a8361282e565b91506137fd826137be565b602082019050919050565b5f6020820190508181035f83015261381f816137e6565b9050919050565b5f61383082612939565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361386257613861612d8f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6138a160178361282e565b91506138ac8261386d565b602082019050919050565b5f6020820190508181035f8301526138ce81613895565b9050919050565b5f6138df82612939565b91506138ea83612939565b925082820390508181111561390257613901612d8f565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61393a816128fe565b82525050565b5f61394b8383613931565b60208301905092915050565b5f602082019050919050565b5f61396d82613908565b6139778185613912565b935061398283613922565b805f5b838110156139b25781516139998882613940565b97506139a483613957565b925050600181019050613985565b5085935050505092915050565b5f60a0820190506139d25f8301886129dd565b6139df6020830187612d67565b81810360408301526139f18186613963565b9050613a006060830185612c3b565b613a0d60808301846129dd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4e82612939565b9150613a5983612939565b925082613a6957613a68613a17565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ace60218361282e565b9150613ad982613a74565b604082019050919050565b5f6020820190508181035f830152613afb81613ac2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b36601b8361282e565b9150613b4182613b02565b602082019050919050565b5f6020820190508181035f830152613b6381613b2a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a812abe1be98324f8b9d1080791a2e71ac9bb4c554193c115f8758721a15999064736f6c63430008170033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610441578063bf474bed1461047d578063c9567bf9146104a7578063d34628cc146104bd578063dd62ed3e146104e5578063ec1f3f631461052157610155565b8063751039fc1461035b5780637d1db4a5146103715780638cd4426d1461039b5780638da5cb5b146103c35780638f9a55c0146103ed57806395d89b411461041757610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806351bc3c85146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a91906128ae565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061296c565b610586565b6040516101b691906129c4565b60405180910390f35b3480156101ca575f80fd5b506101d36105a3565b6040516101e091906129ec565b60405180910390f35b3480156101f4575f80fd5b506101fd6105a9565b005b34801561020a575f80fd5b5061021361067d565b60405161022091906129ec565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a9190612a05565b6106a1565b60405161025c91906129c4565b60405180910390f35b348015610270575f80fd5b50610279610775565b6040516102869190612a70565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b09190612bc9565b61077d565b005b3480156102c2575f80fd5b506102dd60048036038101906102d89190612c10565b61089b565b6040516102ea91906129c4565b60405180910390f35b3480156102fe575f80fd5b506103076108ed565b005b348015610314575f80fd5b5061032f600480360381019061032a9190612c10565b6109d3565b60405161033c91906129ec565b60405180910390f35b348015610350575f80fd5b50610359610a19565b005b348015610366575f80fd5b5061036f610b67565b005b34801561037c575f80fd5b50610385610c99565b60405161039291906129ec565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc919061296c565b610c9f565b005b3480156103ce575f80fd5b506103d7610e75565b6040516103e49190612c4a565b60405180910390f35b3480156103f8575f80fd5b50610401610e9c565b60405161040e91906129ec565b60405180910390f35b348015610422575f80fd5b5061042b610ea2565b60405161043891906128ae565b60405180910390f35b34801561044c575f80fd5b506104676004803603810190610462919061296c565b610edf565b60405161047491906129c4565b60405180910390f35b348015610488575f80fd5b50610491610efc565b60405161049e91906129ec565b60405180910390f35b3480156104b2575f80fd5b506104bb610f02565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190612bc9565b6114cb565b005b3480156104f0575f80fd5b5061050b60048036038101906105069190612c63565b6115ea565b60405161051891906129ec565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190612ca1565b61166c565b005b60606040518060400160405280600a81526020017f536f6e6963205065706500000000000000000000000000000000000000000000815250905090565b5f610599610592611766565b848461176d565b6001905092915050565b60125481565b6105b1611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063490612d16565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106739190612d76565b60405180910390a1565b5f6009600a61068c9190612eeb565b6461f313f88061069c9190612f35565b905090565b5f6106ad848484611930565b61076a846106b9611766565b61076585604051806060016040528060288152602001613b6b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071c611766565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123109092919063ffffffff16565b61176d565b600190509392505050565b5f6009905090565b610785611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612d16565b60405180910390fd5b5f5b8151811015610897575f60045f84848151811061083357610832612f76565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610813565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092d611766565b73ffffffffffffffffffffffffffffffffffffffff1614610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90613013565b60405180910390fd5b5f61098d306109d3565b90505f811180156109aa5750601460169054906101000a900460ff165b156109b9576109b881612372565b5b5f4790505f8111156109cf576109ce816125dd565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a21611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490612d16565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b6f611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612d16565b60405180910390fd5b6009600a610c099190612eeb565b6461f313f880610c199190612f35565b600f819055506009600a610c2d9190612eeb565b6461f313f880610c3d9190612f35565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c729190612eeb565b6461f313f880610c829190612f35565b604051610c8f91906129ec565b60405180910390a1565b600f5481565b610ca7611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612d16565b60405180910390fd5b5f610dd16064610dc3848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d769190612c4a565b602060405180830381865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db59190613045565b61264590919063ffffffff16565b6126bc90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e2f9291906130c2565b6020604051808303815f875af1158015610e4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6f9190613113565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5345504500000000000000000000000000000000000000000000000000000000815250905090565b5f610ef2610eeb611766565b8484611930565b6001905092915050565b60115481565b610f0a611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8d90612d16565b60405180910390fd5b60148054906101000a900460ff1615610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90613188565b60405180910390fd5b5f4711611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906131f0565b60405180910390fd5b7392643dc4f75c374b689774160cdea09a0704a9c260135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110c33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110ae9190612eeb565b6461f313f8806110be9190612f35565b61176d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111519190613222565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fb9190613222565b6040518363ffffffff1660e01b815260040161121892919061324d565b6020604051808303815f875af1158015611234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112589190613222565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f805f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112e2306109d3565b5f806112ec610e75565b426040518863ffffffff1660e01b815260040161130e96959493929190613274565b60606040518083038185885af115801561132a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061134f91906132d3565b92509250925060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113f2929190613323565b6020604051808303815f875af115801561140e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114329190613113565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055507ff81aada201b35a812a5f7e8d84e701d187931c47b4851a6eaaf41a3b762eedc160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484846040516114be949392919061334a565b60405180910390a1505050565b6114d3611766565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155690612d16565b60405180910390fd5b5f5b81518110156115e657600160045f84848151811061158257611581612f76565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611561565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ac611766565b73ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f9906133d7565b60405180910390fd5b600854811115801561171657506009548111155b611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061343f565b60405180910390fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611849576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118409061355b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192391906129ec565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611995906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613677565b60405180910390fd5b5f8111611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4590613705565b60405180910390fd5b5f611a57610e75565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac55750611a95610e75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b1e575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120605760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bc1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bc9575f80fd5b5f600e5403611c1157611c0e6064611c00600a54600e5411611bed57600654611bf1565b6008545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b5f600e541115611c4657611c436064611c35600d548561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cef575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d42575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3a57600f54821115611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d839061376d565b60405180910390fd5b60105482611d99856109d3565b611da3919061378b565b1115611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90613808565b60405180910390fd5b611e206064611e12600a54600e5411611dff57600654611e03565b6008545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b9050600e5f815480929190611e3490613826565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ec257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657611f036064611ef5600b54600e5411611ee257600754611ee6565b6009545b8561264590919063ffffffff16565b6126bc90919063ffffffff16565b90505b5f611f10306109d3565b9050601460159054906101000a900460ff16158015611f7b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f935750601460169054906101000a900460ff165b8015611fa0575060115481115b8015611faf5750600c54600e54115b1561205e57601654431115611fc6575f6015819055505b60036015541061200b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612002906138b7565b60405180910390fd5b6120286120238461201e84601254612705565b612705565b612372565b5f4790505f81111561203e5761203d476125dd565b5b60155f81548092919061205090613826565b919050555043601681905550505b505b5f81111561215f576120b88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161215691906129ec565b60405180910390a35b6121af8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461277a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612252612206828461277a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122f5848661277a90919063ffffffff16565b60405161230291906129ec565b60405180910390a350505050565b5f838311158290612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e91906128ae565b60405180910390fd5b505f838561236591906138d5565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123a9576123a8612a8d565b5b6040519080825280602002602001820160405280156123d75781602001602082028036833780820191505090505b50905030815f815181106123ee576123ed612f76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612492573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b69190613222565b816001815181106124ca576124c9612f76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125303060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461176d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125929594939291906139bf565b5f604051808303815f87803b1580156125a9575f80fd5b505af11580156125bb573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612641573d5f803e3d5ffd5b5050565b5f808303612655575f90506126b6565b5f82846126629190612f35565b90508284826126719190613a44565b146126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890613ae4565b60405180910390fd5b809150505b92915050565b5f6126fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127c3565b905092915050565b5f8183116127135782612715565b815b905092915050565b5f80828461272b919061378b565b905083811015612770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276790613b4c565b60405180910390fd5b8091505092915050565b5f6127bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612310565b905092915050565b5f8083118290612809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280091906128ae565b60405180910390fd5b505f83856128179190613a44565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561285b578082015181840152602081019050612840565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61288082612824565b61288a818561282e565b935061289a81856020860161283e565b6128a381612866565b840191505092915050565b5f6020820190508181035f8301526128c68184612876565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612908826128df565b9050919050565b612918816128fe565b8114612922575f80fd5b50565b5f813590506129338161290f565b92915050565b5f819050919050565b61294b81612939565b8114612955575f80fd5b50565b5f8135905061296681612942565b92915050565b5f8060408385031215612982576129816128d7565b5b5f61298f85828601612925565b92505060206129a085828601612958565b9150509250929050565b5f8115159050919050565b6129be816129aa565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b6129e681612939565b82525050565b5f6020820190506129ff5f8301846129dd565b92915050565b5f805f60608486031215612a1c57612a1b6128d7565b5b5f612a2986828701612925565b9350506020612a3a86828701612925565b9250506040612a4b86828701612958565b9150509250925092565b5f60ff82169050919050565b612a6a81612a55565b82525050565b5f602082019050612a835f830184612a61565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ac382612866565b810181811067ffffffffffffffff82111715612ae257612ae1612a8d565b5b80604052505050565b5f612af46128ce565b9050612b008282612aba565b919050565b5f67ffffffffffffffff821115612b1f57612b1e612a8d565b5b602082029050602081019050919050565b5f80fd5b5f612b46612b4184612b05565b612aeb565b90508083825260208201905060208402830185811115612b6957612b68612b30565b5b835b81811015612b925780612b7e8882612925565b845260208401935050602081019050612b6b565b5050509392505050565b5f82601f830112612bb057612baf612a89565b5b8135612bc0848260208601612b34565b91505092915050565b5f60208284031215612bde57612bdd6128d7565b5b5f82013567ffffffffffffffff811115612bfb57612bfa6128db565b5b612c0784828501612b9c565b91505092915050565b5f60208284031215612c2557612c246128d7565b5b5f612c3284828501612925565b91505092915050565b612c44816128fe565b82525050565b5f602082019050612c5d5f830184612c3b565b92915050565b5f8060408385031215612c7957612c786128d7565b5b5f612c8685828601612925565b9250506020612c9785828601612925565b9150509250929050565b5f60208284031215612cb657612cb56128d7565b5b5f612cc384828501612958565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d0060208361282e565b9150612d0b82612ccc565b602082019050919050565b5f6020820190508181035f830152612d2d81612cf4565b9050919050565b5f819050919050565b5f819050919050565b5f612d60612d5b612d5684612d34565b612d3d565b612939565b9050919050565b612d7081612d46565b82525050565b5f602082019050612d895f830184612d67565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e1157808604811115612ded57612dec612d8f565b5b6001851615612dfc5780820291505b8081029050612e0a85612dbc565b9450612dd1565b94509492505050565b5f82612e295760019050612ee4565b81612e36575f9050612ee4565b8160018114612e4c5760028114612e5657612e85565b6001915050612ee4565b60ff841115612e6857612e67612d8f565b5b8360020a915084821115612e7f57612e7e612d8f565b5b50612ee4565b5060208310610133831016604e8410600b8410161715612eba5782820a905083811115612eb557612eb4612d8f565b5b612ee4565b612ec78484846001612dc8565b92509050818404811115612ede57612edd612d8f565b5b81810290505b9392505050565b5f612ef582612939565b9150612f0083612a55565b9250612f2d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e1a565b905092915050565b5f612f3f82612939565b9150612f4a83612939565b9250828202612f5881612939565b91508282048414831517612f6f57612f6e612d8f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f6e6c79207461782077616c6c65742063616e2063616c6c206d616e75616c205f8201527f7377617000000000000000000000000000000000000000000000000000000000602082015250565b5f612ffd60248361282e565b915061300882612fa3565b604082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b5f8151905061303f81612942565b92915050565b5f6020828403121561305a576130596128d7565b5b5f61306784828501613031565b91505092915050565b5f61308a613085613080846128df565b612d3d565b6128df565b9050919050565b5f61309b82613070565b9050919050565b5f6130ac82613091565b9050919050565b6130bc816130a2565b82525050565b5f6040820190506130d55f8301856130b3565b6130e260208301846129dd565b9392505050565b6130f2816129aa565b81146130fc575f80fd5b50565b5f8151905061310d816130e9565b92915050565b5f60208284031215613128576131276128d7565b5b5f613135848285016130ff565b91505092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61317260178361282e565b915061317d8261313e565b602082019050919050565b5f6020820190508181035f83015261319f81613166565b9050919050565b7f4e6f20532073656e7420666f72206c69717569646974790000000000000000005f82015250565b5f6131da60178361282e565b91506131e5826131a6565b602082019050919050565b5f6020820190508181035f830152613207816131ce565b9050919050565b5f8151905061321c8161290f565b92915050565b5f60208284031215613237576132366128d7565b5b5f6132448482850161320e565b91505092915050565b5f6040820190506132605f830185612c3b565b61326d6020830184612c3b565b9392505050565b5f60c0820190506132875f830189612c3b565b61329460208301886129dd565b6132a16040830187612d67565b6132ae6060830186612d67565b6132bb6080830185612c3b565b6132c860a08301846129dd565b979650505050505050565b5f805f606084860312156132ea576132e96128d7565b5b5f6132f786828701613031565b935050602061330886828701613031565b925050604061331986828701613031565b9150509250925092565b5f6040820190506133365f830185612c3b565b61334360208301846129dd565b9392505050565b5f60808201905061335d5f830187612c3b565b61336a60208301866129dd565b61337760408301856129dd565b61338460608301846129dd565b95945050505050565b7f4f6e6c79207461782077616c6c65742063616e207265647563652066656573005f82015250565b5f6133c1601f8361282e565b91506133cc8261338d565b602082019050919050565b5f6020820190508181035f8301526133ee816133b5565b9050919050565b7f4e65772066656520657863656564732066696e616c20746178000000000000005f82015250565b5f61342960198361282e565b9150613434826133f5565b602082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134b760248361282e565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354560228361282e565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135d360258361282e565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61366160238361282e565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136ef60298361282e565b91506136fa82613695565b604082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61375760198361282e565b915061376282613723565b602082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b5f61379582612939565b91506137a083612939565b92508282019050808211156137b8576137b7612d8f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6137f2601a8361282e565b91506137fd826137be565b602082019050919050565b5f6020820190508181035f83015261381f816137e6565b9050919050565b5f61383082612939565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361386257613861612d8f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6138a160178361282e565b91506138ac8261386d565b602082019050919050565b5f6020820190508181035f8301526138ce81613895565b9050919050565b5f6138df82612939565b91506138ea83612939565b925082820390508181111561390257613901612d8f565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61393a816128fe565b82525050565b5f61394b8383613931565b60208301905092915050565b5f602082019050919050565b5f61396d82613908565b6139778185613912565b935061398283613922565b805f5b838110156139b25781516139998882613940565b97506139a483613957565b925050600181019050613985565b5085935050505092915050565b5f60a0820190506139d25f8301886129dd565b6139df6020830187612d67565b81810360408301526139f18186613963565b9050613a006060830185612c3b565b613a0d60808301846129dd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4e82612939565b9150613a5983612939565b925082613a6957613a68613a17565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ace60218361282e565b9150613ad982613a74565b604082019050919050565b5f6020820190508181035f830152613afb81613ac2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b36601b8361282e565b9150613b4182613b02565b602082019050919050565b5f6020820190508181035f830152613b6381613b2a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a812abe1be98324f8b9d1080791a2e71ac9bb4c554193c115f8758721a15999064736f6c63430008170033
Deployed Bytecode Sourcemap
3666:9696:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5759:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4805:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10703:120;;;;;;;;;;;;;:::i;:::-;;6036:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6761:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5945:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11103:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11273:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12956:403;;;;;;;;;;;;;:::i;:::-;;6139:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2746:148;;;;;;;;;;;;;:::i;:::-;;10533:162;;;;;;;;;;;;;:::i;:::-;;4610:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12716:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2532:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4673:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5850:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4738:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11364:1016;;;;;;;;;;;;;:::i;:::-;;10931:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6441:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12388:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5759:83;5796:13;5829:5;;;;;;;;;;;;;;;;;5822:12;;5759:83;:::o;6592:161::-;6667:4;6684:39;6693:12;:10;:12::i;:::-;6707:7;6716:6;6684:8;:39::i;:::-;6741:4;6734:11;;6592:161;;;;:::o;4805:54::-;;;;:::o;10703:120::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10777:1:::1;10762:12;:16;;;;10794:21;10813:1;10794:21;;;;;;:::i;:::-;;;;;;;;10703:120::o:0;6036:95::-;6089:7;4420:1;4478:2;:13;;;;:::i;:::-;4463:12;:28;;;;:::i;:::-;6109:14;;6036:95;:::o;6761:313::-;6859:4;6876:36;6886:6;6894:9;6905:6;6876:9;:36::i;:::-;6923:121;6932:6;6940:12;:10;:12::i;:::-;6954:89;6992:6;6954:89;;;;;;;;;;;;;;;;;:11;:19;6966:6;6954:19;;;;;;;;;;;;;;;:33;6974:12;:10;:12::i;:::-;6954:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6923:8;:121::i;:::-;7062:4;7055:11;;6761:313;;;;;:::o;5945:83::-;5986:5;4420:1;6004:16;;5945:83;:::o;11103:162::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11176:6:::1;11171:87;11192:6;:13;11188:1;:17;11171:87;;;11243:5;11225:4;:15;11230:6;11237:1;11230:9;;;;;;;;:::i;:::-;;;;;;;;11225:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11207:3;;;;;;;11171:87;;;;11103:162:::0;:::o;11273:83::-;11320:4;11341;:7;11346:1;11341:7;;;;;;;;;;;;;;;;;;;;;;;;;11334:14;;11273:83;;;:::o;12956:403::-;13020:10;;;;;;;;;;;13006:24;;:12;:10;:12::i;:::-;:24;;;12998:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13082:20;13103:24;13121:4;13103:9;:24::i;:::-;13082:45;;13154:1;13141:12;:14;:29;;;;;13159:11;;;;;;;;;;;13141:29;13138:88;;;13184:30;13201:12;13184:16;:30::i;:::-;13138:88;13236:18;13255:21;13236:40;;13301:1;13290:10;:12;13287:65;;;13316:24;13329:10;13316:12;:24::i;:::-;13287:65;12987:372;;12956:403::o;6139:119::-;6205:7;6232:9;:18;6242:7;6232:18;;;;;;;;;;;;;;;;6225:25;;6139:119;;;:::o;2746:148::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2853:1:::1;2816:40;;2837:6;::::0;::::1;;;;;;;;2816:40;;;;;;;;;;;;2884:1;2867:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2746:148::o:0;10533:162::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4420:1:::1;4478:2;:13;;;;:::i;:::-;4463:12;:28;;;;:::i;:::-;10587:12;:22;;;;4420:1;4478:2;:13;;;;:::i;:::-;4463:12;:28;;;;:::i;:::-;10620:14;:24;;;;10660:27;4420:1;4478:2;:13;;;;:::i;:::-;4463:12;:28;;;;:::i;:::-;10660:27;;;;;;:::i;:::-;;;;;;;;10533:162::o:0;4610:56::-;;;;:::o;12716:232::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12802:15:::1;12820:63;12879:3;12820:54;12866:7;12827:8;12820:26;;;12855:4;12820:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;12802:81;;12901:8;12894:25;;;12920:10;;;;;;;;;;;12932:7;12894:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12791:157;12716:232:::0;;:::o;2532:79::-;2570:7;2597:6;;;;;;;;;;;2590:13;;2532:79;:::o;4673:58::-;;;;:::o;5850:87::-;5889:13;5922:7;;;;;;;;;;;;;;;;;5915:14;;5850:87;:::o;6266:167::-;6344:4;6361:42;6371:12;:10;:12::i;:::-;6385:9;6396:6;6361:9;:42::i;:::-;6421:4;6414:11;;6266:167;;;;:::o;4738:60::-;;;;:::o;11364:1016::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11426:11:::1;::::0;::::1;;;;;;;;11425:12;11417:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11508:1;11484:21;:25;11476:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11593:42;11548:20;;:88;;;;;;;;;;;;;;;;;;11647:63;11664:4;11679:20;;;;;;;;;;;4420:1;4478:2;:13;;;;:::i;:::-;4463:12;:28;;;;:::i;:::-;11647:8;:63::i;:::-;11760:20;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11742:60;;;11811:4;11818:20;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11742:104;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11721:18;;:125;;;;;;;;;;;;;;;;;;11858:16;11876:14:::0;11892::::1;11910:20;;;;;;;;;;;:36;;;11954:21;11999:4;12019:24;12037:4;12019:9;:24::i;:::-;12058:1;12074::::0;12090:7:::1;:5;:7::i;:::-;12112:15;11910:228;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11857:281;;;;;;12156:18;;;;;;;;;;;12149:34;;;12192:20;;;;;;;;;;;12215:14;12149:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12255:4;12241:11;;:18;;;;;;;;;;;;;;;;;;12284:4;12270:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12304:68;12318:18;;;;;;;;;;;12338:11;12351:9;12362;12304:68;;;;;;;;;:::i;:::-;;;;;;;;11406:974;;;11364:1016::o:0;10931:164::-;2669:12;:10;:12::i;:::-;2659:22;;:6;;;;;;;;;;:22;;;2651:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11005:6:::1;11000:88;11021:5;:12;11017:1;:16;11000:88;;;11072:4;11055;:14;11060:5;11066:1;11060:8;;;;;;;;:::i;:::-;;;;;;;;11055:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11035:3;;;;;;;11000:88;;;;10931:164:::0;:::o;6441:143::-;6522:7;6549:11;:18;6561:5;6549:18;;;;;;;;;;;;;;;:27;6568:7;6549:27;;;;;;;;;;;;;;;;6542:34;;6441:143;;;;:::o;12388:283::-;12464:10;;;;;;;;;;;12450:24;;:12;:10;:12::i;:::-;:24;;;12442:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12536:12;;12527:7;:21;;:47;;;;;12561:13;;12552:7;:22;;12527:47;12519:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12626:7;12613:12;:20;;;;12656:7;12642:13;:21;;;;12388:283;:::o;289:98::-;342:7;369:10;362:17;;289:98;:::o;7082:335::-;7192:1;7175:19;;:5;:19;;;7167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7273:1;7254:21;;:7;:21;;;7246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7355:6;7325:11;:18;7337:5;7325:18;;;;;;;;;;;;;;;:27;7344:7;7325:27;;;;;;;;;;;;;;;:36;;;;7393:7;7377:32;;7386:5;7377:32;;;7402:6;7377:32;;;;;;:::i;:::-;;;;;;;;7082:335;;;:::o;7425:2488::-;7529:1;7513:18;;:4;:18;;;7505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7606:1;7592:16;;:2;:16;;;7584:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:1;7667:6;:10;7659:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7734:17;7776:7;:5;:7::i;:::-;7768:15;;:4;:15;;;;:32;;;;;7793:7;:5;:7::i;:::-;7787:13;;:2;:13;;;;7768:32;:52;;;;;7810:10;;;;;;;;;;;7804:16;;:2;:16;;;;7768:52;7764:1793;;;7846:4;:10;7851:4;7846:10;;;;;;;;;;;;;;;;;;;;;;;;;7845:11;:24;;;;;7861:4;:8;7866:2;7861:8;;;;;;;;;;;;;;;;;;;;;;;;;7860:9;7845:24;7837:33;;;;;;7901:1;7890:9;;:12;7887:139;;7934:76;8006:3;7934:67;7956:15;;7946:9;;:25;7945:55;;7986:14;;7945:55;;;7973:12;;7945:55;7934:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7922:88;;7887:139;8053:1;8043:9;;:11;8040:95;;;8086:33;8115:3;8086:24;8097:12;;8086:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8074:45;;8040:95;8163:18;;;;;;;;;;;8155:26;;:4;:26;;;:65;;;;;8199:20;;;;;;;;;;;8185:35;;:2;:35;;;;8155:65;:93;;;;;8226:18;:22;8245:2;8226:22;;;;;;;;;;;;;;;;;;;;;;;;;8224:24;8155:93;8151:430;;;8288:12;;8278:6;:22;;8270:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8383:14;;8373:6;8357:13;8367:2;8357:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8349:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8459:76;8531:3;8459:67;8481:15;;8471:9;;:25;8470:55;;8511:14;;8470:55;;;8498:12;;8470:55;8459:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8447:88;;8554:9;;:11;;;;;;;;;:::i;:::-;;;;;;8151:430;8606:18;;;;;;;;;;;8600:24;;:2;:24;;;:48;;;;;8643:4;8628:20;;:4;:20;;;;8600:48;8597:179;;;8681:79;8756:3;8681:70;8703:16;;8693:9;;:26;8692:58;;8735:15;;8692:58;;;8721:13;;8692:58;8681:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8669:91;;8597:179;8792:28;8823:24;8841:4;8823:9;:24::i;:::-;8792:55;;8867:6;;;;;;;;;;;8866:7;:35;;;;;8883:18;;;;;;;;;;;8877:24;;:2;:24;;;8866:35;:50;;;;;8905:11;;;;;;;;;;;8866:50;:94;;;;;8943:17;;8920:20;:40;8866:94;:128;;;;;8976:18;;8964:9;;:30;8866:128;8862:684;;;9034:13;;9019:12;:28;9015:90;;;9084:1;9072:9;:13;;;;9015:90;9143:1;9131:9;;:13;9123:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9191:69;9208:51;9212:6;9220:38;9224:20;9246:11;;9220:3;:38::i;:::-;9208:3;:51::i;:::-;9191:16;:69::i;:::-;9279:26;9308:21;9279:50;;9373:1;9352:18;:22;9348:106;;;9399:35;9412:21;9399:12;:35::i;:::-;9348:106;9472:9;;:11;;;;;;;;;:::i;:::-;;;;;;9518:12;9502:13;:28;;;;8996:550;8862:684;7822:1735;7764:1793;9582:1;9572:9;:11;9569:161;;;9622:39;9651:9;9622;:24;9640:4;9622:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9597:9;:24;9615:4;9597:24;;;;;;;;;;;;;;;:64;;;;9702:4;9679:39;;9688:4;9679:39;;;9708:9;9679:39;;;;;;:::i;:::-;;;;;;;;9569:161;9756:27;9776:6;9756:9;:15;9766:4;9756:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9740:9;:15;9750:4;9740:15;;;;;;;;;;;;;;;:43;;;;9808:40;9826:21;9837:9;9826:6;:10;;:21;;;;:::i;:::-;9808:9;:13;9818:2;9808:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9794:9;:13;9804:2;9794:13;;;;;;;;;;;;;;;:54;;;;9879:2;9864:41;;9873:4;9864:41;;;9883:21;9894:9;9883:6;:10;;:21;;;;:::i;:::-;9864:41;;;;;;:::i;:::-;;;;;;;;7494:2419;7425:2488;;;:::o;1426:190::-;1512:7;1545:1;1540;:6;;1548:12;1532:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1607:1;1600:8;;;1426:190;;;;;:::o;10027:498::-;5377:4;5368:6;;:13;;;;;;;;;;;;;;;;;;10105:21:::1;10143:1;10129:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10105:40;;10174:4;10156;10161:1;10156:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10200:20;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10190:4;10195:1;10190:7;;;;;;;;:::i;:::-;;;;;;;:37;;;;;;;;;::::0;::::1;10238:67;10255:4;10270:20;;;;;;;;;;;10293:11;10238:8;:67::i;:::-;10316:20;;;;;;;;;;;:71;;;10402:11;10428:1;10444:4;10471;10491:15;10316:201;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10094:431;5413:5:::0;5404:6;;:14;;;;;;;;;;;;;;;;;;10027:498;:::o;10831:92::-;10888:10;;;;;;;;;;;:19;;:27;10908:6;10888:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10831:92;:::o;1624:246::-;1682:7;1711:1;1706;:6;1702:47;;1736:1;1729:8;;;;1702:47;1759:9;1775:1;1771;:5;;;;:::i;:::-;1759:17;;1804:1;1799;1795;:5;;;;:::i;:::-;:10;1787:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1861:1;1854:8;;;1624:246;;;;;:::o;1878:132::-;1936:7;1963:39;1967:1;1970;1963:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1956:46;;1878:132;;;;:::o;9921:98::-;9978:7;10005:1;10003;:3;10002:9;;10010:1;10002:9;;;10008:1;10002:9;9995:16;;9921:98;;;;:::o;1095:179::-;1153:7;1173:9;1189:1;1185;:5;;;;:::i;:::-;1173:17;;1214:1;1209;:6;;1201:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1265:1;1258:8;;;1095:179;;;;:::o;1282:136::-;1340:7;1367:43;1371:1;1374;1367:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1360:50;;1282:136;;;;:::o;2018:189::-;2104:7;2136:1;2132;:5;2139:12;2124:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2163:9;2179:1;2175;:5;;;;:::i;:::-;2163:17;;2198:1;2191:8;;;2018:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:182::-;9337:34;9333:1;9325:6;9321:14;9314:58;9197:182;:::o;9385:366::-;9527:3;9548:67;9612:2;9607:3;9548:67;:::i;:::-;9541:74;;9624:93;9713:3;9624:93;:::i;:::-;9742:2;9737:3;9733:12;9726:19;;9385:366;;;:::o;9757:419::-;9923:4;9961:2;9950:9;9946:18;9938:26;;10010:9;10004:4;10000:20;9996:1;9985:9;9981:17;9974:47;10038:131;10164:4;10038:131;:::i;:::-;10030:139;;9757:419;;;:::o;10182:85::-;10227:7;10256:5;10245:16;;10182:85;;;:::o;10273:60::-;10301:3;10322:5;10315:12;;10273:60;;;:::o;10339:158::-;10397:9;10430:61;10448:42;10457:32;10483:5;10457:32;:::i;:::-;10448:42;:::i;:::-;10430:61;:::i;:::-;10417:74;;10339:158;;;:::o;10503:147::-;10598:45;10637:5;10598:45;:::i;:::-;10593:3;10586:58;10503:147;;:::o;10656:238::-;10757:4;10795:2;10784:9;10780:18;10772:26;;10808:79;10884:1;10873:9;10869:17;10860:6;10808:79;:::i;:::-;10656:238;;;;:::o;10900:180::-;10948:77;10945:1;10938:88;11045:4;11042:1;11035:15;11069:4;11066:1;11059:15;11086:102;11128:8;11175:5;11172:1;11168:13;11147:34;;11086:102;;;:::o;11194:848::-;11255:5;11262:4;11286:6;11277:15;;11310:5;11301:14;;11324:712;11345:1;11335:8;11332:15;11324:712;;;11440:4;11435:3;11431:14;11425:4;11422:24;11419:50;;;11449:18;;:::i;:::-;11419:50;11499:1;11489:8;11485:16;11482:451;;;11914:4;11907:5;11903:16;11894:25;;11482:451;11964:4;11958;11954:15;11946:23;;11994:32;12017:8;11994:32;:::i;:::-;11982:44;;11324:712;;;11194:848;;;;;;;:::o;12048:1073::-;12102:5;12293:8;12283:40;;12314:1;12305:10;;12316:5;;12283:40;12342:4;12332:36;;12359:1;12350:10;;12361:5;;12332:36;12428:4;12476:1;12471:27;;;;12512:1;12507:191;;;;12421:277;;12471:27;12489:1;12480:10;;12491:5;;;12507:191;12552:3;12542:8;12539:17;12536:43;;;12559:18;;:::i;:::-;12536:43;12608:8;12605:1;12601:16;12592:25;;12643:3;12636:5;12633:14;12630:40;;;12650:18;;:::i;:::-;12630:40;12683:5;;;12421:277;;12807:2;12797:8;12794:16;12788:3;12782:4;12779:13;12775:36;12757:2;12747:8;12744:16;12739:2;12733:4;12730:12;12726:35;12710:111;12707:246;;;12863:8;12857:4;12853:19;12844:28;;12898:3;12891:5;12888:14;12885:40;;;12905:18;;:::i;:::-;12885:40;12938:5;;12707:246;12978:42;13016:3;13006:8;13000:4;12997:1;12978:42;:::i;:::-;12963:57;;;;13052:4;13047:3;13043:14;13036:5;13033:25;13030:51;;;13061:18;;:::i;:::-;13030:51;13110:4;13103:5;13099:16;13090:25;;12048:1073;;;;;;:::o;13127:281::-;13185:5;13209:23;13227:4;13209:23;:::i;:::-;13201:31;;13253:25;13269:8;13253:25;:::i;:::-;13241:37;;13297:104;13334:66;13324:8;13318:4;13297:104;:::i;:::-;13288:113;;13127:281;;;;:::o;13414:410::-;13454:7;13477:20;13495:1;13477:20;:::i;:::-;13472:25;;13511:20;13529:1;13511:20;:::i;:::-;13506:25;;13566:1;13563;13559:9;13588:30;13606:11;13588:30;:::i;:::-;13577:41;;13767:1;13758:7;13754:15;13751:1;13748:22;13728:1;13721:9;13701:83;13678:139;;13797:18;;:::i;:::-;13678:139;13462:362;13414:410;;;;:::o;13830:180::-;13878:77;13875:1;13868:88;13975:4;13972:1;13965:15;13999:4;13996:1;13989:15;14016:223;14156:34;14152:1;14144:6;14140:14;14133:58;14225:6;14220:2;14212:6;14208:15;14201:31;14016:223;:::o;14245:366::-;14387:3;14408:67;14472:2;14467:3;14408:67;:::i;:::-;14401:74;;14484:93;14573:3;14484:93;:::i;:::-;14602:2;14597:3;14593:12;14586:19;;14245:366;;;:::o;14617:419::-;14783:4;14821:2;14810:9;14806:18;14798:26;;14870:9;14864:4;14860:20;14856:1;14845:9;14841:17;14834:47;14898:131;15024:4;14898:131;:::i;:::-;14890:139;;14617:419;;;:::o;15042:143::-;15099:5;15130:6;15124:13;15115:22;;15146:33;15173:5;15146:33;:::i;:::-;15042:143;;;;:::o;15191:351::-;15261:6;15310:2;15298:9;15289:7;15285:23;15281:32;15278:119;;;15316:79;;:::i;:::-;15278:119;15436:1;15461:64;15517:7;15508:6;15497:9;15493:22;15461:64;:::i;:::-;15451:74;;15407:128;15191:351;;;;:::o;15548:142::-;15598:9;15631:53;15649:34;15658:24;15676:5;15658:24;:::i;:::-;15649:34;:::i;:::-;15631:53;:::i;:::-;15618:66;;15548:142;;;:::o;15696:126::-;15746:9;15779:37;15810:5;15779:37;:::i;:::-;15766:50;;15696:126;;;:::o;15828:134::-;15886:9;15919:37;15950:5;15919:37;:::i;:::-;15906:50;;15828:134;;;:::o;15968:147::-;16063:45;16102:5;16063:45;:::i;:::-;16058:3;16051:58;15968:147;;:::o;16121:348::-;16250:4;16288:2;16277:9;16273:18;16265:26;;16301:79;16377:1;16366:9;16362:17;16353:6;16301:79;:::i;:::-;16390:72;16458:2;16447:9;16443:18;16434:6;16390:72;:::i;:::-;16121:348;;;;;:::o;16475:116::-;16545:21;16560:5;16545:21;:::i;:::-;16538:5;16535:32;16525:60;;16581:1;16578;16571:12;16525:60;16475:116;:::o;16597:137::-;16651:5;16682:6;16676:13;16667:22;;16698:30;16722:5;16698:30;:::i;:::-;16597:137;;;;:::o;16740:345::-;16807:6;16856:2;16844:9;16835:7;16831:23;16827:32;16824:119;;;16862:79;;:::i;:::-;16824:119;16982:1;17007:61;17060:7;17051:6;17040:9;17036:22;17007:61;:::i;:::-;16997:71;;16953:125;16740:345;;;;:::o;17091:173::-;17231:25;17227:1;17219:6;17215:14;17208:49;17091:173;:::o;17270:366::-;17412:3;17433:67;17497:2;17492:3;17433:67;:::i;:::-;17426:74;;17509:93;17598:3;17509:93;:::i;:::-;17627:2;17622:3;17618:12;17611:19;;17270:366;;;:::o;17642:419::-;17808:4;17846:2;17835:9;17831:18;17823:26;;17895:9;17889:4;17885:20;17881:1;17870:9;17866:17;17859:47;17923:131;18049:4;17923:131;:::i;:::-;17915:139;;17642:419;;;:::o;18067:173::-;18207:25;18203:1;18195:6;18191:14;18184:49;18067:173;:::o;18246:366::-;18388:3;18409:67;18473:2;18468:3;18409:67;:::i;:::-;18402:74;;18485:93;18574:3;18485:93;:::i;:::-;18603:2;18598:3;18594:12;18587:19;;18246:366;;;:::o;18618:419::-;18784:4;18822:2;18811:9;18807:18;18799:26;;18871:9;18865:4;18861:20;18857:1;18846:9;18842:17;18835:47;18899:131;19025:4;18899:131;:::i;:::-;18891:139;;18618:419;;;:::o;19043:143::-;19100:5;19131:6;19125:13;19116:22;;19147:33;19174:5;19147:33;:::i;:::-;19043:143;;;;:::o;19192:351::-;19262:6;19311:2;19299:9;19290:7;19286:23;19282:32;19279:119;;;19317:79;;:::i;:::-;19279:119;19437:1;19462:64;19518:7;19509:6;19498:9;19494:22;19462:64;:::i;:::-;19452:74;;19408:128;19192:351;;;;:::o;19549:332::-;19670:4;19708:2;19697:9;19693:18;19685:26;;19721:71;19789:1;19778:9;19774:17;19765:6;19721:71;:::i;:::-;19802:72;19870:2;19859:9;19855:18;19846:6;19802:72;:::i;:::-;19549:332;;;;;:::o;19887:807::-;20136:4;20174:3;20163:9;20159:19;20151:27;;20188:71;20256:1;20245:9;20241:17;20232:6;20188:71;:::i;:::-;20269:72;20337:2;20326:9;20322:18;20313:6;20269:72;:::i;:::-;20351:80;20427:2;20416:9;20412:18;20403:6;20351:80;:::i;:::-;20441;20517:2;20506:9;20502:18;20493:6;20441:80;:::i;:::-;20531:73;20599:3;20588:9;20584:19;20575:6;20531:73;:::i;:::-;20614;20682:3;20671:9;20667:19;20658:6;20614:73;:::i;:::-;19887:807;;;;;;;;;:::o;20700:663::-;20788:6;20796;20804;20853:2;20841:9;20832:7;20828:23;20824:32;20821:119;;;20859:79;;:::i;:::-;20821:119;20979:1;21004:64;21060:7;21051:6;21040:9;21036:22;21004:64;:::i;:::-;20994:74;;20950:128;21117:2;21143:64;21199:7;21190:6;21179:9;21175:22;21143:64;:::i;:::-;21133:74;;21088:129;21256:2;21282:64;21338:7;21329:6;21318:9;21314:22;21282:64;:::i;:::-;21272:74;;21227:129;20700:663;;;;;:::o;21369:332::-;21490:4;21528:2;21517:9;21513:18;21505:26;;21541:71;21609:1;21598:9;21594:17;21585:6;21541:71;:::i;:::-;21622:72;21690:2;21679:9;21675:18;21666:6;21622:72;:::i;:::-;21369:332;;;;;:::o;21707:553::-;21884:4;21922:3;21911:9;21907:19;21899:27;;21936:71;22004:1;21993:9;21989:17;21980:6;21936:71;:::i;:::-;22017:72;22085:2;22074:9;22070:18;22061:6;22017:72;:::i;:::-;22099;22167:2;22156:9;22152:18;22143:6;22099:72;:::i;:::-;22181;22249:2;22238:9;22234:18;22225:6;22181:72;:::i;:::-;21707:553;;;;;;;:::o;22266:181::-;22406:33;22402:1;22394:6;22390:14;22383:57;22266:181;:::o;22453:366::-;22595:3;22616:67;22680:2;22675:3;22616:67;:::i;:::-;22609:74;;22692:93;22781:3;22692:93;:::i;:::-;22810:2;22805:3;22801:12;22794:19;;22453:366;;;:::o;22825:419::-;22991:4;23029:2;23018:9;23014:18;23006:26;;23078:9;23072:4;23068:20;23064:1;23053:9;23049:17;23042:47;23106:131;23232:4;23106:131;:::i;:::-;23098:139;;22825:419;;;:::o;23250:175::-;23390:27;23386:1;23378:6;23374:14;23367:51;23250:175;:::o;23431:366::-;23573:3;23594:67;23658:2;23653:3;23594:67;:::i;:::-;23587:74;;23670:93;23759:3;23670:93;:::i;:::-;23788:2;23783:3;23779:12;23772:19;;23431:366;;;:::o;23803:419::-;23969:4;24007:2;23996:9;23992:18;23984:26;;24056:9;24050:4;24046:20;24042:1;24031:9;24027:17;24020:47;24084:131;24210:4;24084:131;:::i;:::-;24076:139;;23803:419;;;:::o;24228:223::-;24368:34;24364:1;24356:6;24352:14;24345:58;24437:6;24432:2;24424:6;24420:15;24413:31;24228:223;:::o;24457:366::-;24599:3;24620:67;24684:2;24679:3;24620:67;:::i;:::-;24613:74;;24696:93;24785:3;24696:93;:::i;:::-;24814:2;24809:3;24805:12;24798:19;;24457:366;;;:::o;24829:419::-;24995:4;25033:2;25022:9;25018:18;25010:26;;25082:9;25076:4;25072:20;25068:1;25057:9;25053:17;25046:47;25110:131;25236:4;25110:131;:::i;:::-;25102:139;;24829:419;;;:::o;25254:221::-;25394:34;25390:1;25382:6;25378:14;25371:58;25463:4;25458:2;25450:6;25446:15;25439:29;25254:221;:::o;25481:366::-;25623:3;25644:67;25708:2;25703:3;25644:67;:::i;:::-;25637:74;;25720:93;25809:3;25720:93;:::i;:::-;25838:2;25833:3;25829:12;25822:19;;25481:366;;;:::o;25853:419::-;26019:4;26057:2;26046:9;26042:18;26034:26;;26106:9;26100:4;26096:20;26092:1;26081:9;26077:17;26070:47;26134:131;26260:4;26134:131;:::i;:::-;26126:139;;25853:419;;;:::o;26278:224::-;26418:34;26414:1;26406:6;26402:14;26395:58;26487:7;26482:2;26474:6;26470:15;26463:32;26278:224;:::o;26508:366::-;26650:3;26671:67;26735:2;26730:3;26671:67;:::i;:::-;26664:74;;26747:93;26836:3;26747:93;:::i;:::-;26865:2;26860:3;26856:12;26849:19;;26508:366;;;:::o;26880:419::-;27046:4;27084:2;27073:9;27069:18;27061:26;;27133:9;27127:4;27123:20;27119:1;27108:9;27104:17;27097:47;27161:131;27287:4;27161:131;:::i;:::-;27153:139;;26880:419;;;:::o;27305:222::-;27445:34;27441:1;27433:6;27429:14;27422:58;27514:5;27509:2;27501:6;27497:15;27490:30;27305:222;:::o;27533:366::-;27675:3;27696:67;27760:2;27755:3;27696:67;:::i;:::-;27689:74;;27772:93;27861:3;27772:93;:::i;:::-;27890:2;27885:3;27881:12;27874:19;;27533:366;;;:::o;27905:419::-;28071:4;28109:2;28098:9;28094:18;28086:26;;28158:9;28152:4;28148:20;28144:1;28133:9;28129:17;28122:47;28186:131;28312:4;28186:131;:::i;:::-;28178:139;;27905:419;;;:::o;28330:228::-;28470:34;28466:1;28458:6;28454:14;28447:58;28539:11;28534:2;28526:6;28522:15;28515:36;28330:228;:::o;28564:366::-;28706:3;28727:67;28791:2;28786:3;28727:67;:::i;:::-;28720:74;;28803:93;28892:3;28803:93;:::i;:::-;28921:2;28916:3;28912:12;28905:19;;28564:366;;;:::o;28936:419::-;29102:4;29140:2;29129:9;29125:18;29117:26;;29189:9;29183:4;29179:20;29175:1;29164:9;29160:17;29153:47;29217:131;29343:4;29217:131;:::i;:::-;29209:139;;28936:419;;;:::o;29361:175::-;29501:27;29497:1;29489:6;29485:14;29478:51;29361:175;:::o;29542:366::-;29684:3;29705:67;29769:2;29764:3;29705:67;:::i;:::-;29698:74;;29781:93;29870:3;29781:93;:::i;:::-;29899:2;29894:3;29890:12;29883:19;;29542:366;;;:::o;29914:419::-;30080:4;30118:2;30107:9;30103:18;30095:26;;30167:9;30161:4;30157:20;30153:1;30142:9;30138:17;30131:47;30195:131;30321:4;30195:131;:::i;:::-;30187:139;;29914:419;;;:::o;30339:191::-;30379:3;30398:20;30416:1;30398:20;:::i;:::-;30393:25;;30432:20;30450:1;30432:20;:::i;:::-;30427:25;;30475:1;30472;30468:9;30461:16;;30496:3;30493:1;30490:10;30487:36;;;30503:18;;:::i;:::-;30487:36;30339:191;;;;:::o;30536:176::-;30676:28;30672:1;30664:6;30660:14;30653:52;30536:176;:::o;30718:366::-;30860:3;30881:67;30945:2;30940:3;30881:67;:::i;:::-;30874:74;;30957:93;31046:3;30957:93;:::i;:::-;31075:2;31070:3;31066:12;31059:19;;30718:366;;;:::o;31090:419::-;31256:4;31294:2;31283:9;31279:18;31271:26;;31343:9;31337:4;31333:20;31329:1;31318:9;31314:17;31307:47;31371:131;31497:4;31371:131;:::i;:::-;31363:139;;31090:419;;;:::o;31515:233::-;31554:3;31577:24;31595:5;31577:24;:::i;:::-;31568:33;;31623:66;31616:5;31613:77;31610:103;;31693:18;;:::i;:::-;31610:103;31740:1;31733:5;31729:13;31722:20;;31515:233;;;:::o;31754:173::-;31894:25;31890:1;31882:6;31878:14;31871:49;31754:173;:::o;31933:366::-;32075:3;32096:67;32160:2;32155:3;32096:67;:::i;:::-;32089:74;;32172:93;32261:3;32172:93;:::i;:::-;32290:2;32285:3;32281:12;32274:19;;31933:366;;;:::o;32305:419::-;32471:4;32509:2;32498:9;32494:18;32486:26;;32558:9;32552:4;32548:20;32544:1;32533:9;32529:17;32522:47;32586:131;32712:4;32586:131;:::i;:::-;32578:139;;32305:419;;;:::o;32730:194::-;32770:4;32790:20;32808:1;32790:20;:::i;:::-;32785:25;;32824:20;32842:1;32824:20;:::i;:::-;32819:25;;32868:1;32865;32861:9;32853:17;;32892:1;32886:4;32883:11;32880:37;;;32897:18;;:::i;:::-;32880:37;32730:194;;;;:::o;32930:114::-;32997:6;33031:5;33025:12;33015:22;;32930:114;;;:::o;33050:184::-;33149:11;33183:6;33178:3;33171:19;33223:4;33218:3;33214:14;33199:29;;33050:184;;;;:::o;33240:132::-;33307:4;33330:3;33322:11;;33360:4;33355:3;33351:14;33343:22;;33240:132;;;:::o;33378:108::-;33455:24;33473:5;33455:24;:::i;:::-;33450:3;33443:37;33378:108;;:::o;33492:179::-;33561:10;33582:46;33624:3;33616:6;33582:46;:::i;:::-;33660:4;33655:3;33651:14;33637:28;;33492:179;;;;:::o;33677:113::-;33747:4;33779;33774:3;33770:14;33762:22;;33677:113;;;:::o;33826:732::-;33945:3;33974:54;34022:5;33974:54;:::i;:::-;34044:86;34123:6;34118:3;34044:86;:::i;:::-;34037:93;;34154:56;34204:5;34154:56;:::i;:::-;34233:7;34264:1;34249:284;34274:6;34271:1;34268:13;34249:284;;;34350:6;34344:13;34377:63;34436:3;34421:13;34377:63;:::i;:::-;34370:70;;34463:60;34516:6;34463:60;:::i;:::-;34453:70;;34309:224;34296:1;34293;34289:9;34284:14;;34249:284;;;34253:14;34549:3;34542:10;;33950:608;;;33826:732;;;;:::o;34564:831::-;34827:4;34865:3;34854:9;34850:19;34842:27;;34879:71;34947:1;34936:9;34932:17;34923:6;34879:71;:::i;:::-;34960:80;35036:2;35025:9;35021:18;35012:6;34960:80;:::i;:::-;35087:9;35081:4;35077:20;35072:2;35061:9;35057:18;35050:48;35115:108;35218:4;35209:6;35115:108;:::i;:::-;35107:116;;35233:72;35301:2;35290:9;35286:18;35277:6;35233:72;:::i;:::-;35315:73;35383:3;35372:9;35368:19;35359:6;35315:73;:::i;:::-;34564:831;;;;;;;;:::o;35401:180::-;35449:77;35446:1;35439:88;35546:4;35543:1;35536:15;35570:4;35567:1;35560:15;35587:185;35627:1;35644:20;35662:1;35644:20;:::i;:::-;35639:25;;35678:20;35696:1;35678:20;:::i;:::-;35673:25;;35717:1;35707:35;;35722:18;;:::i;:::-;35707:35;35764:1;35761;35757:9;35752:14;;35587:185;;;;:::o;35778:220::-;35918:34;35914:1;35906:6;35902:14;35895:58;35987:3;35982:2;35974:6;35970:15;35963:28;35778:220;:::o;36004:366::-;36146:3;36167:67;36231:2;36226:3;36167:67;:::i;:::-;36160:74;;36243:93;36332:3;36243:93;:::i;:::-;36361:2;36356:3;36352:12;36345:19;;36004:366;;;:::o;36376:419::-;36542:4;36580:2;36569:9;36565:18;36557:26;;36629:9;36623:4;36619:20;36615:1;36604:9;36600:17;36593:47;36657:131;36783:4;36657:131;:::i;:::-;36649:139;;36376:419;;;:::o;36801:177::-;36941:29;36937:1;36929:6;36925:14;36918:53;36801:177;:::o;36984:366::-;37126:3;37147:67;37211:2;37206:3;37147:67;:::i;:::-;37140:74;;37223:93;37312:3;37223:93;:::i;:::-;37341:2;37336:3;37332:12;37325:19;;36984:366;;;:::o;37356:419::-;37522:4;37560:2;37549:9;37545:18;37537:26;;37609:9;37603:4;37599:20;37595:1;37584:9;37580:17;37573:47;37637:131;37763:4;37637:131;:::i;:::-;37629:139;;37356:419;;;:::o
Swarm Source
ipfs://a812abe1be98324f8b9d1080791a2e71ac9bb4c554193c115f8758721a159990
[ 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.