ERC-20
Overview
Max Total Supply
100,000,000 UNI
Holders
69
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
UNI
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-01 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.23; // https://t.me/universitydotcom // https://twitter.com/Cobratate/status/1753151569334260206 // A cryptocurrency with the intent to buy memberships on university.com using 4% buy and sell taxes coded into this smart contract. // University.com memberships will be airdropped to holders. // UNI Dev will create a smart contract that will buy and airdrop the token that Tate launches himself to holders. // Long live the Cobra! abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract UNI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _operationsWallet; uint256 private _initialBuyTax = 8; uint256 private _initialSellTax = 8; uint256 private _finalBuyTax = 4; uint256 private _finalSellTax = 4; uint256 private _reduceBuyTaxAt = 50; uint256 private _reduceSellTaxAt = 100; uint256 private _preventSwapBefore = 30; uint256 private _buyCount = 0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100_000_000 * 10**_decimals; string private constant _name = unicode"University.com"; string private constant _symbol = unicode"UNI"; uint256 public _maxTxAmount = 420_000 * 10**_decimals; uint256 public _maxWalletSize = 420_000 * 10**_decimals; uint256 public _taxSwapThreshold = 100_000 * 10**_decimals; uint256 public _maxTaxSwap = 2_000_000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _operationsWallet = payable(_msgSender()); uint256 liquidityTokens = _tTotal.mul(95).div(100); uint256 operationsTokens = _tTotal.mul(5).div(100); _balances[address(this)] = liquidityTokens; _balances[_operationsWallet] = operationsTokens; _isExcludedFromFee[_operationsWallet] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), address(this), liquidityTokens); emit Transfer(address(0), _operationsWallet, operationsTokens); } 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"); uint256 taxAmount = 0; if (tradingOpen && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 50000000000000000) { uint256 _taxAmount = address(this).balance; _operationsWallet.transfer(_taxAmount); } } } if(taxAmount>0){ _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function openTrading() payable external onlyOwner { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,_operationsWallet,block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); tradingOpen = true; } receive() external payable {} function rescueToken(address _token) external returns (bool _sent) { require(_msgSender() == _operationsWallet); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_operationsWallet, _contractBalance); } function rescueETH() external { require(_msgSender() == _operationsWallet); bool success; (success,) = address(_operationsWallet).call{value: address(this).balance}(""); } function removeTaxes() external { require(_msgSender() == _operationsWallet); _finalBuyTax = 0; _finalSellTax = 0; } function removeLimits() external { require(_msgSender() == _operationsWallet); _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"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
6080604052600860055560086006556004600755600460085560326009556064600a55601e600b555f600c556012600a6200003b9190620007c7565b620668a06200004b919062000817565b600d556012600a6200005e9190620007c7565b620668a06200006e919062000817565b600e556012600a620000819190620007c7565b620186a062000091919062000817565b600f556012600a620000a49190620007c7565b621e8480620000b4919062000817565b6010555f601260146101000a81548160ff0219169083151502179055505f601260156101000a81548160ff021916908315150217905550348015620000f7575f80fd5b505f62000109620004f760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b5620004f760201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f62000240606462000231605f6012600a620002119190620007c7565b6305f5e10062000222919062000817565b620004fe60201b90919060201c565b6200057e60201b90919060201c565b90505f6200028e60646200027f60056012600a6200025f9190620007c7565b6305f5e10062000270919062000817565b620004fe60201b90919060201c565b6200057e60201b90919060201c565b90508160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200045f919062000872565b60405180910390a360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004e7919062000872565b60405180910390a3505062000a3b565b5f33905090565b5f80830362000510575f905062000578565b5f82846200051f919062000817565b9050828482620005309190620008ba565b1462000573576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200056a9062000975565b60405180910390fd5b809150505b92915050565b5f620005c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005cf60201b60201c565b905092915050565b5f808311829062000618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060f919062000a19565b60405180910390fd5b505f8385620006289190620008ba565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006bf5780860481111562000697576200069662000635565b5b6001851615620006a75780820291505b8081029050620006b78562000662565b945062000677565b94509492505050565b5f82620006d95760019050620007ab565b81620006e8575f9050620007ab565b81600181146200070157600281146200070c5762000742565b6001915050620007ab565b60ff84111562000721576200072062000635565b5b8360020a9150848211156200073b576200073a62000635565b5b50620007ab565b5060208310610133831016604e8410600b84101617156200077c5782820a90508381111562000776576200077562000635565b5b620007ab565b6200078b84848460016200066e565b92509050818404811115620007a557620007a462000635565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007d382620007b2565b9150620007e083620007bb565b92506200080f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006c8565b905092915050565b5f6200082382620007b2565b91506200083083620007b2565b92508282026200084081620007b2565b915082820484148315176200085a576200085962000635565b5b5092915050565b6200086c81620007b2565b82525050565b5f602082019050620008875f83018462000861565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008c682620007b2565b9150620008d383620007b2565b925082620008e657620008e56200088d565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200095d602183620008f1565b91506200096a8262000901565b604082019050919050565b5f6020820190508181035f8301526200098e816200094f565b9050919050565b5f81519050919050565b5f5b83811015620009be578082015181840152602081019050620009a1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620009e58262000995565b620009f18185620008f1565b935062000a038185602086016200099f565b62000a0e81620009c9565b840191505092915050565b5f6020820190508181035f83015262000a338184620009d9565b905092915050565b612f5d8062000a495f395ff3fe608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461039b578063a9059cbb146103c5578063bf474bed14610401578063c9567bf91461042b578063dd62ed3e1461043557610129565b8063715018a6146102f1578063751039fc146103075780637d1db4a51461031d5780638da5cb5b146103475780638f9a55c01461037157610129565b806323b872dd116100e657806323b872dd146101fd578063313ce567146102395780634460d3cf1461026357806369e1ea7f1461029f57806370a08231146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806320800a00146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610471565b60405161014e91906120ac565b60405180910390f35b348015610162575f80fd5b5061017d6004803603810190610178919061215d565b6104ae565b60405161018a91906121b5565b60405180910390f35b34801561019e575f80fd5b506101a76104cb565b6040516101b491906121dd565b60405180910390f35b3480156101c8575f80fd5b506101d16104d1565b6040516101de91906121dd565b60405180910390f35b3480156101f2575f80fd5b506101fb6104f4565b005b348015610208575f80fd5b50610223600480360381019061021e91906121f6565b6105e1565b60405161023091906121b5565b60405180910390f35b348015610244575f80fd5b5061024d6106b5565b60405161025a9190612261565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061227a565b6106bd565b60405161029691906121b5565b60405180910390f35b3480156102aa575f80fd5b506102b361083c565b005b3480156102c0575f80fd5b506102db60048036038101906102d6919061227a565b6108ab565b6040516102e891906121dd565b60405180910390f35b3480156102fc575f80fd5b506103056108f1565b005b348015610312575f80fd5b5061031b610a3f565b005b348015610328575f80fd5b50610331610b39565b60405161033e91906121dd565b60405180910390f35b348015610352575f80fd5b5061035b610b3f565b60405161036891906122b4565b60405180910390f35b34801561037c575f80fd5b50610385610b66565b60405161039291906121dd565b60405180910390f35b3480156103a6575f80fd5b506103af610b6c565b6040516103bc91906120ac565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e6919061215d565b610ba9565b6040516103f891906121b5565b60405180910390f35b34801561040c575f80fd5b50610415610bc6565b60405161042291906121dd565b60405180910390f35b610433610bcc565b005b348015610440575f80fd5b5061045b600480360381019061045691906122cd565b6110ed565b60405161046891906121dd565b60405180910390f35b60606040518060400160405280600e81526020017f556e69766572736974792e636f6d000000000000000000000000000000000000815250905090565b5f6104c16104ba61116f565b8484611176565b6001905092915050565b60105481565b5f6012600a6104e09190612467565b6305f5e1006104ef91906124b1565b905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053461116f565b73ffffffffffffffffffffffffffffffffffffffff1614610553575f80fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516105999061251f565b5f6040518083038185875af1925050503d805f81146105d3576040519150601f19603f3d011682016040523d82523d5f602084013e6105d8565b606091505b50508091505050565b5f6105ed848484611339565b6106aa846105f961116f565b6106a585604051806060016040528060288152602001612f006028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61065c61116f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b769092919063ffffffff16565b611176565b600190509392505050565b5f6012905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fe61116f565b73ffffffffffffffffffffffffffffffffffffffff161461071d575f80fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161075791906122b4565b602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190612547565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107f49291906125cd565b6020604051808303815f875af1158015610810573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610834919061261e565b915050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087c61116f565b73ffffffffffffffffffffffffffffffffffffffff161461089b575f80fd5b5f6007819055505f600881905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f961116f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90612693565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a7f61116f565b73ffffffffffffffffffffffffffffffffffffffff1614610a9e575f80fd5b6012600a610aac9190612467565b6305f5e100610abb91906124b1565b600d819055506012600a610acf9190612467565b6305f5e100610ade91906124b1565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b139190612467565b6305f5e100610b2291906124b1565b604051610b2f91906121dd565b60405180910390a1565b600d5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f554e490000000000000000000000000000000000000000000000000000000000815250905090565b5f610bbc610bb561116f565b8484611339565b6001905092915050565b600f5481565b610bd461116f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612693565b60405180910390fd5b601260149054906101000a900460ff1615610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca7906126fb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4c3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d389190612467565b6305f5e100610d4791906124b1565b611176565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda919061272d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e84919061272d565b6040518363ffffffff1660e01b8152600401610ea1929190612758565b6020604051808303815f875af1158015610ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee1919061272d565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f68306108ab565b5f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610fae969594939291906127b8565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612817565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612867565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf919061261e565b506001601260146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061298c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161132c91906121dd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612a1a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612aa8565b60405180910390fd5b5f601260149054906101000a900460ff168015611479575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114cc575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118c65760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561157a575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115cd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116c557600d54821115611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612b10565b60405180910390fd5b600e5482611624856108ab565b61162e9190612b2e565b111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612bab565b60405180910390fd5b6116ab606461169d600954600c541161168a5760055461168e565b6007545b85611bd890919063ffffffff16565b611c4f90919063ffffffff16565b9050600c5f8154809291906116bf90612bc9565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117915761178e6064611780600a54600c541161176d57600654611771565b6008545b85611bd890919063ffffffff16565b611c4f90919063ffffffff16565b90505b5f61179b306108ab565b9050601260159054906101000a900460ff16158015611806575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118135750600f5481115b80156118225750600b54600c54115b156118c45761184461183f8461183a84601054611c98565b611c98565b611cb0565b5f47905066b1a2bc2ec500008111156118c2575f47905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156118bf573d5f803e3d5ffd5b50505b505b505b5f8111156119c55761191e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119bc91906121dd565b60405180910390a35b611a158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab8611a6c8284611f7890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5b8486611f7890919063ffffffff16565b604051611b6891906121dd565b60405180910390a350505050565b5f838311158290611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb491906120ac565b60405180910390fd5b505f8385611bcb9190612c10565b9050809150509392505050565b5f808303611be8575f9050611c49565b5f8284611bf591906124b1565b9050828482611c049190612c70565b14611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90612d10565b60405180910390fd5b809150505b92915050565b5f611c9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc1565b905092915050565b5f818311611ca65782611ca8565b815b905092915050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce757611ce6612d2e565b5b604051908082528060200260200182016040528015611d155781602001602082028036833780820191505090505b50905030815f81518110611d2c57611d2b612d5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df4919061272d565b81600181518110611e0857611e07612d5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611176565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ed0959493929190612e3f565b5f604051808303815f87803b158015611ee7575f80fd5b505af1158015611ef9573d5f803e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b5f808284611f299190612b2e565b905083811015611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6590612ee1565b60405180910390fd5b8091505092915050565b5f611fb983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b76565b905092915050565b5f8083118290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe91906120ac565b60405180910390fd5b505f83856120159190612c70565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561205957808201518184015260208101905061203e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207e82612022565b612088818561202c565b935061209881856020860161203c565b6120a181612064565b840191505092915050565b5f6020820190508181035f8301526120c48184612074565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120f9826120d0565b9050919050565b612109816120ef565b8114612113575f80fd5b50565b5f8135905061212481612100565b92915050565b5f819050919050565b61213c8161212a565b8114612146575f80fd5b50565b5f8135905061215781612133565b92915050565b5f8060408385031215612173576121726120cc565b5b5f61218085828601612116565b925050602061219185828601612149565b9150509250929050565b5f8115159050919050565b6121af8161219b565b82525050565b5f6020820190506121c85f8301846121a6565b92915050565b6121d78161212a565b82525050565b5f6020820190506121f05f8301846121ce565b92915050565b5f805f6060848603121561220d5761220c6120cc565b5b5f61221a86828701612116565b935050602061222b86828701612116565b925050604061223c86828701612149565b9150509250925092565b5f60ff82169050919050565b61225b81612246565b82525050565b5f6020820190506122745f830184612252565b92915050565b5f6020828403121561228f5761228e6120cc565b5b5f61229c84828501612116565b91505092915050565b6122ae816120ef565b82525050565b5f6020820190506122c75f8301846122a5565b92915050565b5f80604083850312156122e3576122e26120cc565b5b5f6122f085828601612116565b925050602061230185828601612116565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561238d578086048111156123695761236861230b565b5b60018516156123785780820291505b808102905061238685612338565b945061234d565b94509492505050565b5f826123a55760019050612460565b816123b2575f9050612460565b81600181146123c857600281146123d257612401565b6001915050612460565b60ff8411156123e4576123e361230b565b5b8360020a9150848211156123fb576123fa61230b565b5b50612460565b5060208310610133831016604e8410600b84101617156124365782820a9050838111156124315761243061230b565b5b612460565b6124438484846001612344565b9250905081840481111561245a5761245961230b565b5b81810290505b9392505050565b5f6124718261212a565b915061247c83612246565b92506124a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612396565b905092915050565b5f6124bb8261212a565b91506124c68361212a565b92508282026124d48161212a565b915082820484148315176124eb576124ea61230b565b5b5092915050565b5f81905092915050565b50565b5f61250a5f836124f2565b9150612515826124fc565b5f82019050919050565b5f612529826124ff565b9150819050919050565b5f8151905061254181612133565b92915050565b5f6020828403121561255c5761255b6120cc565b5b5f61256984828501612533565b91505092915050565b5f819050919050565b5f61259561259061258b846120d0565b612572565b6120d0565b9050919050565b5f6125a68261257b565b9050919050565b5f6125b78261259c565b9050919050565b6125c7816125ad565b82525050565b5f6040820190506125e05f8301856125be565b6125ed60208301846121ce565b9392505050565b6125fd8161219b565b8114612607575f80fd5b50565b5f81519050612618816125f4565b92915050565b5f60208284031215612633576126326120cc565b5b5f6126408482850161260a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267d60208361202c565b915061268882612649565b602082019050919050565b5f6020820190508181035f8301526126aa81612671565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126e560178361202c565b91506126f0826126b1565b602082019050919050565b5f6020820190508181035f830152612712816126d9565b9050919050565b5f8151905061272781612100565b92915050565b5f60208284031215612742576127416120cc565b5b5f61274f84828501612719565b91505092915050565b5f60408201905061276b5f8301856122a5565b61277860208301846122a5565b9392505050565b5f819050919050565b5f6127a261279d6127988461277f565b612572565b61212a565b9050919050565b6127b281612788565b82525050565b5f60c0820190506127cb5f8301896122a5565b6127d860208301886121ce565b6127e560408301876127a9565b6127f260608301866127a9565b6127ff60808301856125be565b61280c60a08301846121ce565b979650505050505050565b5f805f6060848603121561282e5761282d6120cc565b5b5f61283b86828701612533565b935050602061284c86828701612533565b925050604061285d86828701612533565b9150509250925092565b5f60408201905061287a5f8301856122a5565b61288760208301846121ce565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128e860248361202c565b91506128f38261288e565b604082019050919050565b5f6020820190508181035f830152612915816128dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61297660228361202c565b91506129818261291c565b604082019050919050565b5f6020820190508181035f8301526129a38161296a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a0460258361202c565b9150612a0f826129aa565b604082019050919050565b5f6020820190508181035f830152612a31816129f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a9260238361202c565b9150612a9d82612a38565b604082019050919050565b5f6020820190508181035f830152612abf81612a86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612afa60198361202c565b9150612b0582612ac6565b602082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b5f612b388261212a565b9150612b438361212a565b9250828201905080821115612b5b57612b5a61230b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612b95601a8361202c565b9150612ba082612b61565b602082019050919050565b5f6020820190508181035f830152612bc281612b89565b9050919050565b5f612bd38261212a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c0557612c0461230b565b5b600182019050919050565b5f612c1a8261212a565b9150612c258361212a565b9250828203905081811115612c3d57612c3c61230b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c7a8261212a565b9150612c858361212a565b925082612c9557612c94612c43565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cfa60218361202c565b9150612d0582612ca0565b604082019050919050565b5f6020820190508181035f830152612d2781612cee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612dba816120ef565b82525050565b5f612dcb8383612db1565b60208301905092915050565b5f602082019050919050565b5f612ded82612d88565b612df78185612d92565b9350612e0283612da2565b805f5b83811015612e32578151612e198882612dc0565b9750612e2483612dd7565b925050600181019050612e05565b5085935050505092915050565b5f60a082019050612e525f8301886121ce565b612e5f60208301876127a9565b8181036040830152612e718186612de3565b9050612e8060608301856122a5565b612e8d60808301846121ce565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ecb601b8361202c565b9150612ed682612e97565b602082019050919050565b5f6020820190508181035f830152612ef881612ebf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee5c923c22cf608761eef6418811e470387bca92e732308fa74297dfee612ef264736f6c63430008170033
Deployed Bytecode
0x608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461039b578063a9059cbb146103c5578063bf474bed14610401578063c9567bf91461042b578063dd62ed3e1461043557610129565b8063715018a6146102f1578063751039fc146103075780637d1db4a51461031d5780638da5cb5b146103475780638f9a55c01461037157610129565b806323b872dd116100e657806323b872dd146101fd578063313ce567146102395780634460d3cf1461026357806369e1ea7f1461029f57806370a08231146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806320800a00146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610471565b60405161014e91906120ac565b60405180910390f35b348015610162575f80fd5b5061017d6004803603810190610178919061215d565b6104ae565b60405161018a91906121b5565b60405180910390f35b34801561019e575f80fd5b506101a76104cb565b6040516101b491906121dd565b60405180910390f35b3480156101c8575f80fd5b506101d16104d1565b6040516101de91906121dd565b60405180910390f35b3480156101f2575f80fd5b506101fb6104f4565b005b348015610208575f80fd5b50610223600480360381019061021e91906121f6565b6105e1565b60405161023091906121b5565b60405180910390f35b348015610244575f80fd5b5061024d6106b5565b60405161025a9190612261565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061227a565b6106bd565b60405161029691906121b5565b60405180910390f35b3480156102aa575f80fd5b506102b361083c565b005b3480156102c0575f80fd5b506102db60048036038101906102d6919061227a565b6108ab565b6040516102e891906121dd565b60405180910390f35b3480156102fc575f80fd5b506103056108f1565b005b348015610312575f80fd5b5061031b610a3f565b005b348015610328575f80fd5b50610331610b39565b60405161033e91906121dd565b60405180910390f35b348015610352575f80fd5b5061035b610b3f565b60405161036891906122b4565b60405180910390f35b34801561037c575f80fd5b50610385610b66565b60405161039291906121dd565b60405180910390f35b3480156103a6575f80fd5b506103af610b6c565b6040516103bc91906120ac565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e6919061215d565b610ba9565b6040516103f891906121b5565b60405180910390f35b34801561040c575f80fd5b50610415610bc6565b60405161042291906121dd565b60405180910390f35b610433610bcc565b005b348015610440575f80fd5b5061045b600480360381019061045691906122cd565b6110ed565b60405161046891906121dd565b60405180910390f35b60606040518060400160405280600e81526020017f556e69766572736974792e636f6d000000000000000000000000000000000000815250905090565b5f6104c16104ba61116f565b8484611176565b6001905092915050565b60105481565b5f6012600a6104e09190612467565b6305f5e1006104ef91906124b1565b905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053461116f565b73ffffffffffffffffffffffffffffffffffffffff1614610553575f80fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516105999061251f565b5f6040518083038185875af1925050503d805f81146105d3576040519150601f19603f3d011682016040523d82523d5f602084013e6105d8565b606091505b50508091505050565b5f6105ed848484611339565b6106aa846105f961116f565b6106a585604051806060016040528060288152602001612f006028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61065c61116f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b769092919063ffffffff16565b611176565b600190509392505050565b5f6012905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fe61116f565b73ffffffffffffffffffffffffffffffffffffffff161461071d575f80fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161075791906122b4565b602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190612547565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107f49291906125cd565b6020604051808303815f875af1158015610810573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610834919061261e565b915050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087c61116f565b73ffffffffffffffffffffffffffffffffffffffff161461089b575f80fd5b5f6007819055505f600881905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f961116f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90612693565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a7f61116f565b73ffffffffffffffffffffffffffffffffffffffff1614610a9e575f80fd5b6012600a610aac9190612467565b6305f5e100610abb91906124b1565b600d819055506012600a610acf9190612467565b6305f5e100610ade91906124b1565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b139190612467565b6305f5e100610b2291906124b1565b604051610b2f91906121dd565b60405180910390a1565b600d5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f554e490000000000000000000000000000000000000000000000000000000000815250905090565b5f610bbc610bb561116f565b8484611339565b6001905092915050565b600f5481565b610bd461116f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612693565b60405180910390fd5b601260149054906101000a900460ff1615610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca7906126fb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4c3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d389190612467565b6305f5e100610d4791906124b1565b611176565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda919061272d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e84919061272d565b6040518363ffffffff1660e01b8152600401610ea1929190612758565b6020604051808303815f875af1158015610ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee1919061272d565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f68306108ab565b5f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610fae969594939291906127b8565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612817565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612867565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf919061261e565b506001601260146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061298c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161132c91906121dd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612a1a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612aa8565b60405180910390fd5b5f601260149054906101000a900460ff168015611479575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114cc575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118c65760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561157a575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115cd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116c557600d54821115611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612b10565b60405180910390fd5b600e5482611624856108ab565b61162e9190612b2e565b111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612bab565b60405180910390fd5b6116ab606461169d600954600c541161168a5760055461168e565b6007545b85611bd890919063ffffffff16565b611c4f90919063ffffffff16565b9050600c5f8154809291906116bf90612bc9565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117915761178e6064611780600a54600c541161176d57600654611771565b6008545b85611bd890919063ffffffff16565b611c4f90919063ffffffff16565b90505b5f61179b306108ab565b9050601260159054906101000a900460ff16158015611806575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118135750600f5481115b80156118225750600b54600c54115b156118c45761184461183f8461183a84601054611c98565b611c98565b611cb0565b5f47905066b1a2bc2ec500008111156118c2575f47905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156118bf573d5f803e3d5ffd5b50505b505b505b5f8111156119c55761191e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119bc91906121dd565b60405180910390a35b611a158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab8611a6c8284611f7890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5b8486611f7890919063ffffffff16565b604051611b6891906121dd565b60405180910390a350505050565b5f838311158290611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb491906120ac565b60405180910390fd5b505f8385611bcb9190612c10565b9050809150509392505050565b5f808303611be8575f9050611c49565b5f8284611bf591906124b1565b9050828482611c049190612c70565b14611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90612d10565b60405180910390fd5b809150505b92915050565b5f611c9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc1565b905092915050565b5f818311611ca65782611ca8565b815b905092915050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce757611ce6612d2e565b5b604051908082528060200260200182016040528015611d155781602001602082028036833780820191505090505b50905030815f81518110611d2c57611d2b612d5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df4919061272d565b81600181518110611e0857611e07612d5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611176565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ed0959493929190612e3f565b5f604051808303815f87803b158015611ee7575f80fd5b505af1158015611ef9573d5f803e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b5f808284611f299190612b2e565b905083811015611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6590612ee1565b60405180910390fd5b8091505092915050565b5f611fb983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b76565b905092915050565b5f8083118290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe91906120ac565b60405180910390fd5b505f83856120159190612c70565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561205957808201518184015260208101905061203e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207e82612022565b612088818561202c565b935061209881856020860161203c565b6120a181612064565b840191505092915050565b5f6020820190508181035f8301526120c48184612074565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120f9826120d0565b9050919050565b612109816120ef565b8114612113575f80fd5b50565b5f8135905061212481612100565b92915050565b5f819050919050565b61213c8161212a565b8114612146575f80fd5b50565b5f8135905061215781612133565b92915050565b5f8060408385031215612173576121726120cc565b5b5f61218085828601612116565b925050602061219185828601612149565b9150509250929050565b5f8115159050919050565b6121af8161219b565b82525050565b5f6020820190506121c85f8301846121a6565b92915050565b6121d78161212a565b82525050565b5f6020820190506121f05f8301846121ce565b92915050565b5f805f6060848603121561220d5761220c6120cc565b5b5f61221a86828701612116565b935050602061222b86828701612116565b925050604061223c86828701612149565b9150509250925092565b5f60ff82169050919050565b61225b81612246565b82525050565b5f6020820190506122745f830184612252565b92915050565b5f6020828403121561228f5761228e6120cc565b5b5f61229c84828501612116565b91505092915050565b6122ae816120ef565b82525050565b5f6020820190506122c75f8301846122a5565b92915050565b5f80604083850312156122e3576122e26120cc565b5b5f6122f085828601612116565b925050602061230185828601612116565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561238d578086048111156123695761236861230b565b5b60018516156123785780820291505b808102905061238685612338565b945061234d565b94509492505050565b5f826123a55760019050612460565b816123b2575f9050612460565b81600181146123c857600281146123d257612401565b6001915050612460565b60ff8411156123e4576123e361230b565b5b8360020a9150848211156123fb576123fa61230b565b5b50612460565b5060208310610133831016604e8410600b84101617156124365782820a9050838111156124315761243061230b565b5b612460565b6124438484846001612344565b9250905081840481111561245a5761245961230b565b5b81810290505b9392505050565b5f6124718261212a565b915061247c83612246565b92506124a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612396565b905092915050565b5f6124bb8261212a565b91506124c68361212a565b92508282026124d48161212a565b915082820484148315176124eb576124ea61230b565b5b5092915050565b5f81905092915050565b50565b5f61250a5f836124f2565b9150612515826124fc565b5f82019050919050565b5f612529826124ff565b9150819050919050565b5f8151905061254181612133565b92915050565b5f6020828403121561255c5761255b6120cc565b5b5f61256984828501612533565b91505092915050565b5f819050919050565b5f61259561259061258b846120d0565b612572565b6120d0565b9050919050565b5f6125a68261257b565b9050919050565b5f6125b78261259c565b9050919050565b6125c7816125ad565b82525050565b5f6040820190506125e05f8301856125be565b6125ed60208301846121ce565b9392505050565b6125fd8161219b565b8114612607575f80fd5b50565b5f81519050612618816125f4565b92915050565b5f60208284031215612633576126326120cc565b5b5f6126408482850161260a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267d60208361202c565b915061268882612649565b602082019050919050565b5f6020820190508181035f8301526126aa81612671565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126e560178361202c565b91506126f0826126b1565b602082019050919050565b5f6020820190508181035f830152612712816126d9565b9050919050565b5f8151905061272781612100565b92915050565b5f60208284031215612742576127416120cc565b5b5f61274f84828501612719565b91505092915050565b5f60408201905061276b5f8301856122a5565b61277860208301846122a5565b9392505050565b5f819050919050565b5f6127a261279d6127988461277f565b612572565b61212a565b9050919050565b6127b281612788565b82525050565b5f60c0820190506127cb5f8301896122a5565b6127d860208301886121ce565b6127e560408301876127a9565b6127f260608301866127a9565b6127ff60808301856125be565b61280c60a08301846121ce565b979650505050505050565b5f805f6060848603121561282e5761282d6120cc565b5b5f61283b86828701612533565b935050602061284c86828701612533565b925050604061285d86828701612533565b9150509250925092565b5f60408201905061287a5f8301856122a5565b61288760208301846121ce565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128e860248361202c565b91506128f38261288e565b604082019050919050565b5f6020820190508181035f830152612915816128dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61297660228361202c565b91506129818261291c565b604082019050919050565b5f6020820190508181035f8301526129a38161296a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a0460258361202c565b9150612a0f826129aa565b604082019050919050565b5f6020820190508181035f830152612a31816129f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a9260238361202c565b9150612a9d82612a38565b604082019050919050565b5f6020820190508181035f830152612abf81612a86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612afa60198361202c565b9150612b0582612ac6565b602082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b5f612b388261212a565b9150612b438361212a565b9250828201905080821115612b5b57612b5a61230b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612b95601a8361202c565b9150612ba082612b61565b602082019050919050565b5f6020820190508181035f830152612bc281612b89565b9050919050565b5f612bd38261212a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c0557612c0461230b565b5b600182019050919050565b5f612c1a8261212a565b9150612c258361212a565b9250828203905081811115612c3d57612c3c61230b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c7a8261212a565b9150612c858361212a565b925082612c9557612c94612c43565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cfa60218361202c565b9150612d0582612ca0565b604082019050919050565b5f6020820190508181035f830152612d2781612cee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612dba816120ef565b82525050565b5f612dcb8383612db1565b60208301905092915050565b5f602082019050919050565b5f612ded82612d88565b612df78185612d92565b9350612e0283612da2565b805f5b83811015612e32578151612e198882612dc0565b9750612e2483612dd7565b925050600181019050612e05565b5085935050505092915050565b5f60a082019050612e525f8301886121ce565b612e5f60208301876127a9565b8181036040830152612e718186612de3565b9050612e8060608301856122a5565b612e8d60808301846121ce565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ecb601b8361202c565b9150612ed682612e97565b602082019050919050565b5f6020820190508181035f830152612ef881612ebf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee5c923c22cf608761eef6418811e470387bca92e732308fa74297dfee612ef264736f6c63430008170033
Deployed Bytecode Sourcemap
3910:7793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5935:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6768:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4982:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6212:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11124:203;;;;;;;;;;;;;:::i;:::-;;6937:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6121:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10831:285;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11339:148;;;;;;;;;;;;;:::i;:::-;;6315:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2991:148;;;;;;;;;;;;;:::i;:::-;;11495:205;;;;;;;;;;;;;:::i;:::-;;4795:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2777:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4855:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6026:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6442:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4917:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10128:658;;;:::i;:::-;;6617:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5935:83;5972:13;6005:5;;;;;;;;;;;;;;;;;5998:12;;5935:83;:::o;6768:161::-;6843:4;6860:39;6869:12;:10;:12::i;:::-;6883:7;6892:6;6860:8;:39::i;:::-;6917:4;6910:11;;6768:161;;;;:::o;4982:54::-;;;;:::o;6212:95::-;6265:7;4602:2;4660;:13;;;;:::i;:::-;4646:11;:27;;;;:::i;:::-;6285:14;;6212:95;:::o;11124:203::-;11189:17;;;;;;;;;;;11173:33;;:12;:10;:12::i;:::-;:33;;;11165:42;;;;;;11218:12;11262:17;;;;;;;;;;;11254:31;;11293:21;11254:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11241:78;;;;;11154:173;11124:203::o;6937:313::-;7035:4;7052:36;7062:6;7070:9;7081:6;7052:9;:36::i;:::-;7099:121;7108:6;7116:12;:10;:12::i;:::-;7130:89;7168:6;7130:89;;;;;;;;;;;;;;;;;:11;:19;7142:6;7130:19;;;;;;;;;;;;;;;:33;7150:12;:10;:12::i;:::-;7130:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7099:8;:121::i;:::-;7238:4;7231:11;;6937:313;;;;;:::o;6121:83::-;6162:5;4602:2;6180:16;;6121:83;:::o;10831:285::-;10886:10;10934:17;;;;;;;;;;;10918:33;;:12;:10;:12::i;:::-;:33;;;10910:42;;;;;;10963:24;10997:6;10990:24;;;11023:4;10990:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10963:66;;11055:6;11048:23;;;11072:17;;;;;;;;;;;11091:16;11048:60;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11040:68;;10899:217;10831:285;;;:::o;11339:148::-;11406:17;;;;;;;;;;;11390:33;;:12;:10;:12::i;:::-;:33;;;11382:42;;;;;;11450:1;11435:12;:16;;;;11478:1;11462:13;:17;;;;11339:148::o;6315:119::-;6381:7;6408:9;:18;6418:7;6408:18;;;;;;;;;;;;;;;;6401:25;;6315:119;;;:::o;2991:148::-;2914:12;:10;:12::i;:::-;2904:22;;:6;;;;;;;;;;:22;;;2896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3098:1:::1;3061:40;;3082:6;::::0;::::1;;;;;;;;3061:40;;;;;;;;;;;;3129:1;3112:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2991:148::o:0;11495:205::-;11563:17;;;;;;;;;;;11547:33;;:12;:10;:12::i;:::-;:33;;;11539:42;;;;;;4602:2;4660;:13;;;;:::i;:::-;4646:11;:27;;;;:::i;:::-;11592:12;:22;;;;4602:2;4660;:13;;;;:::i;:::-;4646:11;:27;;;;:::i;:::-;11625:14;:24;;;;11665:27;4602:2;4660;:13;;;;:::i;:::-;4646:11;:27;;;;:::i;:::-;11665;;;;;;:::i;:::-;;;;;;;;11495:205::o;4795:53::-;;;;:::o;2777:79::-;2815:7;2842:6;;;;;;;;;;;2835:13;;2777:79;:::o;4855:55::-;;;;:::o;6026:87::-;6065:13;6098:7;;;;;;;;;;;;;;;;;6091:14;;6026:87;:::o;6442:167::-;6520:4;6537:42;6547:12;:10;:12::i;:::-;6561:9;6572:6;6537:9;:42::i;:::-;6597:4;6590:11;;6442:167;;;;:::o;4917:58::-;;;;:::o;10128:658::-;2914:12;:10;:12::i;:::-;2904:22;;:6;;;;;;;;;;:22;;;2896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10198:11:::1;;;;;;;;;;;10197:12;10189:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10284:42;10247:15;;:80;;;;;;;;;;;;;;;;;;10338:58;10355:4;10370:15;;;;;;;;;;;4602:2;4660;:13;;;;:::i;:::-;4646:11;:27;;;;:::i;:::-;10338:8;:58::i;:::-;10441:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10423:55;;;10487:4;10494:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10423:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10407:13;;:110;;;;;;;;;;;;;;;;;;10528:15;;;;;;;;;;;:31;;;10567:21;10598:4;10604:24;10622:4;10604:9;:24::i;:::-;10629:1;10631::::0;10633:17:::1;;;;;;;;;;;10651:15;10528:139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10685:13;;;;;;;;;;;10678:29;;;10716:15;;;;;;;;;;;10734:14;10678:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10774:4;10760:11;;:18;;;;;;;;;;;;;;;;;;10128:658::o:0;6617:143::-;6698:7;6725:11;:18;6737:5;6725:18;;;;;;;;;;;;;;;:27;6744:7;6725:27;;;;;;;;;;;;;;;;6718:34;;6617:143;;;;:::o;532:98::-;585:7;612:10;605:17;;532:98;:::o;7258:335::-;7368:1;7351:19;;:5;:19;;;7343:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7449:1;7430:21;;:7;:21;;;7422:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7531:6;7501:11;:18;7513:5;7501:18;;;;;;;;;;;;;;;:27;7520:7;7501:27;;;;;;;;;;;;;;;:36;;;;7569:7;7553:32;;7562:5;7553:32;;;7578:6;7553:32;;;;;;:::i;:::-;;;;;;;;7258:335;;;:::o;7601:1922::-;7705:1;7689:18;;:4;:18;;;7681:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7782:1;7768:16;;:2;:16;;;7760:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7835:17;7871:11;;;;;;;;;;;:39;;;;;7888:18;:22;7907:2;7888:22;;;;;;;;;;;;;;;;;;;;;;;;;7886:24;7871:39;:69;;;;;7916:18;:24;7935:4;7916:24;;;;;;;;;;;;;;;;;;;;;;;;;7914:26;7871:69;7867:1290;;;7969:13;;;;;;;;;;;7961:21;;:4;:21;;;:55;;;;;8000:15;;;;;;;;;;;7986:30;;:2;:30;;;;7961:55;:83;;;;;8022:18;:22;8041:2;8022:22;;;;;;;;;;;;;;;;;;;;;;;;;8020:24;7961:83;7957:420;;;8084:12;;8074:6;:22;;8066:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8179:14;;8169:6;8153:13;8163:2;8153:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8145:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8255:76;8327:3;8255:67;8277:15;;8267:9;;:25;8266:55;;8307:14;;8266:55;;;8294:12;;8266:55;8255:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8243:88;;8350:9;;:11;;;;;;;;;:::i;:::-;;;;;;7957:420;8402:13;;;;;;;;;;;8396:19;;:2;:19;;;:44;;;;;8435:4;8419:21;;:4;:21;;;;8396:44;8393:175;;;8473:79;8548:3;8473:70;8495:16;;8485:9;;:26;8484:58;;8527:15;;8484:58;;;8513:13;;8484:58;8473:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8461:91;;8393:175;8584:28;8615:24;8633:4;8615:9;:24::i;:::-;8584:55;;8659:6;;;;;;;;;;;8658:7;:30;;;;;8675:13;;;;;;;;;;;8669:19;;:2;:19;;;8658:30;:74;;;;;8715:17;;8692:20;:40;8658:74;:108;;;;;8748:18;;8736:9;;:30;8658:108;8654:492;;;8787:67;8804:49;8808:6;8815:37;8819:20;8840:11;;8815:3;:37::i;:::-;8804:3;:49::i;:::-;8787:16;:67::i;:::-;8873:26;8902:21;8873:50;;8966:17;8945:18;:38;8942:189;;;9008:18;9029:21;9008:42;;9073:17;;;;;;;;;;;:26;;:38;9100:10;9073:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8985:146;8942:189;8768:378;8654:492;7942:1215;7867:1290;9182:1;9172:9;:11;9169:163;;;9224:39;9253:9;9224;:24;9242:4;9224:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9197:9;:24;9215:4;9197:24;;;;;;;;;;;;;;;:66;;;;9304:4;9281:39;;9290:4;9281:39;;;9310:9;9281:39;;;;;;:::i;:::-;;;;;;;;9169:163;9362:27;9382:6;9362:9;:15;9372:4;9362:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9344:9;:15;9354:4;9344:15;;;;;;;;;;;;;;;:45;;;;9416:40;9434:21;9445:9;9434:6;:10;;:21;;;;:::i;:::-;9416:9;:13;9426:2;9416:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9400:9;:13;9410:2;9400:13;;;;;;;;;;;;;;;:56;;;;9489:2;9474:41;;9483:4;9474:41;;;9493:21;9504:9;9493:6;:10;;:21;;;;:::i;:::-;9474:41;;;;;;:::i;:::-;;;;;;;;7670:1853;7601:1922;;;:::o;1669:190::-;1755:7;1788:1;1783;:6;;1791:12;1775:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1815:9;1831:1;1827;:5;;;;:::i;:::-;1815:17;;1850:1;1843:8;;;1669:190;;;;;:::o;1867:246::-;1925:7;1954:1;1949;:6;1945:47;;1979:1;1972:8;;;;1945:47;2002:9;2018:1;2014;:5;;;;:::i;:::-;2002:17;;2047:1;2042;2038;:5;;;;:::i;:::-;:10;2030:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2104:1;2097:8;;;1867:246;;;;;:::o;2121:132::-;2179:7;2206:39;2210:1;2213;2206:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2199:46;;2121:132;;;;:::o;9531:98::-;9588:7;9615:1;9613;:3;9612:9;;9620:1;9612:9;;;9618:1;9612:9;9605:16;;9531:98;;;;:::o;9637:483::-;5299:4;5290:6;;:13;;;;;;;;;;;;;;;;;;9715:21:::1;9753:1;9739:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9715:40;;9784:4;9766;9771:1;9766:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9810:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9800:4;9805:1;9800:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9843:62;9860:4;9875:15;;;;;;;;;;;9893:11;9843:8;:62::i;:::-;9916:15;;;;;;;;;;;:66;;;9997:11;10023:1;10039:4;10066;10086:15;9916:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9704:416;5335:5:::0;5326:6;;:14;;;;;;;;;;;;;;;;;;9637:483;:::o;1338:179::-;1396:7;1416:9;1432:1;1428;:5;;;;:::i;:::-;1416:17;;1457:1;1452;:6;;1444:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1508:1;1501:8;;;1338:179;;;;:::o;1525:136::-;1583:7;1610:43;1614:1;1617;1610:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1603:50;;1525:136;;;;:::o;2261:189::-;2347:7;2379:1;2375;:5;2382:12;2367:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2406:9;2422:1;2418;:5;;;;:::i;:::-;2406:17;;2441:1;2434:8;;;2261:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:147::-;9051:11;9088:3;9073:18;;8950:147;;;;:::o;9103:114::-;;:::o;9223:398::-;9382:3;9403:83;9484:1;9479:3;9403:83;:::i;:::-;9396:90;;9495:93;9584:3;9495:93;:::i;:::-;9613:1;9608:3;9604:11;9597:18;;9223:398;;;:::o;9627:379::-;9811:3;9833:147;9976:3;9833:147;:::i;:::-;9826:154;;9997:3;9990:10;;9627:379;;;:::o;10012:143::-;10069:5;10100:6;10094:13;10085:22;;10116:33;10143:5;10116:33;:::i;:::-;10012:143;;;;:::o;10161:351::-;10231:6;10280:2;10268:9;10259:7;10255:23;10251:32;10248:119;;;10286:79;;:::i;:::-;10248:119;10406:1;10431:64;10487:7;10478:6;10467:9;10463:22;10431:64;:::i;:::-;10421:74;;10377:128;10161:351;;;;:::o;10518:60::-;10546:3;10567:5;10560:12;;10518:60;;;:::o;10584:142::-;10634:9;10667:53;10685:34;10694:24;10712:5;10694:24;:::i;:::-;10685:34;:::i;:::-;10667:53;:::i;:::-;10654:66;;10584:142;;;:::o;10732:126::-;10782:9;10815:37;10846:5;10815:37;:::i;:::-;10802:50;;10732:126;;;:::o;10864:134::-;10922:9;10955:37;10986:5;10955:37;:::i;:::-;10942:50;;10864:134;;;:::o;11004:147::-;11099:45;11138:5;11099:45;:::i;:::-;11094:3;11087:58;11004:147;;:::o;11157:348::-;11286:4;11324:2;11313:9;11309:18;11301:26;;11337:79;11413:1;11402:9;11398:17;11389:6;11337:79;:::i;:::-;11426:72;11494:2;11483:9;11479:18;11470:6;11426:72;:::i;:::-;11157:348;;;;;:::o;11511:116::-;11581:21;11596:5;11581:21;:::i;:::-;11574:5;11571:32;11561:60;;11617:1;11614;11607:12;11561:60;11511:116;:::o;11633:137::-;11687:5;11718:6;11712:13;11703:22;;11734:30;11758:5;11734:30;:::i;:::-;11633:137;;;;:::o;11776:345::-;11843:6;11892:2;11880:9;11871:7;11867:23;11863:32;11860:119;;;11898:79;;:::i;:::-;11860:119;12018:1;12043:61;12096:7;12087:6;12076:9;12072:22;12043:61;:::i;:::-;12033:71;;11989:125;11776:345;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:173::-;13252:25;13248:1;13240:6;13236:14;13229:49;13112:173;:::o;13291:366::-;13433:3;13454:67;13518:2;13513:3;13454:67;:::i;:::-;13447:74;;13530:93;13619:3;13530:93;:::i;:::-;13648:2;13643:3;13639:12;13632:19;;13291:366;;;:::o;13663:419::-;13829:4;13867:2;13856:9;13852:18;13844:26;;13916:9;13910:4;13906:20;13902:1;13891:9;13887:17;13880:47;13944:131;14070:4;13944:131;:::i;:::-;13936:139;;13663:419;;;:::o;14088:143::-;14145:5;14176:6;14170:13;14161:22;;14192:33;14219:5;14192:33;:::i;:::-;14088:143;;;;:::o;14237:351::-;14307:6;14356:2;14344:9;14335:7;14331:23;14327:32;14324:119;;;14362:79;;:::i;:::-;14324:119;14482:1;14507:64;14563:7;14554:6;14543:9;14539:22;14507:64;:::i;:::-;14497:74;;14453:128;14237:351;;;;:::o;14594:332::-;14715:4;14753:2;14742:9;14738:18;14730:26;;14766:71;14834:1;14823:9;14819:17;14810:6;14766:71;:::i;:::-;14847:72;14915:2;14904:9;14900:18;14891:6;14847:72;:::i;:::-;14594:332;;;;;:::o;14932:85::-;14977:7;15006:5;14995:16;;14932:85;;;:::o;15023:158::-;15081:9;15114:61;15132:42;15141:32;15167:5;15141:32;:::i;:::-;15132:42;:::i;:::-;15114:61;:::i;:::-;15101:74;;15023:158;;;:::o;15187:147::-;15282:45;15321:5;15282:45;:::i;:::-;15277:3;15270:58;15187:147;;:::o;15340:823::-;15597:4;15635:3;15624:9;15620:19;15612:27;;15649:71;15717:1;15706:9;15702:17;15693:6;15649:71;:::i;:::-;15730:72;15798:2;15787:9;15783:18;15774:6;15730:72;:::i;:::-;15812:80;15888:2;15877:9;15873:18;15864:6;15812:80;:::i;:::-;15902;15978:2;15967:9;15963:18;15954:6;15902:80;:::i;:::-;15992:81;16068:3;16057:9;16053:19;16044:6;15992:81;:::i;:::-;16083:73;16151:3;16140:9;16136:19;16127:6;16083:73;:::i;:::-;15340:823;;;;;;;;;:::o;16169:663::-;16257:6;16265;16273;16322:2;16310:9;16301:7;16297:23;16293:32;16290:119;;;16328:79;;:::i;:::-;16290:119;16448:1;16473:64;16529:7;16520:6;16509:9;16505:22;16473:64;:::i;:::-;16463:74;;16419:128;16586:2;16612:64;16668:7;16659:6;16648:9;16644:22;16612:64;:::i;:::-;16602:74;;16557:129;16725:2;16751:64;16807:7;16798:6;16787:9;16783:22;16751:64;:::i;:::-;16741:74;;16696:129;16169:663;;;;;:::o;16838:332::-;16959:4;16997:2;16986:9;16982:18;16974:26;;17010:71;17078:1;17067:9;17063:17;17054:6;17010:71;:::i;:::-;17091:72;17159:2;17148:9;17144:18;17135:6;17091:72;:::i;:::-;16838:332;;;;;:::o;17176:223::-;17316:34;17312:1;17304:6;17300:14;17293:58;17385:6;17380:2;17372:6;17368:15;17361:31;17176:223;:::o;17405:366::-;17547:3;17568:67;17632:2;17627:3;17568:67;:::i;:::-;17561:74;;17644:93;17733:3;17644:93;:::i;:::-;17762:2;17757:3;17753:12;17746:19;;17405:366;;;:::o;17777:419::-;17943:4;17981:2;17970:9;17966:18;17958:26;;18030:9;18024:4;18020:20;18016:1;18005:9;18001:17;17994:47;18058:131;18184:4;18058:131;:::i;:::-;18050:139;;17777:419;;;:::o;18202:221::-;18342:34;18338:1;18330:6;18326:14;18319:58;18411:4;18406:2;18398:6;18394:15;18387:29;18202:221;:::o;18429:366::-;18571:3;18592:67;18656:2;18651:3;18592:67;:::i;:::-;18585:74;;18668:93;18757:3;18668:93;:::i;:::-;18786:2;18781:3;18777:12;18770:19;;18429:366;;;:::o;18801:419::-;18967:4;19005:2;18994:9;18990:18;18982:26;;19054:9;19048:4;19044:20;19040:1;19029:9;19025:17;19018:47;19082:131;19208:4;19082:131;:::i;:::-;19074:139;;18801:419;;;:::o;19226:224::-;19366:34;19362:1;19354:6;19350:14;19343:58;19435:7;19430:2;19422:6;19418:15;19411:32;19226:224;:::o;19456:366::-;19598:3;19619:67;19683:2;19678:3;19619:67;:::i;:::-;19612:74;;19695:93;19784:3;19695:93;:::i;:::-;19813:2;19808:3;19804:12;19797:19;;19456:366;;;:::o;19828:419::-;19994:4;20032:2;20021:9;20017:18;20009:26;;20081:9;20075:4;20071:20;20067:1;20056:9;20052:17;20045:47;20109:131;20235:4;20109:131;:::i;:::-;20101:139;;19828:419;;;:::o;20253:222::-;20393:34;20389:1;20381:6;20377:14;20370:58;20462:5;20457:2;20449:6;20445:15;20438:30;20253:222;:::o;20481:366::-;20623:3;20644:67;20708:2;20703:3;20644:67;:::i;:::-;20637:74;;20720:93;20809:3;20720:93;:::i;:::-;20838:2;20833:3;20829:12;20822:19;;20481:366;;;:::o;20853:419::-;21019:4;21057:2;21046:9;21042:18;21034:26;;21106:9;21100:4;21096:20;21092:1;21081:9;21077:17;21070:47;21134:131;21260:4;21134:131;:::i;:::-;21126:139;;20853:419;;;:::o;21278:175::-;21418:27;21414:1;21406:6;21402:14;21395:51;21278:175;:::o;21459:366::-;21601:3;21622:67;21686:2;21681:3;21622:67;:::i;:::-;21615:74;;21698:93;21787:3;21698:93;:::i;:::-;21816:2;21811:3;21807:12;21800:19;;21459:366;;;:::o;21831:419::-;21997:4;22035:2;22024:9;22020:18;22012:26;;22084:9;22078:4;22074:20;22070:1;22059:9;22055:17;22048:47;22112:131;22238:4;22112:131;:::i;:::-;22104:139;;21831:419;;;:::o;22256:191::-;22296:3;22315:20;22333:1;22315:20;:::i;:::-;22310:25;;22349:20;22367:1;22349:20;:::i;:::-;22344:25;;22392:1;22389;22385:9;22378:16;;22413:3;22410:1;22407:10;22404:36;;;22420:18;;:::i;:::-;22404:36;22256:191;;;;:::o;22453:176::-;22593:28;22589:1;22581:6;22577:14;22570:52;22453:176;:::o;22635:366::-;22777:3;22798:67;22862:2;22857:3;22798:67;:::i;:::-;22791:74;;22874:93;22963:3;22874:93;:::i;:::-;22992:2;22987:3;22983:12;22976:19;;22635:366;;;:::o;23007:419::-;23173:4;23211:2;23200:9;23196:18;23188:26;;23260:9;23254:4;23250:20;23246:1;23235:9;23231:17;23224:47;23288:131;23414:4;23288:131;:::i;:::-;23280:139;;23007:419;;;:::o;23432:233::-;23471:3;23494:24;23512:5;23494:24;:::i;:::-;23485:33;;23540:66;23533:5;23530:77;23527:103;;23610:18;;:::i;:::-;23527:103;23657:1;23650:5;23646:13;23639:20;;23432:233;;;:::o;23671:194::-;23711:4;23731:20;23749:1;23731:20;:::i;:::-;23726:25;;23765:20;23783:1;23765:20;:::i;:::-;23760:25;;23809:1;23806;23802:9;23794:17;;23833:1;23827:4;23824:11;23821:37;;;23838:18;;:::i;:::-;23821:37;23671:194;;;;:::o;23871:180::-;23919:77;23916:1;23909:88;24016:4;24013:1;24006:15;24040:4;24037:1;24030:15;24057:185;24097:1;24114:20;24132:1;24114:20;:::i;:::-;24109:25;;24148:20;24166:1;24148:20;:::i;:::-;24143:25;;24187:1;24177:35;;24192:18;;:::i;:::-;24177:35;24234:1;24231;24227:9;24222:14;;24057:185;;;;:::o;24248:220::-;24388:34;24384:1;24376:6;24372:14;24365:58;24457:3;24452:2;24444:6;24440:15;24433:28;24248:220;:::o;24474:366::-;24616:3;24637:67;24701:2;24696:3;24637:67;:::i;:::-;24630:74;;24713:93;24802:3;24713:93;:::i;:::-;24831:2;24826:3;24822:12;24815:19;;24474:366;;;:::o;24846:419::-;25012:4;25050:2;25039:9;25035:18;25027:26;;25099:9;25093:4;25089:20;25085:1;25074:9;25070:17;25063:47;25127:131;25253:4;25127:131;:::i;:::-;25119:139;;24846:419;;;:::o;25271:180::-;25319:77;25316:1;25309:88;25416:4;25413:1;25406:15;25440:4;25437:1;25430:15;25457:180;25505:77;25502:1;25495:88;25602:4;25599:1;25592:15;25626:4;25623:1;25616:15;25643:114;25710:6;25744:5;25738:12;25728:22;;25643:114;;;:::o;25763:184::-;25862:11;25896:6;25891:3;25884:19;25936:4;25931:3;25927:14;25912:29;;25763:184;;;;:::o;25953:132::-;26020:4;26043:3;26035:11;;26073:4;26068:3;26064:14;26056:22;;25953:132;;;:::o;26091:108::-;26168:24;26186:5;26168:24;:::i;:::-;26163:3;26156:37;26091:108;;:::o;26205:179::-;26274:10;26295:46;26337:3;26329:6;26295:46;:::i;:::-;26373:4;26368:3;26364:14;26350:28;;26205:179;;;;:::o;26390:113::-;26460:4;26492;26487:3;26483:14;26475:22;;26390:113;;;:::o;26539:732::-;26658:3;26687:54;26735:5;26687:54;:::i;:::-;26757:86;26836:6;26831:3;26757:86;:::i;:::-;26750:93;;26867:56;26917:5;26867:56;:::i;:::-;26946:7;26977:1;26962:284;26987:6;26984:1;26981:13;26962:284;;;27063:6;27057:13;27090:63;27149:3;27134:13;27090:63;:::i;:::-;27083:70;;27176:60;27229:6;27176:60;:::i;:::-;27166:70;;27022:224;27009:1;27006;27002:9;26997:14;;26962:284;;;26966:14;27262:3;27255:10;;26663:608;;;26539:732;;;;:::o;27277:831::-;27540:4;27578:3;27567:9;27563:19;27555:27;;27592:71;27660:1;27649:9;27645:17;27636:6;27592:71;:::i;:::-;27673:80;27749:2;27738:9;27734:18;27725:6;27673:80;:::i;:::-;27800:9;27794:4;27790:20;27785:2;27774:9;27770:18;27763:48;27828:108;27931:4;27922:6;27828:108;:::i;:::-;27820:116;;27946:72;28014:2;28003:9;27999:18;27990:6;27946:72;:::i;:::-;28028:73;28096:3;28085:9;28081:19;28072:6;28028:73;:::i;:::-;27277:831;;;;;;;;:::o;28114:177::-;28254:29;28250:1;28242:6;28238:14;28231:53;28114:177;:::o;28297:366::-;28439:3;28460:67;28524:2;28519:3;28460:67;:::i;:::-;28453:74;;28536:93;28625:3;28536:93;:::i;:::-;28654:2;28649:3;28645:12;28638:19;;28297:366;;;:::o;28669:419::-;28835:4;28873:2;28862:9;28858:18;28850:26;;28922:9;28916:4;28912:20;28908:1;28897:9;28893:17;28886:47;28950:131;29076:4;28950:131;:::i;:::-;28942:139;;28669:419;;;:::o
Swarm Source
ipfs://ee5c923c22cf608761eef6418811e470387bca92e732308fa74297dfee612ef2
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.