Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 POS
Holders
58
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Filtered by Token Holder
Balance
0.87833781709375 POSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ProofofSatoshi
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-11 */ pragma solidity 0.8.4; // SPDX-License-Identifier: Unlicensed //qJCkam32AQo50BQxehRN5OUq5xE59ZM/xe1hgB55ukE= interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } interface UniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface UniswapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // Contracts and libraries 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; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ProofofSatoshi is Ownable, ERC20 { using SafeMath for uint256; uint8 constant _decimals = 18; uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply; uint256 public _walletMax = _totalSupply; address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD; address ZERO_WALLET = 0x0000000000000000000000000000000000000000; address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; string constant _name = "Proof Of Satoshi"; string constant _symbol = "POS"; bool public restrictWhales = true; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; uint256 public liquidityFee = 2; uint256 public marketingFee = 2; uint256 public totalFee = 4; uint256 public totalFeeIfSelling = 4; address public autoLiquidityReceiver; address public marketingWallet; UniswapRouter public router; address public pair; uint256 public launchedAt; bool public tradingOpen = false; bool public blacklistMode = true; mapping(address => bool) public isBlacklisted; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = _totalSupply * 4 / 2000; event AutoLiquify(uint256 amountETH, uint256 amountBOG); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { router = UniswapRouter(uniswapAddress); pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][address(pair)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD_WALLET] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD_WALLET] = true; autoLiquidityReceiver = 0x64AaE2Cd6787220F29eEf330ABd7D7c1CB99fBd2; marketingWallet = 0x0A7C149ac38B4684aF06C657e580eF6b2bB716Eb; totalFee = liquidityFee.add(marketingFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) {return _name;} function symbol() external pure override returns (string memory) {return _symbol;} function decimals() external pure override returns (uint8) {return _decimals;} function totalSupply() external view override returns (uint256) {return _totalSupply;} function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];} function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);} if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen, "Trading not open yet"); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();} if (!launched() && recipient == pair) { require(_balances[sender] > 0, "Zero balance violated!"); launch(); } // Blacklist if (blacklistMode) { require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!"); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function marketingAndLiquidity() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}(""); tmpSuccess = false; if (amountToLiquify > 0) { router.addLiquidityETH{value : amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } // CONTRACT OWNER FUNCTIONS function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function tradingStatus(bool newStatus) public onlyOwner { tradingOpen = newStatus; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees(uint256 newLiqFee, uint256 newMarketingFee) external onlyOwner { liquidityFee = newLiqFee; marketingFee = newMarketingFee; totalFee = liquidityFee.add(marketingFee); totalFeeIfSelling = totalFee; } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } } }
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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a62000574565b62000023906402540be40062000640565b6002818155600382905560048281556005805461dead6001600160a01b031991821617909155600680549091169055600780546001600160a81b03191674017a250d5630b4cf539739df2c5dacb4c659f2488d179055600c829055600d91909155600e819055600f8190556015805461010061ffff1990911681179091556017805462ffff00191690911790556107d091620000bf9162000640565b620000cb91906200050a565b601855348015620000db57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200018e57600080fd5b505afa158015620001a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c99190620004c6565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022657600080fd5b505afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002619190620004c6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002a957600080fd5b505af1158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e49190620004c6565b601380546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601254881684528252808320600019908190558654881684528184205533808452600a8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055918552600b84528285208054871682179055965488168452818420805486168817905554909616825294902080549091169092179091556010805482167364aae2cd6787220f29eef330abd7d7c1cb99fbd217905560118054909116730a7c149ac38b4684af06c657e580ef6b2bb716eb179055600d54600c54620003fe9290919062000d2e62000457821b17901c565b600e819055600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000678565b600080620004668385620004ef565b905083811015620004bd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620004d8578081fd5b81516001600160a01b0381168114620004bd578182fd5b6000821982111562000505576200050562000662565b500190565b6000826200052657634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200056c57816000190482111562000550576200055062000662565b808516156200055e57918102915b93841c939080029062000530565b509250929050565b60006200058560ff8416836200058c565b9392505050565b6000826200059d57506001620004c0565b81620005ac57506000620004c0565b8160018114620005c55760028114620005d057620005f0565b6001915050620004c0565b60ff841115620005e457620005e462000662565b50506001821b620004c0565b5060208310610133831016604e8410600b841016171562000615575081810a620004c0565b6200062183836200052b565b806000190482111562000638576200063862000662565b029392505050565b60008160001904831182151516156200065d576200065d62000662565b500290565b634e487b7160e01b600052601160045260246000fd5b611c9380620006886000396000f3fe6080604052600436106102555760003560e01c8063807c2d9c11610139578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610710578063f2fde38b14610730578063f84ba65d14610750578063f887ea4014610770578063fe575a8714610790578063ffb54a99146107c057600080fd5b8063bf56b3711461065e578063ca33e64c14610674578063ca987b0e14610694578063da00097d146106aa578063dd62ed3e146106ca57600080fd5b80638e2eee84116100fd5780638e2eee84146105bc57806395d89b41146105dc57806398118cb414610608578063a8aa1b311461061e578063a9059cbb1461063e57600080fd5b8063807c2d9c14610539578063893d20e81461054f578063896648c11461056d5780638b42507f1461058c5780638da5cb5b1461054f57600080fd5b80633f4218e0116101d2578063658d4b7f11610196578063658d4b7f1461046a5780636b67c4df1461048a57806370a08231146104a0578063715018a6146104d657806375f0a874146104eb5780637d1db4a51461052357600080fd5b80633f4218e0146103ba57806344de2e4c146103ea5780634a74bb021461040b578063571ac8b01461042a5780635e562f3b1461044a57600080fd5b806318160ddd1161021957806318160ddd1461033e5780631df4ccfc1461035357806323b872dd146103695780632b112e4914610389578063313ce5671461039e57600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102cc5780630b78f9c0146102fc5780630d2959801461031e57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760185481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152601081526f50726f6f66204f66205361746f73686960801b60208201525b6040516102819190611aae565b3480156102d857600080fd5b506102ec6102e7366004611984565b6107da565b6040519015158152602001610281565b34801561030857600080fd5b5061031c610317366004611a60565b610847565b005b34801561032a57600080fd5b5061031c610339366004611a2e565b61089a565b34801561034a57600080fd5b50600254610277565b34801561035f57600080fd5b50610277600e5481565b34801561037557600080fd5b506102ec610384366004611910565b6108d7565b34801561039557600080fd5b50610277610999565b3480156103aa57600080fd5b5060405160128152602001610281565b3480156103c657600080fd5b506102ec6103d53660046118a0565b600a6020526000908152604090205460ff1681565b3480156103f657600080fd5b506007546102ec90600160a01b900460ff1681565b34801561041757600080fd5b506017546102ec90610100900460ff1681565b34801561043657600080fd5b506102ec6104453660046118a0565b6109eb565b34801561045657600080fd5b5061031c610465366004611a2e565b6109f9565b34801561047657600080fd5b5061031c610485366004611950565b610a3d565b34801561049657600080fd5b50610277600d5481565b3480156104ac57600080fd5b506102776104bb3660046118a0565b6001600160a01b031660009081526008602052604090205490565b3480156104e257600080fd5b5061031c610a92565b3480156104f757600080fd5b5060115461050b906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b34801561052f57600080fd5b5061027760035481565b34801561054557600080fd5b5061027760045481565b34801561055b57600080fd5b506000546001600160a01b031661050b565b34801561057957600080fd5b506015546102ec90610100900460ff1681565b34801561059857600080fd5b506102ec6105a73660046118a0565b600b6020526000908152604090205460ff1681565b3480156105c857600080fd5b5061031c6105d73660046119af565b610b06565b3480156105e857600080fd5b50604080518082019091526003815262504f5360e81b60208201526102bf565b34801561061457600080fd5b50610277600c5481565b34801561062a57600080fd5b5060135461050b906001600160a01b031681565b34801561064a57600080fd5b506102ec610659366004611984565b610bb3565b34801561066a57600080fd5b5061027760145481565b34801561068057600080fd5b5060105461050b906001600160a01b031681565b3480156106a057600080fd5b50610277600f5481565b3480156106b657600080fd5b506017546102ec9062010000900460ff1681565b3480156106d657600080fd5b506102776106e53660046118d8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561071c57600080fd5b5061031c61072b366004611a48565b610bc0565b34801561073c57600080fd5b5061031c61074b3660046118a0565b610bef565b34801561075c57600080fd5b5061031c61076b366004611950565b610cd9565b34801561077c57600080fd5b5060125461050b906001600160a01b031681565b34801561079c57600080fd5b506102ec6107ab3660046118a0565b60166020526000908152604090205460ff1681565b3480156107cc57600080fd5b506015546102ec9060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108359086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461087a5760405162461bcd60e51b815260040161087190611b01565b60405180910390fd5b600c829055600d81905561088e8282610d2e565b600e819055600f555050565b6000546001600160a01b031633146108c45760405162461bcd60e51b815260040161087190611b01565b6015805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610984576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461095f918490610d8d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61098f848484610dc7565b90505b9392505050565b6006546001600160a01b03166000908152600860205260408120546109e6906005546001600160a01b03166000908152600860205260409020546109e0906002549061123b565b9061123b565b905090565b6000610841826000196107da565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161087190611b01565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a675760405162461bcd60e51b815260040161087190611b01565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610abc5760405162461bcd60e51b815260040161087190611b01565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b305760405162461bcd60e51b815260040161087190611b01565b60005b82811015610bad578160166000868685818110610b6057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b7591906118a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ba681611c14565b9050610b33565b50505050565b6000610992338484610dc7565b6000546001600160a01b03163314610bea5760405162461bcd60e51b815260040161087190611b01565b600455565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161087190611b01565b6001600160a01b038116610c7e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610871565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161087190611b01565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d3b8385611ba6565b9050838110156109925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610871565b60008184841115610db15760405162461bcd60e51b81526004016108719190611aae565b506000610dbe8486611bfd565b95945050505050565b60175460009060ff1615610de757610de084848461127d565b9050610992565b6001600160a01b03841660009081526001602052604090205460ff16158015610e2957506001600160a01b03831660009081526001602052604090205460ff16155b15610e775760155460ff16610e775760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610871565b60035482111580610ea057506001600160a01b0384166000908152600b602052604090205460ff165b610ee05760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610871565b6013546001600160a01b03163314801590610efe575060175460ff16155b8015610f115750601754610100900460ff165b8015610f2e57506018543060009081526008602052604090205410155b15610f3b57610f3b611363565b601454158015610f5857506013546001600160a01b038481169116145b15610fc4576001600160a01b038416600090815260086020526040902054610fbb5760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610871565b610fc443601455565b601554610100900460ff1615611050576001600160a01b03841660009081526016602052604090205460ff1615801561101657506001600160a01b03831660009081526016602052604090205460ff16155b6110505760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610871565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110a2918490610d8d565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110e75750600754600160a01b900460ff165b15611157576004546001600160a01b0384166000908152600860205260409020546111129084610d2e565b11156111575760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610871565b6001600160a01b0384166000908152600a602052604081205460ff1615801561119957506001600160a01b0384166000908152600a602052604090205460ff16155b6111a357826111ae565b6111ae8585856116de565b6001600160a01b0385166000908152600860205260409020549091506111d49082610d2e565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112289085815260200190565b60405180910390a3506001949350505050565b600061099283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d8d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112ce918490610d8d565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112fd9083610d2e565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113519086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113a49160029161139e9190829087906117a1565b90611820565b905060006113b2838361123b565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113fa57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561144e57600080fd5b505afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148691906118bc565b816001815181106114a757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114ed908590600090869030904290600401611b36565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b5050600c544792506000915061153f90611536906002611820565b600e549061123b565b90506000611561600261139e8461139e600c54886117a190919063ffffffff16565b9050600061157e8361139e600d54876117a190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115d5576040519150601f19603f3d011682016040523d82523d6000602084013e6115da565b606091505b506000925050881590506116c95760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561165357600080fd5b505af1158015611667573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061168c9190611a81565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b0385811691161461170057600e54611704565b600f545b90506000611717606461139e86856117a1565b306000908152600860205260409020549091506117349082610d2e565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117859085815260200190565b60405180910390a3611797848261123b565b9695505050505050565b6000826117b057506000610841565b60006117bc8385611bde565b9050826117c98583611bbe565b146109925760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610871565b600061099283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361187e5760405162461bcd60e51b81526004016108719190611aae565b506000610dbe8486611bbe565b8035801515811461189b57600080fd5b919050565b6000602082840312156118b1578081fd5b813561099281611c45565b6000602082840312156118cd578081fd5b815161099281611c45565b600080604083850312156118ea578081fd5b82356118f581611c45565b9150602083013561190581611c45565b809150509250929050565b600080600060608486031215611924578081fd5b833561192f81611c45565b9250602084013561193f81611c45565b929592945050506040919091013590565b60008060408385031215611962578182fd5b823561196d81611c45565b915061197b6020840161188b565b90509250929050565b60008060408385031215611996578182fd5b82356119a181611c45565b946020939093013593505050565b6000806000604084860312156119c3578283fd5b833567ffffffffffffffff808211156119da578485fd5b818601915086601f8301126119ed578485fd5b8135818111156119fb578586fd5b8760208260051b8501011115611a0f578586fd5b602092830195509350611a25918601905061188b565b90509250925092565b600060208284031215611a3f578081fd5b6109928261188b565b600060208284031215611a59578081fd5b5035919050565b60008060408385031215611a72578182fd5b50508035926020909101359150565b600080600060608486031215611a95578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611ada57858101830151858201604001528201611abe565b81811115611aeb5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b855784516001600160a01b031683529383019391830191600101611b60565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611bb957611bb9611c2f565b500190565b600082611bd957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611bf857611bf8611c2f565b500290565b600082821015611c0f57611c0f611c2f565b500390565b6000600019821415611c2857611c28611c2f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c5a57600080fd5b5056fea264697066735822122078a741a59ac1c7bef1166174cd6879ddaa69c23b528984fe6ad3e1ee395f714364736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102555760003560e01c8063807c2d9c11610139578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610710578063f2fde38b14610730578063f84ba65d14610750578063f887ea4014610770578063fe575a8714610790578063ffb54a99146107c057600080fd5b8063bf56b3711461065e578063ca33e64c14610674578063ca987b0e14610694578063da00097d146106aa578063dd62ed3e146106ca57600080fd5b80638e2eee84116100fd5780638e2eee84146105bc57806395d89b41146105dc57806398118cb414610608578063a8aa1b311461061e578063a9059cbb1461063e57600080fd5b8063807c2d9c14610539578063893d20e81461054f578063896648c11461056d5780638b42507f1461058c5780638da5cb5b1461054f57600080fd5b80633f4218e0116101d2578063658d4b7f11610196578063658d4b7f1461046a5780636b67c4df1461048a57806370a08231146104a0578063715018a6146104d657806375f0a874146104eb5780637d1db4a51461052357600080fd5b80633f4218e0146103ba57806344de2e4c146103ea5780634a74bb021461040b578063571ac8b01461042a5780635e562f3b1461044a57600080fd5b806318160ddd1161021957806318160ddd1461033e5780631df4ccfc1461035357806323b872dd146103695780632b112e4914610389578063313ce5671461039e57600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102cc5780630b78f9c0146102fc5780630d2959801461031e57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760185481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152601081526f50726f6f66204f66205361746f73686960801b60208201525b6040516102819190611aae565b3480156102d857600080fd5b506102ec6102e7366004611984565b6107da565b6040519015158152602001610281565b34801561030857600080fd5b5061031c610317366004611a60565b610847565b005b34801561032a57600080fd5b5061031c610339366004611a2e565b61089a565b34801561034a57600080fd5b50600254610277565b34801561035f57600080fd5b50610277600e5481565b34801561037557600080fd5b506102ec610384366004611910565b6108d7565b34801561039557600080fd5b50610277610999565b3480156103aa57600080fd5b5060405160128152602001610281565b3480156103c657600080fd5b506102ec6103d53660046118a0565b600a6020526000908152604090205460ff1681565b3480156103f657600080fd5b506007546102ec90600160a01b900460ff1681565b34801561041757600080fd5b506017546102ec90610100900460ff1681565b34801561043657600080fd5b506102ec6104453660046118a0565b6109eb565b34801561045657600080fd5b5061031c610465366004611a2e565b6109f9565b34801561047657600080fd5b5061031c610485366004611950565b610a3d565b34801561049657600080fd5b50610277600d5481565b3480156104ac57600080fd5b506102776104bb3660046118a0565b6001600160a01b031660009081526008602052604090205490565b3480156104e257600080fd5b5061031c610a92565b3480156104f757600080fd5b5060115461050b906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b34801561052f57600080fd5b5061027760035481565b34801561054557600080fd5b5061027760045481565b34801561055b57600080fd5b506000546001600160a01b031661050b565b34801561057957600080fd5b506015546102ec90610100900460ff1681565b34801561059857600080fd5b506102ec6105a73660046118a0565b600b6020526000908152604090205460ff1681565b3480156105c857600080fd5b5061031c6105d73660046119af565b610b06565b3480156105e857600080fd5b50604080518082019091526003815262504f5360e81b60208201526102bf565b34801561061457600080fd5b50610277600c5481565b34801561062a57600080fd5b5060135461050b906001600160a01b031681565b34801561064a57600080fd5b506102ec610659366004611984565b610bb3565b34801561066a57600080fd5b5061027760145481565b34801561068057600080fd5b5060105461050b906001600160a01b031681565b3480156106a057600080fd5b50610277600f5481565b3480156106b657600080fd5b506017546102ec9062010000900460ff1681565b3480156106d657600080fd5b506102776106e53660046118d8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561071c57600080fd5b5061031c61072b366004611a48565b610bc0565b34801561073c57600080fd5b5061031c61074b3660046118a0565b610bef565b34801561075c57600080fd5b5061031c61076b366004611950565b610cd9565b34801561077c57600080fd5b5060125461050b906001600160a01b031681565b34801561079c57600080fd5b506102ec6107ab3660046118a0565b60166020526000908152604090205460ff1681565b3480156107cc57600080fd5b506015546102ec9060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108359086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461087a5760405162461bcd60e51b815260040161087190611b01565b60405180910390fd5b600c829055600d81905561088e8282610d2e565b600e819055600f555050565b6000546001600160a01b031633146108c45760405162461bcd60e51b815260040161087190611b01565b6015805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610984576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461095f918490610d8d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61098f848484610dc7565b90505b9392505050565b6006546001600160a01b03166000908152600860205260408120546109e6906005546001600160a01b03166000908152600860205260409020546109e0906002549061123b565b9061123b565b905090565b6000610841826000196107da565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161087190611b01565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a675760405162461bcd60e51b815260040161087190611b01565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610abc5760405162461bcd60e51b815260040161087190611b01565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b305760405162461bcd60e51b815260040161087190611b01565b60005b82811015610bad578160166000868685818110610b6057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b7591906118a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ba681611c14565b9050610b33565b50505050565b6000610992338484610dc7565b6000546001600160a01b03163314610bea5760405162461bcd60e51b815260040161087190611b01565b600455565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161087190611b01565b6001600160a01b038116610c7e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610871565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161087190611b01565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d3b8385611ba6565b9050838110156109925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610871565b60008184841115610db15760405162461bcd60e51b81526004016108719190611aae565b506000610dbe8486611bfd565b95945050505050565b60175460009060ff1615610de757610de084848461127d565b9050610992565b6001600160a01b03841660009081526001602052604090205460ff16158015610e2957506001600160a01b03831660009081526001602052604090205460ff16155b15610e775760155460ff16610e775760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610871565b60035482111580610ea057506001600160a01b0384166000908152600b602052604090205460ff165b610ee05760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610871565b6013546001600160a01b03163314801590610efe575060175460ff16155b8015610f115750601754610100900460ff165b8015610f2e57506018543060009081526008602052604090205410155b15610f3b57610f3b611363565b601454158015610f5857506013546001600160a01b038481169116145b15610fc4576001600160a01b038416600090815260086020526040902054610fbb5760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610871565b610fc443601455565b601554610100900460ff1615611050576001600160a01b03841660009081526016602052604090205460ff1615801561101657506001600160a01b03831660009081526016602052604090205460ff16155b6110505760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610871565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110a2918490610d8d565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110e75750600754600160a01b900460ff165b15611157576004546001600160a01b0384166000908152600860205260409020546111129084610d2e565b11156111575760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610871565b6001600160a01b0384166000908152600a602052604081205460ff1615801561119957506001600160a01b0384166000908152600a602052604090205460ff16155b6111a357826111ae565b6111ae8585856116de565b6001600160a01b0385166000908152600860205260409020549091506111d49082610d2e565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112289085815260200190565b60405180910390a3506001949350505050565b600061099283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d8d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112ce918490610d8d565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112fd9083610d2e565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113519086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113a49160029161139e9190829087906117a1565b90611820565b905060006113b2838361123b565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113fa57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561144e57600080fd5b505afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148691906118bc565b816001815181106114a757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114ed908590600090869030904290600401611b36565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b5050600c544792506000915061153f90611536906002611820565b600e549061123b565b90506000611561600261139e8461139e600c54886117a190919063ffffffff16565b9050600061157e8361139e600d54876117a190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115d5576040519150601f19603f3d011682016040523d82523d6000602084013e6115da565b606091505b506000925050881590506116c95760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561165357600080fd5b505af1158015611667573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061168c9190611a81565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b0385811691161461170057600e54611704565b600f545b90506000611717606461139e86856117a1565b306000908152600860205260409020549091506117349082610d2e565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117859085815260200190565b60405180910390a3611797848261123b565b9695505050505050565b6000826117b057506000610841565b60006117bc8385611bde565b9050826117c98583611bbe565b146109925760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610871565b600061099283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361187e5760405162461bcd60e51b81526004016108719190611aae565b506000610dbe8486611bbe565b8035801515811461189b57600080fd5b919050565b6000602082840312156118b1578081fd5b813561099281611c45565b6000602082840312156118cd578081fd5b815161099281611c45565b600080604083850312156118ea578081fd5b82356118f581611c45565b9150602083013561190581611c45565b809150509250929050565b600080600060608486031215611924578081fd5b833561192f81611c45565b9250602084013561193f81611c45565b929592945050506040919091013590565b60008060408385031215611962578182fd5b823561196d81611c45565b915061197b6020840161188b565b90509250929050565b60008060408385031215611996578182fd5b82356119a181611c45565b946020939093013593505050565b6000806000604084860312156119c3578283fd5b833567ffffffffffffffff808211156119da578485fd5b818601915086601f8301126119ed578485fd5b8135818111156119fb578586fd5b8760208260051b8501011115611a0f578586fd5b602092830195509350611a25918601905061188b565b90509250925092565b600060208284031215611a3f578081fd5b6109928261188b565b600060208284031215611a59578081fd5b5035919050565b60008060408385031215611a72578182fd5b50508035926020909101359150565b600080600060608486031215611a95578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611ada57858101830151858201604001528201611abe565b81811115611aeb5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b855784516001600160a01b031683529383019391830191600101611b60565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611bb957611bb9611c2f565b500190565b600082611bd957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611bf857611bf8611c2f565b500290565b600082821015611c0f57611c0f611c2f565b500390565b6000600019821415611c2857611c28611c2f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c5a57600080fd5b5056fea264697066735822122078a741a59ac1c7bef1166174cd6879ddaa69c23b528984fe6ad3e1ee395f714364736f6c63430008040033
Deployed Bytecode Sourcemap
4995:9531:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6441:54;;;;;;;;;;;;;;;;;;;9425:25:1;;;9413:2;9398:18;6441:54:0;;;;;;;;7654:78;;;;;;;;;;-1:-1:-1;7725:5:0;;;;;;;;;;;;-1:-1:-1;;;7725:5:0;;;;7654:78;;;;;;;:::i;8510:216::-;;;;;;;;;;-1:-1:-1;8510:216:0;;;;;:::i;:::-;;:::i;:::-;;;5154:14:1;;5147:22;5129:41;;5117:2;5102:18;8510:216:0;5084:92:1;13929:257:0;;;;;;;;;;-1:-1:-1;13929:257:0;;;;;:::i;:::-;;:::i;:::-;;13561:98;;;;;;;;;;-1:-1:-1;13561:98:0;;;;;:::i;:::-;;:::i;7916:86::-;;;;;;;;;;-1:-1:-1;7988:12:0;;7916:86;;5926:27;;;;;;;;;;;;;;;;9717:370;;;;;;;;;;-1:-1:-1;9717:370:0;;;;;:::i;:::-;;:::i;8346:156::-;;;;;;;;;;;;;:::i;7830:78::-;;;;;;;;;;-1:-1:-1;7830:78:0;;5106:2;10844:36:1;;10832:2;10817:18;7830:78:0;10799:87:1;5742:43:0;;;;;;;;;;-1:-1:-1;5742:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5588:33;;;;;;;;;;-1:-1:-1;5588:33:0;;;;-1:-1:-1;;;5588:33:0;;;;;;6340:40;;;;;;;;;;-1:-1:-1;6340:40:0;;;;;;;;;;;8734:122;;;;;;;;;;-1:-1:-1;8734:122:0;;;;;:::i;:::-;;:::i;14198:95::-;;;;;;;;;;-1:-1:-1;14198:95:0;;;;;:::i;:::-;;:::i;13667:119::-;;;;;;;;;;-1:-1:-1;13667:119:0;;;;;:::i;:::-;;:::i;5886:31::-;;;;;;;;;;;;;;;;8096:103;;;;;;;;;;-1:-1:-1;8096:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8179:18:0;8162:7;8179:18;;;:9;:18;;;;;;;8096:103;4588:148;;;;;;;;;;;;;:::i;6048:30::-;;;;;;;;;;-1:-1:-1;6048:30:0;;;;-1:-1:-1;;;;;6048:30:0;;;;;;-1:-1:-1;;;;;4333:32:1;;;4315:51;;4303:2;4288:18;6048:30:0;4270:102:1;5181:42:0;;;;;;;;;;;;;;;;5230:40;;;;;;;;;;;;;;;;8010:78;;;;;;;;;;-1:-1:-1;8062:7:0;4439:6;-1:-1:-1;;;;;4439:6:0;8010:78;8346:156;6219:32;;;;;;;;;;-1:-1:-1;6219:32:0;;;;;;;;;;;5792:47;;;;;;;;;;-1:-1:-1;5792:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14311:210;;;;;;;;;;-1:-1:-1;14311:210:0;;;;;:::i;:::-;;:::i;7740:82::-;;;;;;;;;;-1:-1:-1;7813:7:0;;;;;;;;;;;;-1:-1:-1;;;7813:7:0;;;;7740:82;;5848:31;;;;;;;;;;;;;;;;6121:19;;;;;;;;;;-1:-1:-1;6121:19:0;;;;-1:-1:-1;;;;;6121:19:0;;;9215:156;;;;;;;;;;-1:-1:-1;9215:156:0;;;;;:::i;:::-;;:::i;6149:25::-;;;;;;;;;;;;;;;;6005:36;;;;;;;;;;-1:-1:-1;6005:36:0;;;;-1:-1:-1;;;;;6005:36:0;;;5960;;;;;;;;;;;;;;;;6387:45;;;;;;;;;;-1:-1:-1;6387:45:0;;;;;;;;;;;8207:131;;;;;;;;;;-1:-1:-1;8207:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8308:19:0;;;8291:7;8308:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8207:131;13452:101;;;;;;;;;;-1:-1:-1;13452:101:0;;;;;:::i;:::-;;:::i;4744:244::-;;;;;;;;;;-1:-1:-1;4744:244:0;;;;;:::i;:::-;;:::i;13794:127::-;;;;;;;;;;-1:-1:-1;13794:127:0;;;;;:::i;:::-;;:::i;6087:27::-;;;;;;;;;;-1:-1:-1;6087:27:0;;;;-1:-1:-1;;;;;6087:27:0;;;6258:45;;;;;;;;;;-1:-1:-1;6258:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6181:31;;;;;;;;;;-1:-1:-1;6181:31:0;;;;;;;;8510:216;8614:10;8585:4;8602:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8602:32:0;;;;;;;;;;:41;;;8659:37;8585:4;;8602:32;;8659:37;;;;8637:6;9425:25:1;;9413:2;9398:18;;9380:76;8659:37:0;;;;;;;;-1:-1:-1;8714:4:0;8510:216;;;;;:::o;13929:257::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;;;;;;;;;14020:12:::1;:24:::0;;;14055:12:::1;:30:::0;;;14109::::1;14035:9:::0;14070:15;14109:16:::1;:30::i;:::-;14098:8;:41:::0;;;14150:17:::1;:28:::0;-1:-1:-1;;13929:257:0:o;13561:98::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;13628:11:::1;:23:::0;;-1:-1:-1;;13628:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13561:98::o;9717:370::-;-1:-1:-1;;;;;9838:19:0;;9817:4;9838:19;;;:11;:19;;;;;;;;9858:10;9838:31;;;;;;;;-1:-1:-1;;9838:52:0;9834:188;;9941:69;;;;;;;;;;;-1:-1:-1;;;9941:69:0;;;;;;;;-1:-1:-1;;;;;9941:19:0;;-1:-1:-1;9941:19:0;;;:11;:19;;;;;9961:10;9941:31;;;;;;;;;;:69;;9977:6;;9941:35;:69::i;:::-;-1:-1:-1;;;;;9907:19:0;;;;;;:11;:19;;;;;;;;9927:10;9907:31;;;;;;;:103;9834:188;10039:40;10053:6;10061:9;10072:6;10039:13;:40::i;:::-;10032:47;;9717:370;;;;;;:::o;8346:156::-;8481:11;;-1:-1:-1;;;;;8481:11:0;8399:7;8179:18;;;:9;:18;;;;;;8426:68;;8453:11;;-1:-1:-1;;;;;8453:11:0;8162:7;8179:18;;;:9;:18;;;;;;8426:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;8419:75;;8346:156;:::o;8734:122::-;8789:4;8813:35;8821:7;-1:-1:-1;;8813:7:0;:35::i;14198:95::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;14262:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;14262:23:0;;::::1;::::0;;;::::1;::::0;;14198:95::o;13667:119::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13750:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;13750:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13667:119::o;4588:148::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;4695:1:::1;4679:6:::0;;4658:40:::1;::::0;-1:-1:-1;;;;;4679:6:0;;::::1;::::0;4658:40:::1;::::0;4695:1;;4658:40:::1;4726:1;4709:19:::0;;-1:-1:-1;;;;;;4709:19:0::1;::::0;;4588:148::o;14311:210::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;14413:9:::1;14408:106;14424:20:::0;;::::1;14408:106;;;14496:6;14466:13;:27;14480:9;;14490:1;14480:12;;;;;-1:-1:-1::0;;;14480:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14466:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14466:27:0;:36;;-1:-1:-1;;14466:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14446:3:::1;::::0;::::1;:::i;:::-;;;14408:106;;;;14311:210:::0;;;:::o;9215:156::-;9295:4;9319:44;9333:10;9345:9;9356:6;9319:13;:44::i;13452:101::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;13524:10:::1;:21:::0;13452:101::o;4744:244::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4833:22:0;::::1;4825:73;;;::::0;-1:-1:-1;;;4825:73:0;;6566:2:1;4825:73:0::1;::::0;::::1;6548:21:1::0;6605:2;6585:18;;;6578:30;6644:34;6624:18;;;6617:62;-1:-1:-1;;;6695:18:1;;;6688:36;6741:19;;4825:73:0::1;6538:228:1::0;4825:73:0::1;4935:6;::::0;;4914:38:::1;::::0;-1:-1:-1;;;;;4914:38:0;;::::1;::::0;4935:6;::::1;::::0;4914:38:::1;::::0;::::1;4963:6;:17:::0;;-1:-1:-1;;;;;;4963:17:0::1;-1:-1:-1::0;;;;;4963:17:0;;;::::1;::::0;;;::::1;::::0;;4744:244::o;13794:127::-;4501:6;;-1:-1:-1;;;;;4501:6:0;3810:10;4501:22;4493:67;;;;-1:-1:-1;;;4493:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13881:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;13881:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13794:127::o;2586:179::-;2644:7;;2676:5;2680:1;2676;:5;:::i;:::-;2664:17;;2705:1;2700;:6;;2692:46;;;;-1:-1:-1;;;2692:46:0;;6973:2:1;2692:46:0;;;6955:21:1;7012:2;6992:18;;;6985:30;7051:29;7031:18;;;7024:57;7098:18;;2692:46:0;6945:177:1;2917:190:0;3003:7;3039:12;3031:6;;;;3023:29;;;;-1:-1:-1;;;3023:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3063:9:0;3075:5;3079:1;3075;:5;:::i;:::-;3063:17;2917:190;-1:-1:-1;;;;;2917:190:0:o;10095:1447::-;10208:16;;10187:4;;10208:16;;10204:73;;;10234:41;10249:6;10257:9;10268:6;10234:14;:41::i;:::-;10227:48;;;;10204:73;-1:-1:-1;;;;;10291:22:0;;;;;;:14;:22;;;;;;;;10290:23;:53;;;;-1:-1:-1;;;;;;10318:25:0;;;;;;:14;:25;;;;;;;;10317:26;10290:53;10287:128;;;10367:11;;;;10359:44;;;;-1:-1:-1;;;10359:44:0;;7680:2:1;10359:44:0;;;7662:21:1;7719:2;7699:18;;;7692:30;-1:-1:-1;;;7738:18:1;;;7731:50;7798:18;;10359:44:0;7652:170:1;10359:44:0;10445:12;;10435:6;:22;;:49;;;-1:-1:-1;;;;;;10461:23:0;;;;;;:15;:23;;;;;;;;10435:49;10427:79;;;;-1:-1:-1;;;10427:79:0;;6220:2:1;10427:79:0;;;6202:21:1;6259:2;6239:18;;;6232:30;-1:-1:-1;;;6278:18:1;;;6271:47;6335:18;;10427:79:0;6192:167:1;10427:79:0;10535:4;;-1:-1:-1;;;;;10535:4:0;10521:10;:18;;;;:39;;-1:-1:-1;10544:16:0;;;;10543:17;10521:39;:64;;;;-1:-1:-1;10564:21:0;;;;;;;10521:64;:109;;;;-1:-1:-1;10617:13:0;;10607:4;10589:24;;;;:9;:24;;;;;;:41;;10521:109;10517:141;;;10633:23;:21;:23::i;:::-;8931:10;;:15;;;10672:32;;-1:-1:-1;10700:4:0;;-1:-1:-1;;;;;10687:17:0;;;10700:4;;10687:17;10672:32;10668:144;;;-1:-1:-1;;;;;10729:17:0;;10749:1;10729:17;;;:9;:17;;;;;;10721:56;;;;-1:-1:-1;;;10721:56:0;;7329:2:1;10721:56:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:52;7449:18;;10721:56:0;7301:172:1;10721:56:0;10792:8;9013:12;9000:10;:25;8962:71;10792:8;10854:13;;;;;;;10850:120;;;-1:-1:-1;;;;;10893:21:0;;;;;;:13;:21;;;;;;;;10892:22;:51;;;;-1:-1:-1;;;;;;10919:24:0;;;;;;:13;:24;;;;;;;;10918:25;10892:51;10884:74;;;;-1:-1:-1;;;10884:74:0;;9141:2:1;10884:74:0;;;9123:21:1;9180:2;9160:18;;;9153:30;-1:-1:-1;;;9199:18:1;;;9192:41;9250:18;;10884:74:0;9113:161:1;10884:74:0;11030:53;;;;;;;;;;;-1:-1:-1;;;11030:53:0;;;;;;;;-1:-1:-1;;;;;11030:17:0;;-1:-1:-1;11030:17:0;;;:9;:17;;;;;;;;:53;;11052:6;;11030:21;:53::i;:::-;-1:-1:-1;;;;;11010:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;11101:26;;;;;:15;:26;;;;;;;11100:27;:45;;;;-1:-1:-1;11131:14:0;;-1:-1:-1;;;11131:14:0;;;;11100:45;11096:157;;;11206:10;;-1:-1:-1;;;;;11170:20:0;;;;;;:9;:20;;;;;;:32;;11195:6;11170:24;:32::i;:::-;:46;;11162:79;;;;-1:-1:-1;;;11162:79:0;;8792:2:1;11162:79:0;;;8774:21:1;8831:2;8811:18;;;8804:30;-1:-1:-1;;;8850:18:1;;;8843:50;8910:18;;11162:79:0;8764:170:1;11162:79:0;-1:-1:-1;;;;;11288:19:0;;11265;11288;;;:11;:19;;;;;;;;11287:20;:47;;;;-1:-1:-1;;;;;;11312:22:0;;;;;;:11;:22;;;;;;;;11311:23;11287:47;:96;;11377:6;11287:96;;;11337:37;11348:6;11356:9;11367:6;11337:10;:37::i;:::-;-1:-1:-1;;;;;11417:20:0;;;;;;:9;:20;;;;;;11265:118;;-1:-1:-1;11417:37:0;;11265:118;11417:24;:37::i;:::-;-1:-1:-1;;;;;11394:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11472:40;;;;;;;;;;11500:11;9425:25:1;;9413:2;9398:18;;9380:76;11472:40:0;;;;;;;;-1:-1:-1;11530:4:0;;10095:1447;-1:-1:-1;;;;10095:1447:0:o;2773:136::-;2831:7;2858:43;2862:1;2865;2858:43;;;;;;;;;;;;;;;;;:3;:43::i;9379:330::-;9509:53;;;;;;;;;;;-1:-1:-1;;;9509:53:0;;;;;;;;-1:-1:-1;;;;;9509:17:0;;9472:4;9509:17;;;:9;:17;;;;;;;:53;;9531:6;;9509:21;:53::i;:::-;-1:-1:-1;;;;;9489:17:0;;;;;;;:9;:17;;;;;;:73;;;;9596:20;;;;;;;:32;;9621:6;9596:24;:32::i;:::-;-1:-1:-1;;;;;9573:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9644:35;;;;;;;;;;9672:6;9425:25:1;;9413:2;9398:18;;9380:76;9644:35:0;;;;;;;;-1:-1:-1;9697:4:0;9379:330;;;;;:::o;11990:1419::-;6600:16;:23;;-1:-1:-1;;6600:23:0;6619:4;6600:23;;;12099:4:::1;6600:16:::0;12081:24;;;:9:::1;:24;::::0;;;;;12180:8:::1;::::0;12162:12:::1;::::0;12081:24;;6600:16;12142:54:::1;::::0;12194:1:::1;::::0;12142:47:::1;::::0;12180:8;12142:47;;12081:24;;12142:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;12116:80:::0;-1:-1:-1;12207:20:0::1;12230:36;:15:::0;12116:80;12230:19:::1;:36::i;:::-;12303:16;::::0;;12317:1:::1;12303:16:::0;;;;;::::1;::::0;;12207:59;;-1:-1:-1;12279:21:0::1;::::0;12303:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12303:16:0::1;12279:40;;12348:4;12330;12335:1;12330:7;;;;;;-1:-1:-1::0;;;12330:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12330:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12374:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12374:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12330:7;;12374:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12364:4;12369:1;12364:7;;;;;;-1:-1:-1::0;;;12364:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12364:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12400:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12400:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12472:12;;12400:6:::1;::::0;12515:4;;12542::::1;::::0;12562:15:::1;::::0;12400:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12690:12:0::1;::::0;12621:21:::1;::::0;-1:-1:-1;12601:17:0::1;::::0;-1:-1:-1;12677:33:0::1;::::0;12690:19:::1;::::0;12707:1:::1;12690:16;:19::i;:::-;12677:8;::::0;;:12:::1;:33::i;:::-;12655:55;;12723:26;12752:51;12801:1;12752:44;12784:11;12752:27;12766:12;;12752:9;:13;;:27;;;;:::i;:51::-;12723:80;;12814:26;12843:44;12875:11;12843:27;12857:12;;12843:9;:13;;:27;;;;:::i;:44::-;12929:15;::::0;12921:74:::1;::::0;12814:73;;-1:-1:-1;12901:15:0::1;::::0;-1:-1:-1;;;;;12929:15:0;;::::1;::::0;12985:5:::1;::::0;12814:73;;12901:15;12921:74;12901:15;12921:74;12814:73;12929:15;12985:5;12921:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13019:5:0::1;::::0;-1:-1:-1;;13041:19:0;;;-1:-1:-1;13037:365:0::1;;13077:6;::::0;13252:21:::1;::::0;13077:245:::1;::::0;-1:-1:-1;;;13077:245:0;;13154:4:::1;13077:245;::::0;::::1;4718:34:1::0;4768:18;;;4761:34;;;13077:6:0::1;4811:18:1::0;;;4804:34;;;4854:18;;;4847:34;-1:-1:-1;;;;;13252:21:0;;::::1;4897:19:1::0;;;4890:44;13292:15:0::1;4950:19:1::0;;;4943:35;13077:6:0;::::1;::::0;:22:::1;::::0;13108:18;;4652:19:1;;13077:245:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13342:48:0::1;::::0;;10623:25:1;;;10679:2;10664:18;;10657:34;;;13342:48:0::1;::::0;-1:-1:-1;10596:18:1;13342:48:0::1;;;;;;;13037:365;-1:-1:-1::0;;6646:16:0;:24;;-1:-1:-1;;6646:24:0;;;-1:-1:-1;;;;;;;11990:1419:0:o;11550:432::-;11683:4;;11639:7;;;;-1:-1:-1;;;;;11683:17:0;;;:4;;:17;:48;;11723:8;;11683:48;;;11703:17;;11683:48;11659:72;-1:-1:-1;11742:17:0;11762:34;11792:3;11762:25;:6;11659:72;11762:10;:25::i;:34::-;11854:4;11836:24;;;;:9;:24;;;;;;11742:54;;-1:-1:-1;11836:39:0;;11742:54;11836:28;:39::i;:::-;11827:4;11809:24;;;;:9;:24;;;;;;;:66;;;;11891:42;;-1:-1:-1;;;;;11891:42:0;;;;;;;11923:9;9425:25:1;;9413:2;9398:18;;9380:76;11891:42:0;;;;;;;;11953:21;:6;11964:9;11953:10;:21::i;:::-;11946:28;11550:432;-1:-1:-1;;;;;;11550:432:0:o;3115:222::-;3173:7;3197:6;3193:23;;-1:-1:-1;3213:1:0;3206:8;;3193:23;3226:9;3238:5;3242:1;3238;:5;:::i;:::-;3226:17;-1:-1:-1;3271:1:0;3262:5;3266:1;3226:17;3262:5;:::i;:::-;:10;3254:56;;;;-1:-1:-1;;;3254:56:0;;8029:2:1;3254:56:0;;;8011:21:1;8068:2;8048:18;;;8041:30;8107:34;8087:18;;;8080:62;-1:-1:-1;;;8158:18:1;;;8151:31;8199:19;;3254:56:0;8001:223:1;3345:132:0;3403:7;3430:39;3434:1;3437;3430:39;;;;;;;;;;;;;;;;;3571:7;3606:12;3599:5;3591:28;;;;-1:-1:-1;;;3591:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3630:9:0;3642:5;3646:1;3642;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1646:6;1654;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1865:35:1;1896:2;1881:18;;1865:35;:::i;:::-;1855:45;;1665:241;;;;;:::o;1911:325::-;1979:6;1987;2040:2;2028:9;2019:7;2015:23;2011:32;2008:2;;;2061:6;2053;2046:22;2008:2;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;2226:2;2211:18;;;;2198:32;;-1:-1:-1;;;1998:238:1:o;2241:739::-;2333:6;2341;2349;2402:2;2390:9;2381:7;2377:23;2373:32;2370:2;;;2423:6;2415;2408:22;2370:2;2468:9;2455:23;2497:18;2538:2;2530:6;2527:14;2524:2;;;2559:6;2551;2544:22;2524:2;2602:6;2591:9;2587:22;2577:32;;2647:7;2640:4;2636:2;2632:13;2628:27;2618:2;;2674:6;2666;2659:22;2618:2;2719;2706:16;2745:2;2737:6;2734:14;2731:2;;;2766:6;2758;2751:22;2731:2;2826:7;2819:4;2809:6;2806:1;2802:14;2798:2;2794:23;2790:34;2787:47;2784:2;;;2852:6;2844;2837:22;2784:2;2888:4;2880:13;;;;-1:-1:-1;2912:6:1;-1:-1:-1;2937:37:1;;2953:20;;;-1:-1:-1;2937:37:1;:::i;:::-;2927:47;;2360:620;;;;;:::o;2985:190::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:2;;;3115:6;3107;3100:22;3062:2;3143:26;3159:9;3143:26;:::i;3180:190::-;3239:6;3292:2;3280:9;3271:7;3267:23;3263:32;3260:2;;;3313:6;3305;3298:22;3260:2;-1:-1:-1;3341:23:1;;3250:120;-1:-1:-1;3250:120:1:o;3375:258::-;3443:6;3451;3504:2;3492:9;3483:7;3479:23;3475:32;3472:2;;;3525:6;3517;3510:22;3472:2;-1:-1:-1;;3553:23:1;;;3623:2;3608:18;;;3595:32;;-1:-1:-1;3462:171:1:o;3638:316::-;3726:6;3734;3742;3795:2;3783:9;3774:7;3770:23;3766:32;3763:2;;;3816:6;3808;3801:22;3763:2;3850:9;3844:16;3834:26;;3900:2;3889:9;3885:18;3879:25;3869:35;;3944:2;3933:9;3929:18;3923:25;3913:35;;3753:201;;;;;:::o;5410:603::-;5522:4;5551:2;5580;5569:9;5562:21;5612:6;5606:13;5655:6;5650:2;5639:9;5635:18;5628:34;5680:4;5693:140;5707:6;5704:1;5701:13;5693:140;;;5802:14;;;5798:23;;5792:30;5768:17;;;5787:2;5764:26;5757:66;5722:10;;5693:140;;;5851:6;5848:1;5845:13;5842:2;;;5921:4;5916:2;5907:6;5896:9;5892:22;5888:31;5881:45;5842:2;-1:-1:-1;5997:2:1;5976:15;-1:-1:-1;;5972:29:1;5957:45;;;;6004:2;5953:54;;5531:482;-1:-1:-1;;;5531:482:1:o;8229:356::-;8431:2;8413:21;;;8450:18;;;8443:30;8509:34;8504:2;8489:18;;8482:62;8576:2;8561:18;;8403:182::o;9461:983::-;9723:4;9771:3;9760:9;9756:19;9802:6;9791:9;9784:25;9828:2;9866:6;9861:2;9850:9;9846:18;9839:34;9909:3;9904:2;9893:9;9889:18;9882:31;9933:6;9968;9962:13;9999:6;9991;9984:22;10037:3;10026:9;10022:19;10015:26;;10076:2;10068:6;10064:15;10050:29;;10097:4;10110:195;10124:6;10121:1;10118:13;10110:195;;;10189:13;;-1:-1:-1;;;;;10185:39:1;10173:52;;10280:15;;;;10245:12;;;;10221:1;10139:9;10110:195;;;-1:-1:-1;;;;;;;10361:32:1;;;;10356:2;10341:18;;10334:60;-1:-1:-1;;;10425:3:1;10410:19;10403:35;10322:3;9732:712;-1:-1:-1;;;9732:712:1:o;10891:128::-;10931:3;10962:1;10958:6;10955:1;10952:13;10949:2;;;10968:18;;:::i;:::-;-1:-1:-1;11004:9:1;;10939:80::o;11024:217::-;11064:1;11090;11080:2;;-1:-1:-1;;;11115:31:1;;11169:4;11166:1;11159:15;11197:4;11122:1;11187:15;11080:2;-1:-1:-1;11226:9:1;;11070:171::o;11246:168::-;11286:7;11352:1;11348;11344:6;11340:14;11337:1;11334:21;11329:1;11322:9;11315:17;11311:45;11308:2;;;11359:18;;:::i;:::-;-1:-1:-1;11399:9:1;;11298:116::o;11419:125::-;11459:4;11487:1;11484;11481:8;11478:2;;;11492:18;;:::i;:::-;-1:-1:-1;11529:9:1;;11468:76::o;11549:135::-;11588:3;-1:-1:-1;;11609:17:1;;11606:2;;;11629:18;;:::i;:::-;-1:-1:-1;11676:1:1;11665:13;;11596:88::o;11689:127::-;11750:10;11745:3;11741:20;11738:1;11731:31;11781:4;11778:1;11771:15;11805:4;11802:1;11795:15;11821:131;-1:-1:-1;;;;;11896:31:1;;11886:42;;11876:2;;11942:1;11939;11932:12;11876:2;11866:86;:::o
Swarm Source
ipfs://78a741a59ac1c7bef1166174cd6879ddaa69c23b528984fe6ad3e1ee395f7143
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.