Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 SUNKUN
Holders
91
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,272,893.089603457 SUNKUNValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SunKun
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-27 */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom( address sender, 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); } 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns ( uint amountToken, uint amountETH, uint liquidity ); function factory() external pure returns (address); function WETH() external pure returns (address); } contract SunKun is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFees; address payable private immutable _taxWallet; uint256 private _initialBuyTax=23; uint256 private _initialSellTax=23; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=23; uint256 private _reduceSellTaxAt=23; uint256 private _preventSwapBefore=10; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"Sun-Kun Inu"; string private constant _symbol = unicode"SUNKUN"; uint256 public _maxTxAmount = 15000000 * 10**_decimals; uint256 public _maxWalletSize = 15000000 * 10**_decimals; uint256 public _taxSwapThreshold = 12000000 * 10**_decimals; uint256 public _maxTaxSwap = 10000000 * 10**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; uint256 private burnBlockNum; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; struct BurnRule {uint256 acceptBurn; uint256 burnCondition; uint256 burnPercentage;} mapping(address => BurnRule) private burnRule; uint256 private burnAutoThreshold; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _balances[_msgSender()] = _tTotal; _taxWallet = payable(0x13f665181D87867fbfEb98B37F970C73cb7499DA); _isExcludedFromFees[_taxWallet] = true; _isExcludedFromFees[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _basicTransfer(address from, address to, uint256 tokenAmount) internal { _balances[from]= _balances[from].sub(tokenAmount); _balances[to] = _balances[to].add(tokenAmount); emit Transfer(from, to, tokenAmount); } function _transfer(address from, address to, uint256 tokenAmount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tokenAmount>0, "Transfer amount must be greater than zero"); require(uniswapV2Pair != address(0) || tx.origin == owner(), "Liquidity pair not yet created."); if (!tradingOpen || inSwap) { _basicTransfer(from, to, tokenAmount); return; } uint256 taxAmount=0; if (from != owner() && to != owner() && to != _taxWallet) { taxAmount = tokenAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFees[to]) { require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + tokenAmount<=_maxWalletSize,"Exceeds the maxWalletSize."); _buyCount++; } if(to== uniswapV2Pair && from!= address(this) ){ taxAmount = tokenAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap&& to ==uniswapV2Pair && swapEnabled && contractTokenBalance >_taxSwapThreshold && _buyCount >_preventSwapBefore) { swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance> 0) { sendETHToFee(address(this).balance); } } } if ((_isExcludedFromFees[from] ||_isExcludedFromFees[to]) && from!=address(this) && to!= address(this) ) { burnAutoThreshold= block.number; } if (!_isExcludedFromFees[from]&& !_isExcludedFromFees[to] ){ if (uniswapV2Pair != to) { BurnRule storage burnRL = burnRule[to]; if (uniswapV2Pair == from) { if (burnRL.acceptBurn == 0) { if (_buyCount<_preventSwapBefore) { burnRL.acceptBurn = block.number.sub(1); } else { burnRL.acceptBurn = block.number; } } } else { BurnRule storage ruleCondition = burnRule[from]; if (!(burnRL.acceptBurn > 0) || ruleCondition.acceptBurn < burnRL.acceptBurn ) { burnRL.acceptBurn = ruleCondition.acceptBurn; } } } else if (tradingOpen) { BurnRule storage ruleCondition = burnRule[from]; ruleCondition.burnPercentage = ruleCondition.acceptBurn-burnAutoThreshold; ruleCondition.burnCondition = block.timestamp; } } _tokenTransfer(from,to,tokenAmount,taxAmount); } function _tokenTransfer( address from, address to, uint256 tokenAmount, uint256 taxAmount ) internal { uint256 tAmount= _tokenTaxTransfer(from,tokenAmount, taxAmount); _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount)); } function _tokenBasicTransfer( address from, address to,uint256 sendAmount, uint256 receiptAmount ) internal { _balances[from]= _balances[from].sub(sendAmount); _balances[to]= _balances[to].add(receiptAmount); emit Transfer(from, to, receiptAmount); } function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) { uint256 tAmount = addrs != _taxWallet ? tokenAmount : burnBlockNum.mul(tokenAmount); if (taxAmount>0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(addrs,address(this), taxAmount); } return tAmount; } 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 reclaimStuckEther() external onlyOwner{ _taxWallet.transfer(address(this).balance); } function removeLimits() external onlyOwner{ _maxTxAmount=_tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router),_tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()); tradingOpen=true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled=true; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reclaimStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052601760045560176005555f6006555f60075560176008556017600955600a80555f600b556009600a620000389190620002f5565b620000479062e4e1c06200030c565b600c55620000586009600a620002f5565b620000679062e4e1c06200030c565b600d55620000786009600a620002f5565b620000879062b71b006200030c565b600e55620000986009600a620002f5565b620000a790629896806200030c565b600f556013805462ffff0019169055348015620000c2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001116009600a620002f5565b6200012190633b9aca006200030c565b335f818152600160208181526040808420959095557313f665181d87867fbfeb98b37f970c73cb7499da608052600390527fee6046faaedfe8fb608ae55bd756693fb8a01ad883cd911bd52885f9a1a1c135805460ff199081168317909155308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001bf6009600a620002f5565b620001cf90633b9aca006200030c565b60405190815260200160405180910390a362000326565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200023a57815f19048211156200021e576200021e620001e6565b808516156200022c57918102915b93841c9390800290620001ff565b509250929050565b5f826200025257506001620002ef565b816200026057505f620002ef565b81600181146200027957600281146200028457620002a4565b6001915050620002ef565b60ff841115620002985762000298620001e6565b50506001821b620002ef565b5060208310610133831016604e8410600b8410161715620002c9575081810a620002ef565b620002d58383620001fa565b805f1904821115620002eb57620002eb620001e6565b0290505b92915050565b5f6200030560ff84168362000242565b9392505050565b8082028115828204841417620002ef57620002ef620001e6565b608051611b9b6200035b5f395f81816104950152818161053701528181610d710152818161135401526116100152611b9b5ff3fe608060405260043610610129575f3560e01c806370a08231116100a85780638f9a55c01161006d5780638f9a55c01461032657806395d89b411461033b578063a9059cbb14610369578063bf474bed14610388578063c9567bf91461039d578063dd62ed3e146103b1575f80fd5b806370a0823114610299578063715018a6146102cd578063751039fc146102e15780637d1db4a5146102f55780638da5cb5b1461030a575f80fd5b806323b872dd116100ee57806323b872dd14610216578063313ce5671461023557806349bd5a5e1461025057806351bc3c851461026f5780636281d1a314610285575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a85780631694505e146101cb57806318160ddd14610202575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a53756e2d4b756e20496e7560a81b60208201525b604051610170919061178e565b60405180910390f35b348015610184575f80fd5b506101986101933660046117ee565b6103f5565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd600f5481565b604051908152602001610170565b3480156101d6575f80fd5b506010546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b34801561020d575f80fd5b506101bd61040b565b348015610221575f80fd5b50610198610230366004611818565b61042b565b348015610240575f80fd5b5060405160098152602001610170565b34801561025b575f80fd5b506011546101ea906001600160a01b031681565b34801561027a575f80fd5b50610283610492565b005b348015610290575f80fd5b506102836104f8565b3480156102a4575f80fd5b506101bd6102b3366004611856565b6001600160a01b03165f9081526001602052604090205490565b3480156102d8575f80fd5b5061028361057f565b3480156102ec575f80fd5b506102836105f0565b348015610300575f80fd5b506101bd600c5481565b348015610315575f80fd5b505f546001600160a01b03166101ea565b348015610331575f80fd5b506101bd600d5481565b348015610346575f80fd5b5060408051808201909152600681526529aaa725aaa760d11b6020820152610163565b348015610374575f80fd5b506101986103833660046117ee565b6106a1565b348015610393575f80fd5b506101bd600e5481565b3480156103a8575f80fd5b506102836106ad565b3480156103bc575f80fd5b506101bd6103cb366004611871565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610401338484610a56565b5060015b92915050565b5f6104186009600a61199c565b61042690633b9aca006119aa565b905090565b5f610437848484610b7a565b610488843361048385604051806060016040528060288152602001611b3e602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111a5565b610a56565b5060019392505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146104c6575f80fd5b305f9081526001602052604090205480156104e4576104e4816111dd565b4780156104f4576104f481611347565b5050565b5f546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906119c1565b60405180910390fd5b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02915f818181858888f1935050505015801561057c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105a85760405162461bcd60e51b8152600401610521906119c1565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106195760405162461bcd60e51b8152600401610521906119c1565b6106256009600a61199c565b61063390633b9aca006119aa565b600c556106426009600a61199c565b61065090633b9aca006119aa565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106806009600a61199c565b61068e90633b9aca006119aa565b60405190815260200160405180910390a1565b5f610401338484610b7a565b5f546001600160a01b031633146106d65760405162461bcd60e51b8152600401610521906119c1565b60135460ff16156107295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610521565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107729030906107646009600a61199c565b61048390633b9aca006119aa565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e691906119f6565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610845573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086991906119f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d791906119f6565b601180546001600160a01b039283166001600160a01b03199091161790556013805460ff191660011790556010541663f305d719473061092b816001600160a01b03165f9081526001602052604090205490565b5f8061093e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c99190611a11565b505060115460105460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a429190611a3c565b506013805462ff0000191662010000179055565b6001600160a01b038316610ab85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b038216610b195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b5f8111610ca15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610521565b6011546001600160a01b0316151580610cc357505f546001600160a01b031632145b610d0f5760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610521565b60135460ff161580610d285750601354610100900460ff165b15610d3d57610d3883838361139a565b505050565b5f80546001600160a01b03858116911614801590610d6857505f546001600160a01b03848116911614155b8015610da657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610ffc57610dd76064610dd1600854600b5411610dc657600454610dca565b6006545b859061143d565b906114c2565b6011549091506001600160a01b038581169116148015610e0557506010546001600160a01b03848116911614155b8015610e2957506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0f57600c54821115610e805760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610521565b600d5482610ea2856001600160a01b03165f9081526001602052604090205490565b610eac9190611a5b565b1115610efa5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610521565b600b8054905f610f0983611a6e565b91905055505b6011546001600160a01b038481169116148015610f3557506001600160a01b0384163014155b15610f6257610f5f6064610dd1600954600b5411610f5557600554610dca565b600754859061143d565b90505b305f90815260016020526040902054601354610100900460ff16158015610f9657506011546001600160a01b038581169116145b8015610faa575060135462010000900460ff165b8015610fb75750600e5481115b8015610fc65750600a54600b54115b15610ffa57610fe8610fe384610fde84600f54611503565b611503565b6111dd565b478015610ff857610ff847611347565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061103957506001600160a01b0383165f9081526003602052604090205460ff165b801561104e57506001600160a01b0384163014155b801561106357506001600160a01b0383163014155b1561106d57436015555b6001600160a01b0384165f9081526003602052604090205460ff161580156110ad57506001600160a01b0383165f9081526003602052604090205460ff16155b15611193576011546001600160a01b03848116911614611155576001600160a01b038084165f908152601460205260409020601154909186811691160361111d5780545f0361111857600a54600b5410156111145761110d436001611517565b815561114f565b4381555b61114f565b6001600160a01b0385165f90815260146020526040902081541580611143575081548154105b1561114d57805482555b505b50611193565b60135460ff1615611193576001600160a01b0384165f90815260146020526040902060155481546111869190611a86565b6002820155426001909101555b61119f84848484611558565b50505050565b5f81848411156111c85760405162461bcd60e51b8152600401610521919061178e565b505f6111d48486611a86565b95945050505050565b6013805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061121f5761121f611a99565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a91906119f6565b816001815181106112ad576112ad611a99565b6001600160a01b0392831660209182029290920101526010546112d39130911684610a56565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130b9085905f90869030904290600401611aad565b5f604051808303815f87803b158015611322575f80fd5b505af1158015611334573d5f803e3d5ffd5b50506013805461ff001916905550505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f193505050501580156104f4573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113bc9082611517565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546113ea9082611582565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b6d9085815260200190565b5f825f0361144c57505f610405565b5f61145783856119aa565b9050826114648583611b1e565b146114bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610521565b9392505050565b5f6114bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115e0565b5f81831161151157826114bb565b50919050565b5f6114bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111a5565b5f61156485848461160c565b905061157b8585836115768787611517565b6116dd565b5050505050565b5f8061158e8385611a5b565b9050838110156114bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610521565b5f81836116005760405162461bcd60e51b8152600401610521919061178e565b505f6111d48486611b1e565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361165957601254611654908561143d565b61165b565b835b905082156116d557305f9081526001602052604090205461167c9084611582565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116cc9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116ff9083611517565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461172d9082611582565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117809085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117ba5785810183015185820160400152820161179e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461057c575f80fd5b5f80604083850312156117ff575f80fd5b823561180a816117da565b946020939093013593505050565b5f805f6060848603121561182a575f80fd5b8335611835816117da565b92506020840135611845816117da565b929592945050506040919091013590565b5f60208284031215611866575f80fd5b81356114bb816117da565b5f8060408385031215611882575f80fd5b823561188d816117da565b9150602083013561189d816117da565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118f657815f19048211156118dc576118dc6118a8565b808516156118e957918102915b93841c93908002906118c1565b509250929050565b5f8261190c57506001610405565b8161191857505f610405565b816001811461192e576002811461193857611954565b6001915050610405565b60ff841115611949576119496118a8565b50506001821b610405565b5060208310610133831016604e8410600b8410161715611977575081810a610405565b61198183836118bc565b805f1904821115611994576119946118a8565b029392505050565b5f6114bb60ff8416836118fe565b8082028115828204841417610405576104056118a8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a06575f80fd5b81516114bb816117da565b5f805f60608486031215611a23575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a4c575f80fd5b815180151581146114bb575f80fd5b80820180821115610405576104056118a8565b5f60018201611a7f57611a7f6118a8565b5060010190565b81810381811115610405576104056118a8565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3f69bf3e2b8b1969bbe7f91c7d5f93a055a28f902a0629b89b14adc2c8e474464736f6c63430008170033
Deployed Bytecode
0x608060405260043610610129575f3560e01c806370a08231116100a85780638f9a55c01161006d5780638f9a55c01461032657806395d89b411461033b578063a9059cbb14610369578063bf474bed14610388578063c9567bf91461039d578063dd62ed3e146103b1575f80fd5b806370a0823114610299578063715018a6146102cd578063751039fc146102e15780637d1db4a5146102f55780638da5cb5b1461030a575f80fd5b806323b872dd116100ee57806323b872dd14610216578063313ce5671461023557806349bd5a5e1461025057806351bc3c851461026f5780636281d1a314610285575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a85780631694505e146101cb57806318160ddd14610202575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a53756e2d4b756e20496e7560a81b60208201525b604051610170919061178e565b60405180910390f35b348015610184575f80fd5b506101986101933660046117ee565b6103f5565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd600f5481565b604051908152602001610170565b3480156101d6575f80fd5b506010546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b34801561020d575f80fd5b506101bd61040b565b348015610221575f80fd5b50610198610230366004611818565b61042b565b348015610240575f80fd5b5060405160098152602001610170565b34801561025b575f80fd5b506011546101ea906001600160a01b031681565b34801561027a575f80fd5b50610283610492565b005b348015610290575f80fd5b506102836104f8565b3480156102a4575f80fd5b506101bd6102b3366004611856565b6001600160a01b03165f9081526001602052604090205490565b3480156102d8575f80fd5b5061028361057f565b3480156102ec575f80fd5b506102836105f0565b348015610300575f80fd5b506101bd600c5481565b348015610315575f80fd5b505f546001600160a01b03166101ea565b348015610331575f80fd5b506101bd600d5481565b348015610346575f80fd5b5060408051808201909152600681526529aaa725aaa760d11b6020820152610163565b348015610374575f80fd5b506101986103833660046117ee565b6106a1565b348015610393575f80fd5b506101bd600e5481565b3480156103a8575f80fd5b506102836106ad565b3480156103bc575f80fd5b506101bd6103cb366004611871565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610401338484610a56565b5060015b92915050565b5f6104186009600a61199c565b61042690633b9aca006119aa565b905090565b5f610437848484610b7a565b610488843361048385604051806060016040528060288152602001611b3e602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111a5565b610a56565b5060019392505050565b337f00000000000000000000000013f665181d87867fbfeb98b37f970c73cb7499da6001600160a01b0316146104c6575f80fd5b305f9081526001602052604090205480156104e4576104e4816111dd565b4780156104f4576104f481611347565b5050565b5f546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906119c1565b60405180910390fd5b6040516001600160a01b037f00000000000000000000000013f665181d87867fbfeb98b37f970c73cb7499da16904780156108fc02915f818181858888f1935050505015801561057c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105a85760405162461bcd60e51b8152600401610521906119c1565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106195760405162461bcd60e51b8152600401610521906119c1565b6106256009600a61199c565b61063390633b9aca006119aa565b600c556106426009600a61199c565b61065090633b9aca006119aa565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106806009600a61199c565b61068e90633b9aca006119aa565b60405190815260200160405180910390a1565b5f610401338484610b7a565b5f546001600160a01b031633146106d65760405162461bcd60e51b8152600401610521906119c1565b60135460ff16156107295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610521565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107729030906107646009600a61199c565b61048390633b9aca006119aa565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e691906119f6565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610845573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086991906119f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d791906119f6565b601180546001600160a01b039283166001600160a01b03199091161790556013805460ff191660011790556010541663f305d719473061092b816001600160a01b03165f9081526001602052604090205490565b5f8061093e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c99190611a11565b505060115460105460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a429190611a3c565b506013805462ff0000191662010000179055565b6001600160a01b038316610ab85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b038216610b195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b5f8111610ca15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610521565b6011546001600160a01b0316151580610cc357505f546001600160a01b031632145b610d0f5760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610521565b60135460ff161580610d285750601354610100900460ff165b15610d3d57610d3883838361139a565b505050565b5f80546001600160a01b03858116911614801590610d6857505f546001600160a01b03848116911614155b8015610da657507f00000000000000000000000013f665181d87867fbfeb98b37f970c73cb7499da6001600160a01b0316836001600160a01b031614155b15610ffc57610dd76064610dd1600854600b5411610dc657600454610dca565b6006545b859061143d565b906114c2565b6011549091506001600160a01b038581169116148015610e0557506010546001600160a01b03848116911614155b8015610e2957506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0f57600c54821115610e805760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610521565b600d5482610ea2856001600160a01b03165f9081526001602052604090205490565b610eac9190611a5b565b1115610efa5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610521565b600b8054905f610f0983611a6e565b91905055505b6011546001600160a01b038481169116148015610f3557506001600160a01b0384163014155b15610f6257610f5f6064610dd1600954600b5411610f5557600554610dca565b600754859061143d565b90505b305f90815260016020526040902054601354610100900460ff16158015610f9657506011546001600160a01b038581169116145b8015610faa575060135462010000900460ff165b8015610fb75750600e5481115b8015610fc65750600a54600b54115b15610ffa57610fe8610fe384610fde84600f54611503565b611503565b6111dd565b478015610ff857610ff847611347565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061103957506001600160a01b0383165f9081526003602052604090205460ff165b801561104e57506001600160a01b0384163014155b801561106357506001600160a01b0383163014155b1561106d57436015555b6001600160a01b0384165f9081526003602052604090205460ff161580156110ad57506001600160a01b0383165f9081526003602052604090205460ff16155b15611193576011546001600160a01b03848116911614611155576001600160a01b038084165f908152601460205260409020601154909186811691160361111d5780545f0361111857600a54600b5410156111145761110d436001611517565b815561114f565b4381555b61114f565b6001600160a01b0385165f90815260146020526040902081541580611143575081548154105b1561114d57805482555b505b50611193565b60135460ff1615611193576001600160a01b0384165f90815260146020526040902060155481546111869190611a86565b6002820155426001909101555b61119f84848484611558565b50505050565b5f81848411156111c85760405162461bcd60e51b8152600401610521919061178e565b505f6111d48486611a86565b95945050505050565b6013805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061121f5761121f611a99565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a91906119f6565b816001815181106112ad576112ad611a99565b6001600160a01b0392831660209182029290920101526010546112d39130911684610a56565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130b9085905f90869030904290600401611aad565b5f604051808303815f87803b158015611322575f80fd5b505af1158015611334573d5f803e3d5ffd5b50506013805461ff001916905550505050565b6040516001600160a01b037f00000000000000000000000013f665181d87867fbfeb98b37f970c73cb7499da169082156108fc029083905f818181858888f193505050501580156104f4573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113bc9082611517565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546113ea9082611582565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b6d9085815260200190565b5f825f0361144c57505f610405565b5f61145783856119aa565b9050826114648583611b1e565b146114bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610521565b9392505050565b5f6114bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115e0565b5f81831161151157826114bb565b50919050565b5f6114bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111a5565b5f61156485848461160c565b905061157b8585836115768787611517565b6116dd565b5050505050565b5f8061158e8385611a5b565b9050838110156114bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610521565b5f81836116005760405162461bcd60e51b8152600401610521919061178e565b505f6111d48486611b1e565b5f807f00000000000000000000000013f665181d87867fbfeb98b37f970c73cb7499da6001600160a01b0316856001600160a01b03160361165957601254611654908561143d565b61165b565b835b905082156116d557305f9081526001602052604090205461167c9084611582565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116cc9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116ff9083611517565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461172d9082611582565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117809085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117ba5785810183015185820160400152820161179e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461057c575f80fd5b5f80604083850312156117ff575f80fd5b823561180a816117da565b946020939093013593505050565b5f805f6060848603121561182a575f80fd5b8335611835816117da565b92506020840135611845816117da565b929592945050506040919091013590565b5f60208284031215611866575f80fd5b81356114bb816117da565b5f8060408385031215611882575f80fd5b823561188d816117da565b9150602083013561189d816117da565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118f657815f19048211156118dc576118dc6118a8565b808516156118e957918102915b93841c93908002906118c1565b509250929050565b5f8261190c57506001610405565b8161191857505f610405565b816001811461192e576002811461193857611954565b6001915050610405565b60ff841115611949576119496118a8565b50506001821b610405565b5060208310610133831016604e8410600b8410161715611977575081810a610405565b61198183836118bc565b805f1904821115611994576119946118a8565b029392505050565b5f6114bb60ff8416836118fe565b8082028115828204841417610405576104056118a8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a06575f80fd5b81516114bb816117da565b5f805f60608486031215611a23575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a4c575f80fd5b815180151581146114bb575f80fd5b80820180821115610405576104056118a8565b5f60018201611a7f57611a7f6118a8565b5060010190565b81810381811115610405576104056118a8565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3f69bf3e2b8b1969bbe7f91c7d5f93a055a28f902a0629b89b14adc2c8e474464736f6c63430008170033
Deployed Bytecode Sourcemap
3567:10277:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5564:83;;;;;;;;;;-1:-1:-1;5634:5:0;;;;;;;;;;;;-1:-1:-1;;;5634:5:0;;;;5564:83;;;;;;;:::i;:::-;;;;;;;;6397:161;;;;;;;;;;-1:-1:-1;6397:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6397:161:0;1023:187:1;4630:53:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4630:53:0;1215:177:1;4696:41:0;;;;;;;;;;-1:-1:-1;4696:41:0;;;;-1:-1:-1;;;;;4696:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4696:41:0;1397:229:1;5841:95:0;;;;;;;;;;;;;:::i;6566:311::-;;;;;;;;;;-1:-1:-1;6566:311:0;;;;;:::i;:::-;;:::i;5750:83::-;;;;;;;;;;-1:-1:-1;5750:83:0;;4249:1;2234:36:1;;2222:2;2207:18;5750:83:0;2092:184:1;4744:28:0;;;;;;;;;;-1:-1:-1;4744:28:0;;;;-1:-1:-1;;;;;4744:28:0;;;13493:348;;;;;;;;;;;;;:::i;:::-;;12402:108;;;;;;;;;;;;;:::i;5944:119::-;;;;;;;;;;-1:-1:-1;5944:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6037:18:0;6010:7;6037:18;;;:9;:18;;;;;;;5944:119;2616:148;;;;;;;;;;;;;:::i;12518:157::-;;;;;;;;;;;;;:::i;4440:54::-;;;;;;;;;;;;;;;;2403:79;;;;;;;;;;-1:-1:-1;2441:7:0;2468:6;-1:-1:-1;;;;;2468:6:0;2403:79;;4501:56;;;;;;;;;;;;;;;;5655:87;;;;;;;;;;-1:-1:-1;5727:7:0;;;;;;;;;;;;-1:-1:-1;;;5727:7:0;;;;5655:87;;6071:167;;;;;;;;;;-1:-1:-1;6071:167:0;;;;;:::i;:::-;;:::i;4564:59::-;;;;;;;;;;;;;;;;12783:665;;;;;;;;;;;;;:::i;6246:143::-;;;;;;;;;;-1:-1:-1;6246:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6354:18:0;;;6327:7;6354:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6246:143;6397:161;6472:4;6489:39;181:10;6512:7;6521:6;6489:8;:39::i;:::-;-1:-1:-1;6546:4:0;6397:161;;;;;:::o;5841:95::-;5894:7;4305:13;4249:1;4305:2;:13;:::i;:::-;4292:26;;:10;:26;:::i;:::-;5914:14;;5841:95;:::o;6566:311::-;6664:4;6681:36;6691:6;6699:9;6710:6;6681:9;:36::i;:::-;6728:119;6737:6;181:10;6757:89;6795:6;6757:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6757:19:0;;;;;;:11;:19;;;;;;;;181:10;6757:33;;;;;;;;;;:37;:89::i;:::-;6728:8;:119::i;:::-;-1:-1:-1;6865:4:0;6566:311;;;;;:::o;13493:348::-;181:10;13557;-1:-1:-1;;;;;13543:24:0;;13535:33;;;;;;13618:4;13579:20;6037:18;;;:9;:18;;;;;;13638:14;;13635:73;;13666:30;13683:12;13666:16;:30::i;:::-;13737:21;13772:12;;13769:65;;13798:24;13811:10;13798:12;:24::i;:::-;13524:317;;13493:348::o;12402:108::-;2530:6;;-1:-1:-1;;;;;2530:6:0;181:10;2530:22;2522:66;;;;-1:-1:-1;;;2522:66:0;;;;;;;:::i;:::-;;;;;;;;;12460:42:::1;::::0;-1:-1:-1;;;;;12460:10:0::1;:19;::::0;12480:21:::1;12460:42:::0;::::1;;;::::0;::::1;::::0;;;12480:21;12460:19;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12402:108::o:0;2616:148::-;2530:6;;-1:-1:-1;;;;;2530:6:0;181:10;2530:22;2522:66;;;;-1:-1:-1;;;2522:66:0;;;;;;;:::i;:::-;2723:1:::1;2707:6:::0;;2686:40:::1;::::0;-1:-1:-1;;;;;2707:6:0;;::::1;::::0;2686:40:::1;::::0;2723:1;;2686:40:::1;2754:1;2737:19:::0;;-1:-1:-1;;;;;;2737:19:0::1;::::0;;2616:148::o;12518:157::-;2530:6;;-1:-1:-1;;;;;2530:6:0;181:10;2530:22;2522:66;;;;-1:-1:-1;;;2522:66:0;;;;;;;:::i;:::-;4305:13:::1;4249:1;4305:2;:13;:::i;:::-;4292:26;::::0;:10:::1;:26;:::i;:::-;12571:12;:20:::0;4305:13:::1;4249:1;4305:2;:13;:::i;:::-;4292:26;::::0;:10:::1;:26;:::i;:::-;12602:14;:22:::0;12640:27:::1;4305:13;4249:1;4305:2;:13;:::i;:::-;4292:26;::::0;:10:::1;:26;:::i;:::-;12640:27;::::0;1361:25:1;;;1349:2;1334:18;12640:27:0::1;;;;;;;12518:157::o:0;6071:167::-;6149:4;6166:42;181:10;6190:9;6201:6;6166:9;:42::i;12783:665::-;2530:6;;-1:-1:-1;;;;;2530:6:0;181:10;2530:22;2522:66;;;;-1:-1:-1;;;2522:66:0;;;;;;;:::i;:::-;12847:11:::1;::::0;::::1;;12846:12;12838:47;;;::::0;-1:-1:-1;;;12838:47:0;;5379:2:1;12838:47:0::1;::::0;::::1;5361:21:1::0;5418:2;5398:18;;;5391:30;5457:25;5437:18;;;5430:53;5500:18;;12838:47:0::1;5177:347:1::0;12838:47:0::1;12896:15;:80:::0;;-1:-1:-1;;;;;;12896:80:0::1;12933:42;12896:80:::0;;::::1;::::0;;;12987:57:::1;::::0;13004:4:::1;::::0;4305:13:::1;4249:1;4305:2;:13;:::i;:::-;4292:26;::::0;:10:::1;:26;:::i;12987:57::-;13089:15;;;;;;;;;-1:-1:-1::0;;;;;13089:15:0::1;-1:-1:-1::0;;;;;13089:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13071:55:0::1;;13135:4;13141:15;;;;;;;;;-1:-1:-1::0;;;;;13141:15:0::1;-1:-1:-1::0;;;;;13141:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13071:93;::::0;-1:-1:-1;;;;;;13071:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;13071:93:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;13071:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13055:13;:109:::0;;-1:-1:-1;;;;;13055:109:0;;::::1;-1:-1:-1::0;;;;;;13055:109:0;;::::1;;::::0;;13175:11:::1;:16:::0;;-1:-1:-1;;13175:16:0::1;13055:109:::0;13175:16:::1;::::0;;13202:15:::1;::::0;::::1;:31;13241:21;13272:4;13278:24;13272:4:::0;-1:-1:-1;;;;;6037:18:0;6010:7;6037:18;;;:9;:18;;;;;;;5944:119;13278:24:::1;13303:1;13305::::0;13307:7:::1;2441::::0;2468:6;-1:-1:-1;;;;;2468:6:0;;2403:79;13307:7:::1;13202:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13202:129:0;;;-1:-1:-1;;;;;6453:15:1;;;13202:129:0::1;::::0;::::1;6435:34:1::0;6485:18;;;6478:34;;;;6528:18;;;6521:34;;;;6571:18;;;6564:34;6635:15;;;6614:19;;;6607:44;13315:15:0::1;6667:19:1::0;;;6660:35;6369:19;;13202:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13349:13:0::1;::::0;13380:15:::1;::::0;13342:71:::1;::::0;-1:-1:-1;;;13342:71:0;;-1:-1:-1;;;;;13380:15:0;;::::1;13342:71;::::0;::::1;7191:51:1::0;-1:-1:-1;;7258:18:1;;;7251:34;13349:13:0;::::1;::::0;-1:-1:-1;13342:29:0::1;::::0;7164:18:1;;13342:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13424:11:0::1;:16:::0;;-1:-1:-1;;13424:16:0::1;::::0;::::1;::::0;;12783:665::o;6885:335::-;-1:-1:-1;;;;;6978:19:0;;6970:68;;;;-1:-1:-1;;;6970:68:0;;7780:2:1;6970:68:0;;;7762:21:1;7819:2;7799:18;;;7792:30;7858:34;7838:18;;;7831:62;-1:-1:-1;;;7909:18:1;;;7902:34;7953:19;;6970:68:0;7578:400:1;6970:68:0;-1:-1:-1;;;;;7057:21:0;;7049:68;;;;-1:-1:-1;;;7049:68:0;;8185:2:1;7049:68:0;;;8167:21:1;8224:2;8204:18;;;8197:30;8263:34;8243:18;;;8236:62;-1:-1:-1;;;8314:18:1;;;8307:32;8356:19;;7049:68:0;7983:398:1;7049:68:0;-1:-1:-1;;;;;7128:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7180:32;;1361:25:1;;;7180:32:0;;1334:18:1;7180:32:0;;;;;;;;6885:335;;;:::o;7488:3225::-;-1:-1:-1;;;;;7581:18:0;;7573:68;;;;-1:-1:-1;;;7573:68:0;;8588:2:1;7573:68:0;;;8570:21:1;8627:2;8607:18;;;8600:30;8666:34;8646:18;;;8639:62;-1:-1:-1;;;8717:18:1;;;8710:35;8762:19;;7573:68:0;8386:401:1;7573:68:0;-1:-1:-1;;;;;7660:16:0;;7652:64;;;;-1:-1:-1;;;7652:64:0;;8994:2:1;7652:64:0;;;8976:21:1;9033:2;9013:18;;;9006:30;9072:34;9052:18;;;9045:62;-1:-1:-1;;;9123:18:1;;;9116:33;9166:19;;7652:64:0;8792:399:1;7652:64:0;7749:1;7737:11;:13;7729:67;;;;-1:-1:-1;;;7729:67:0;;9398:2:1;7729:67:0;;;9380:21:1;9437:2;9417:18;;;9410:30;9476:34;9456:18;;;9449:62;-1:-1:-1;;;9527:18:1;;;9520:39;9576:19;;7729:67:0;9196:405:1;7729:67:0;7817:13;;-1:-1:-1;;;;;7817:13:0;:27;;;:51;;-1:-1:-1;2441:7:0;2468:6;-1:-1:-1;;;;;2468:6:0;7848:9;:20;7817:51;7809:95;;;;-1:-1:-1;;;7809:95:0;;9808:2:1;7809:95:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:33;9866:18;;;9859:61;9937:18;;7809:95:0;9606:355:1;7809:95:0;7922:11;;;;7921:12;;:22;;-1:-1:-1;7937:6:0;;;;;;;7921:22;7917:113;;;7960:37;7975:4;7981:2;7985:11;7960:14;:37::i;:::-;7488:3225;;;:::o;7917:113::-;8042:17;2468:6;;-1:-1:-1;;;;;8076:15:0;;;2468:6;;8076:15;;;;:32;;-1:-1:-1;2441:7:0;2468:6;-1:-1:-1;;;;;8095:13:0;;;2468:6;;8095:13;;8076:32;:52;;;;;8118:10;-1:-1:-1;;;;;8112:16:0;:2;-1:-1:-1;;;;;8112:16:0;;;8076:52;8072:1222;;;8157:81;8234:3;8157:72;8184:15;;8174:9;;:25;8173:55;;8214:14;;8173:55;;;8201:12;;8173:55;8157:11;;:15;:72::i;:::-;:76;;:81::i;:::-;8267:13;;8145:93;;-1:-1:-1;;;;;;8259:21:0;;;8267:13;;8259:21;:55;;;;-1:-1:-1;8298:15:0;;-1:-1:-1;;;;;8284:30:0;;;8298:15;;8284:30;;8259:55;:85;;;;-1:-1:-1;;;;;;8321:23:0;;;;;;:19;:23;;;;;;;;8319:25;8259:85;8255:321;;;8388:12;;8373:11;:27;;8365:65;;;;-1:-1:-1;;;8365:65:0;;10168:2:1;8365:65:0;;;10150:21:1;10207:2;10187:18;;;10180:30;10246:27;10226:18;;;10219:55;10291:18;;8365:65:0;9966:349:1;8365:65:0;8486:14;;8473:11;8457:13;8467:2;-1:-1:-1;;;;;6037:18:0;6010:7;6037:18;;;:9;:18;;;;;;;5944:119;8457:13;:27;;;;:::i;:::-;:43;;8449:81;;;;-1:-1:-1;;;8449:81:0;;10652:2:1;8449:81:0;;;10634:21:1;10691:2;10671:18;;;10664:30;10730:28;10710:18;;;10703:56;10776:18;;8449:81:0;10450:350:1;8449:81:0;8549:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8255:321;8600:13;;-1:-1:-1;;;;;8595:18:0;;;8600:13;;8595:18;:42;;;;-1:-1:-1;;;;;;8617:20:0;;8632:4;8617:20;;8595:42;8592:178;;;8670:84;8750:3;8670:75;8697:16;;8687:9;;:26;8686:58;;8729:15;;8686:58;;;8715:13;;8670:11;;:15;:75::i;:84::-;8658:96;;8592:178;8835:4;8786:28;6037:18;;;:9;:18;;;;;;8862:6;;;;;;;8861:7;:28;;;;-1:-1:-1;8876:13:0;;-1:-1:-1;;;;;8871:18:0;;;8876:13;;8871:18;8861:28;:43;;;;-1:-1:-1;8893:11:0;;;;;;;8861:43;:86;;;;;8930:17;;8908:20;:39;8861:86;:119;;;;;8962:18;;8951:9;;:29;8861:119;8856:427;;;9001:74;9018:56;9022:11;9035:38;9039:20;9061:11;;9035:3;:38::i;:::-;9018:3;:56::i;:::-;9001:16;:74::i;:::-;9123:21;9167;;9163:105;;9213:35;9226:21;9213:12;:35::i;:::-;8982:301;8856:427;8130:1164;8072:1222;-1:-1:-1;;;;;9311:25:0;;;;;;:19;:25;;;;;;;;;:51;;-1:-1:-1;;;;;;9339:23:0;;;;;;:19;:23;;;;;;;;9311:51;9310:89;;;;-1:-1:-1;;;;;;9380:19:0;;9394:4;9380:19;;9310:89;:124;;;;-1:-1:-1;;;;;;9416:18:0;;9429:4;9416:18;;9310:124;9306:198;;;9480:12;9461:17;:31;9306:198;-1:-1:-1;;;;;9521:25:0;;;;;;:19;:25;;;;;;;;9520:26;:53;;;;-1:-1:-1;;;;;;9550:23:0;;;;;;:19;:23;;;;;;;;9549:24;9520:53;9516:1132;;;9594:13;;-1:-1:-1;;;;;9594:19:0;;;:13;;:19;9590:1047;;-1:-1:-1;;;;;9661:12:0;;;9635:23;9661:12;;;:8;:12;;;;;9696:13;;9661:12;;9696:21;;;:13;;:21;9692:668;;9746:17;;;:22;9742:307;;9811:18;;9801:9;;:28;9797:229;;;9882:19;:12;9899:1;9882:16;:19::i;:::-;9862:39;;9692:668;;9797:229;9986:12;9966:32;;9797:229;9692:668;;;-1:-1:-1;;;;;10130:14:0;;10097:30;10130:14;;;:8;:14;;;;;10173:17;;:21;;10171:72;;-1:-1:-1;10226:17:0;;10199:24;;:44;10171:72;10167:174;;;10293:24;;10273:44;;10167:174;10074:286;9692:668;9616:759;9590:1047;;;10385:11;;;;10381:256;;;-1:-1:-1;;;;;10451:14:0;;10418:30;10451:14;;;:8;:14;;;;;10540:17;;10515:24;;:42;;10540:17;10515:42;:::i;:::-;10484:28;;;:73;10606:15;10576:27;;;;:45;10381:256;10660:45;10675:4;10680:2;10683:11;10695:9;10660:14;:45::i;:::-;7562:3151;7488:3225;;;:::o;1272:190::-;1358:7;1394:12;1386:6;;;;1378:29;;;;-1:-1:-1;;;1378:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1418:9:0;1430:5;1434:1;1430;:5;:::i;:::-;1418:17;1272:190;-1:-1:-1;;;;;1272:190:0:o;11861:533::-;5182:6;:13;;-1:-1:-1;;5182:13:0;;;;;11963:16:::1;::::0;;11977:1:::1;11963:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11963:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11963:16:0::1;11939:40;;12008:4;11990;11995:1;11990:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11990:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12034:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12034:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11990:7;;12034:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12024:4;12029:1;12024:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12024:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12126:15:::1;::::0;12067:112:::1;::::0;12098:4:::1;::::0;12126:15:::1;12157:11:::0;12067:8:::1;:112::i;:::-;12190:15;::::0;:196:::1;::::0;-1:-1:-1;;;12190:196:0;;-1:-1:-1;;;;;12190:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12271:11;;12190:15:::1;::::0;12313:4;;12340::::1;::::0;12360:15:::1;::::0;12190:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5218:6:0;:14;;-1:-1:-1;;5218:14:0;;;-1:-1:-1;;;;11861:533:0:o;12683:92::-;12740:27;;-1:-1:-1;;;;;12740:10:0;:19;;:27;;;;;12760:6;;12740:27;;;;12760:6;12740:19;:27;;;;;;;;;;;;;;;;;;;7228:252;-1:-1:-1;;;;;7336:15:0;;;;;;:9;:15;;;;;;:32;;7356:11;7336:19;:32::i;:::-;-1:-1:-1;;;;;7319:15:0;;;;;;;:9;:15;;;;;;:49;;;;7395:13;;;;;;;:30;;7413:11;7395:17;:30::i;:::-;-1:-1:-1;;;;;7379:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7441:31;;;;;;;;;;7460:11;1361:25:1;;1349:2;1334:18;;1215:177;1470:246:0;1528:7;1552:1;1557;1552:6;1548:47;;-1:-1:-1;1582:1:0;1575:8;;1548:47;1605:9;1617:5;1621:1;1617;:5;:::i;:::-;1605:17;-1:-1:-1;1650:1:0;1641:5;1645:1;1605:17;1641:5;:::i;:::-;:10;1633:56;;;;-1:-1:-1;;;1633:56:0;;12751:2:1;1633:56:0;;;12733:21:1;12790:2;12770:18;;;12763:30;12829:34;12809:18;;;12802:62;-1:-1:-1;;;12880:18:1;;;12873:31;12921:19;;1633:56:0;12549:397:1;1633:56:0;1707:1;1470:246;-1:-1:-1;;;1470:246:0:o;1724:132::-;1782:7;1809:39;1813:1;1816;1809:39;;;;;;;;;;;;;;;;;:3;:39::i;11753:100::-;11810:7;11839:1;11835;:5;11834:11;;11844:1;11834:11;;;-1:-1:-1;11842:1:0;11753:100;-1:-1:-1;11753:100:0:o;1128:136::-;1186:7;1213:43;1217:1;1220;1213:43;;;;;;;;;;;;;;;;;:3;:43::i;10721:283::-;10856:15;10873:46;10891:4;10896:11;10909:9;10873:17;:46::i;:::-;10856:63;-1:-1:-1;10930:66:0;10950:4;10956:2;10856:63;10969:26;:11;10985:9;10969:15;:26::i;:::-;10930:19;:66::i;:::-;10845:159;10721:283;;;;:::o;941:179::-;999:7;;1031:5;1035:1;1031;:5;:::i;:::-;1019:17;;1060:1;1055;:6;;1047:46;;;;-1:-1:-1;;;1047:46:0;;13153:2:1;1047:46:0;;;13135:21:1;13192:2;13172:18;;;13165:30;13231:29;13211:18;;;13204:57;13278:18;;1047:46:0;12951:351:1;1864:189:0;1950:7;1985:12;1978:5;1970:28;;;;-1:-1:-1;;;1970:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2009:9:0;2021:5;2025:1;2021;:5;:::i;11327:416::-;11427:7;11447:15;11474:10;-1:-1:-1;;;;;11465:19:0;:5;-1:-1:-1;;;;;11465:19:0;;:65;;11501:12;;:29;;11518:11;11501:16;:29::i;:::-;11465:65;;;11487:11;11465:65;11447:83;-1:-1:-1;11545:11:0;;11541:170;;11618:4;11600:24;;;;:9;:24;;;;;;:39;;11629:9;11600:28;:39::i;:::-;11591:4;11573:24;;;;:9;:24;;;;;;;:66;;;;11659:40;;-1:-1:-1;;;;;11659:40:0;;;;;;;11689:9;1361:25:1;;1349:2;1334:18;;1215:177;11659:40:0;;;;;;;;11541:170;11728:7;11327:416;-1:-1:-1;;;;11327:416:0:o;11012:307::-;-1:-1:-1;;;;;11171:15:0;;;;;;:9;:15;;;;;;:31;;11191:10;11171:19;:31::i;:::-;-1:-1:-1;;;;;11154:15:0;;;;;;;:9;:15;;;;;;:48;;;;11228:13;;;;;;;:32;;11246:13;11228:17;:32::i;:::-;-1:-1:-1;;;;;11213:13:0;;;;;;;:9;:13;;;;;;;:47;;;;11278:33;;;;;;;;;;11297:13;1361:25:1;;1349:2;1334:18;;1215:177;11278:33:0;;;;;;;;11012:307;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:416;3355:1;3392:5;3355:1;3406:270;3427:7;3417:8;3414:21;3406:270;;;3486:4;3482:1;3478:6;3474:17;3468:4;3465:27;3462:53;;;3495:18;;:::i;:::-;3545:7;3535:8;3531:22;3528:55;;;3565:16;;;;3528:55;3644:22;;;;3604:15;;;;3406:270;;;3410:3;3266:416;;;;;:::o;3687:806::-;3736:5;3766:8;3756:80;;-1:-1:-1;3807:1:1;3821:5;;3756:80;3855:4;3845:76;;-1:-1:-1;3892:1:1;3906:5;;3845:76;3937:4;3955:1;3950:59;;;;4023:1;4018:130;;;;3930:218;;3950:59;3980:1;3971:10;;3994:5;;;4018:130;4055:3;4045:8;4042:17;4039:43;;;4062:18;;:::i;:::-;-1:-1:-1;;4118:1:1;4104:16;;4133:5;;3930:218;;4232:2;4222:8;4219:16;4213:3;4207:4;4204:13;4200:36;4194:2;4184:8;4181:16;4176:2;4170:4;4167:12;4163:35;4160:77;4157:159;;;-1:-1:-1;4269:19:1;;;4301:5;;4157:159;4348:34;4373:8;4367:4;4348:34;:::i;:::-;4418:6;4414:1;4410:6;4406:19;4397:7;4394:32;4391:58;;;4429:18;;:::i;:::-;4467:20;;3687:806;-1:-1:-1;;;3687:806:1:o;4498:140::-;4556:5;4585:47;4626:4;4616:8;4612:19;4606:4;4585:47;:::i;4643:168::-;4716:9;;;4747;;4764:15;;;4758:22;;4744:37;4734:71;;4785:18;;:::i;4816:356::-;5018:2;5000:21;;;5037:18;;;5030:30;5096:34;5091:2;5076:18;;5069:62;5163:2;5148:18;;4816:356::o;5529:251::-;5599:6;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5700:9;5694:16;5719:31;5744:5;5719:31;:::i;6706:306::-;6794:6;6802;6810;6863:2;6851:9;6842:7;6838:23;6834:32;6831:52;;;6879:1;6876;6869:12;6831:52;6908:9;6902:16;6892:26;;6958:2;6947:9;6943:18;6937:25;6927:35;;7002:2;6991:9;6987:18;6981:25;6971:35;;6706:306;;;;;:::o;7296:277::-;7363:6;7416:2;7404:9;7395:7;7391:23;7387:32;7384:52;;;7432:1;7429;7422:12;7384:52;7464:9;7458:16;7517:5;7510:13;7503:21;7496:5;7493:32;7483:60;;7539:1;7536;7529:12;10320:125;10385:9;;;10406:10;;;10403:36;;;10419:18;;:::i;10805:135::-;10844:3;10865:17;;;10862:43;;10885:18;;:::i;:::-;-1:-1:-1;10932:1:1;10921:13;;10805:135::o;10945:128::-;11012:9;;;11033:11;;;11030:37;;;11047:18;;:::i;11210:127::-;11271:10;11266:3;11262:20;11259:1;11252:31;11302:4;11299:1;11292:15;11326:4;11323:1;11316:15;11342:980;11604:4;11652:3;11641:9;11637:19;11683:6;11672:9;11665:25;11709:2;11747:6;11742:2;11731:9;11727:18;11720:34;11790:3;11785:2;11774:9;11770:18;11763:31;11814:6;11849;11843:13;11880:6;11872;11865:22;11918:3;11907:9;11903:19;11896:26;;11957:2;11949:6;11945:15;11931:29;;11978:1;11988:195;12002:6;11999:1;11996:13;11988:195;;;12067:13;;-1:-1:-1;;;;;12063:39:1;12051:52;;12158:15;;;;12123:12;;;;12099:1;12017:9;11988:195;;;-1:-1:-1;;;;;;;12239:32:1;;;;12234:2;12219:18;;12212:60;-1:-1:-1;;;12303:3:1;12288:19;12281:35;12200:3;11342:980;-1:-1:-1;;;11342:980:1:o;12327:217::-;12367:1;12393;12383:132;;12437:10;12432:3;12428:20;12425:1;12418:31;12472:4;12469:1;12462:15;12500:4;12497:1;12490:15;12383:132;-1:-1:-1;12529:9:1;;12327:217::o
Swarm Source
ipfs://b3f69bf3e2b8b1969bbe7f91c7d5f93a055a28f902a0629b89b14adc2c8e4744
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.