Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 GLDSAITAMA
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
19,541,942,579.9500282 GLDSAITAMAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GoldenSaitama
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-08 */ /** */ // SPDX-License-Identifier: UNLICENSED /** Golden Saitama || $GLDSAITAMA https://t.me/goldensaitama https://twitter.com/goldensaitama **/ pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract GoldenSaitama is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1; uint256 private _feeAddr2; uint256 private _initialTax=20; uint256 private _finalTax=1; uint256 private _reduceTaxAt=1; uint256 private _startLiquidateAt=20; uint256 private _buyCount=0; address payable private _feeAddrWallet; string private constant _name = unicode"Golden Saitama"; string private constant _symbol = unicode"GLDSAITAMA"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private constant _tTotal = 1000000000000 * 10**_decimals; uint256 private _maxTxAmount = 20000000000 * 10**_decimals; uint256 private _maxWalletSize = 20000000000 * 10**_decimals; uint256 private _swapThreshold=5000000000*10**_decimals; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(_msgSender()); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = 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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); _feeAddr1 = 1; _feeAddr2 = (_buyCount>=_reduceTaxAt)?_finalTax:_initialTax; if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>=_swapThreshold && _buyCount>_startLiquidateAt) { swapTokensForEth(_swapThreshold>amount?amount:_swapThreshold); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } }else{ _feeAddr1 = 0; _feeAddr2 = 0; } _tokenTransfer(from,to,amount); } 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualSwap() external { require(_msgSender()==_feeAddrWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function isBot(address a) public view returns (bool){ return bots[a]; } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000326565b620000239064e8d4a510006200033d565b62000030905f1962000357565b6200003d905f1962000377565b6008556014600c8190556001600d819055600e55600f555f6010556013805462ffffff60a81b19169055620000756009600a62000326565b62000086906404a817c8006200033d565b601455620000976009600a62000326565b620000a8906404a817c8006200033d565b601555620000b96009600a62000326565b620000ca9064012a05f2006200033d565b601655348015620000d9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b031916339081179091556008545f91825260026020526040822055600190600590620001585f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526005909352818320805485166001908117909155601154909116835291208054909216179055620001b63390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001ef6009600a62000326565b620002009064e8d4a510006200033d565b60405190815260200160405180910390a36200038d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200026b57815f19048211156200024f576200024f62000217565b808516156200025d57918102915b93841c939080029062000230565b509250929050565b5f82620002835750600162000320565b816200029157505f62000320565b8160018114620002aa5760028114620002b557620002d5565b600191505062000320565b60ff841115620002c957620002c962000217565b50506001821b62000320565b5060208310610133831016604e8410600b8410161715620002fa575081810a62000320565b6200030683836200022b565b805f19048211156200031c576200031c62000217565b0290505b92915050565b5f6200033660ff84168362000273565b9392505050565b808202811582820484141762000320576200032062000217565b5f826200037257634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111562000320576200032062000217565b611b35806200039b5f395ff3fe608060405260043610610108575f3560e01c806370a082311161009257806395d89b411161006257806395d89b41146102de578063a9059cbb14610310578063c9567bf91461032f578063d34628cc14610343578063dd62ed3e14610362575f80fd5b806370a0823114610271578063715018a614610290578063751039fc146102a45780638da5cb5b146102b8575f80fd5b8063313ce567116100d8578063313ce567146101cb57806331c2d847146101e65780633bbac5791461020757806351bc3c851461023e5780635932ead114610252575f80fd5b806306fdde0314610113578063095ea7b31461015b57806318160ddd1461018a57806323b872dd146101ac575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600e81526d476f6c64656e2053616974616d6160901b60208201525b6040516101529190611620565b60405180910390f35b348015610166575f80fd5b5061017a610175366004611692565b6103a6565b6040519015158152602001610152565b348015610195575f80fd5b5061019e6103bc565b604051908152602001610152565b3480156101b7575f80fd5b5061017a6101c63660046116bc565b6103dd565b3480156101d6575f80fd5b5060405160098152602001610152565b3480156101f1575f80fd5b5061020561020036600461170e565b610444565b005b348015610212575f80fd5b5061017a6102213660046117ce565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610249575f80fd5b506102056104de565b34801561025d575f80fd5b5061020561026c3660046117f6565b610528565b34801561027c575f80fd5b5061019e61028b3660046117ce565b61056f565b34801561029b575f80fd5b50610205610590565b3480156102af575f80fd5b50610205610601565b3480156102c3575f80fd5b505f546040516001600160a01b039091168152602001610152565b3480156102e9575f80fd5b5060408051808201909152600a815269474c4453414954414d4160b01b6020820152610145565b34801561031b575f80fd5b5061017a61032a366004611692565b610668565b34801561033a575f80fd5b50610205610674565b34801561034e575f80fd5b5061020561035d36600461170e565b6109dc565b34801561036d575f80fd5b5061019e61037c366004611811565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f6103b2338484610a6a565b5060015b92915050565b5f6103c96009600a61193c565b6103d89064e8d4a5100061194a565b905090565b5f6103e9848484610b8d565b61043a843361043585604051806060016040528060288152602001611ad8602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610f37565b610a6a565b5060019392505050565b5f546001600160a01b031633146104765760405162461bcd60e51b815260040161046d90611961565b60405180910390fd5b5f5b81518110156104da575f60065f84848151811061049757610497611996565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806104d2816119aa565b915050610478565b5050565b6011546001600160a01b0316336001600160a01b0316146104fd575f80fd5b5f6105073061056f565b905080156105185761051881610f6f565b4780156104da576104da816110df565b5f546001600160a01b031633146105515760405162461bcd60e51b815260040161046d90611961565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b0381165f908152600260205260408120546103b690611116565b5f546001600160a01b031633146105b95760405162461bcd60e51b815260040161046d90611961565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461062a5760405162461bcd60e51b815260040161046d90611961565b6106366009600a61193c565b6106459064e8d4a5100061194a565b6014556106546009600a61193c565b6106639064e8d4a5100061194a565b601555565b5f6103b2338484610b8d565b5f546001600160a01b0316331461069d5760405162461bcd60e51b815260040161046d90611961565b601354600160a01b900460ff16156106f75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161046d565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561074030826107316009600a61193c565b6104359064e8d4a5100061194a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a091906119c2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080f91906119c2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d91906119c2565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d71947306108ad8161056f565b5f806108c05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610926573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061094b91906119dd565b50506013805463ffff00ff60a01b198116630101000160a01b1790915560125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da9190611a08565b5f546001600160a01b03163314610a055760405162461bcd60e51b815260040161046d90611961565b5f5b81518110156104da57600160065f848481518110610a2757610a27611996565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a62816119aa565b915050610a07565b6001600160a01b038316610acc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046d565b6001600160a01b038216610b2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046d565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046d565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046d565b5f8111610cb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161046d565b5f546001600160a01b03848116911614801590610cde57505f546001600160a01b03838116911614155b15610f1d576001600160a01b0383165f9081526006602052604090205460ff16158015610d2357506001600160a01b0382165f9081526006602052604090205460ff16155b610d2b575f80fd5b6001600a55600e546010541015610d4457600c54610d48565b600d545b600b556013546001600160a01b038481169116148015610d7657506012546001600160a01b03838116911614155b8015610d9a57506001600160a01b0382165f9081526005602052604090205460ff16155b8015610daf5750601354600160b81b900460ff165b15610e8057601454811115610e065760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161046d565b60155481610e138461056f565b610e1d9190611a23565b1115610e6b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161046d565b60108054905f610e7a836119aa565b91905055505b5f610e8a3061056f565b601354909150600160a81b900460ff16158015610eb457506013546001600160a01b038481169116145b8015610ec95750601354600160b01b900460ff165b8015610ed757506016548110155b8015610ee65750600f54601054115b15610f1757610f058260165411610eff57601654610f6f565b82610f6f565b478015610f1557610f15476110df565b505b50610f27565b5f600a819055600b555b610f32838383611198565b505050565b5f8184841115610f5a5760405162461bcd60e51b815260040161046d9190611620565b505f610f668486611a36565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fb557610fb5611996565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561100c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103091906119c2565b8160018151811061104357611043611996565b6001600160a01b0392831660209182029290920101526012546110699130911684610a6a565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a19085905f90869030904290600401611a49565b5f604051808303815f87803b1580156110b8575f80fd5b505af11580156110ca573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104da573d5f803e3d5ffd5b5f60085482111561117c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046d565b5f6111856111a3565b905061119183826111c4565b9392505050565b610f32838383611205565b5f805f6111ae6112f6565b90925090506111bd82826111c4565b9250505090565b5f61119183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061137a565b5f805f805f80611214876113a6565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061124590876113fb565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611273908661143c565b6001600160a01b0389165f908152600260205260409020556112948161149a565b61129e84836114e0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112e391815260200190565b60405180910390a3505050505050505050565b6008545f9081908161130a6009600a61193c565b6113199064e8d4a5100061194a565b905061134261132a6009600a61193c565b6113399064e8d4a5100061194a565b600854906111c4565b821015611371576008546113586009600a61193c565b6113679064e8d4a5100061194a565b9350935050509091565b90939092509050565b5f818361139a5760405162461bcd60e51b815260040161046d9190611620565b505f610f668486611ab8565b5f805f805f805f805f6113be8a600a54600b54611504565b9250925092505f6113cd6111a3565b90505f805f6113de8e878787611556565b919e509c509a509598509396509194505050505091939550919395565b5f61119183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f37565b5f806114488385611a23565b9050838110156111915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046d565b5f6114a36111a3565b90505f6114b083836115a2565b305f908152600260205260409020549091506114cc908261143c565b305f90815260026020526040902055505050565b6008546114ed90836113fb565b6008556009546114fd908261143c565b6009555050565b5f80808061151d606461151789896115a2565b906111c4565b90505f61152f60646115178a896115a2565b90505f611546826115408b866113fb565b906113fb565b9992985090965090945050505050565b5f80808061156488866115a2565b90505f61157188876115a2565b90505f61157e88886115a2565b90505f61158f8261154086866113fb565b939b939a50919850919650505050505050565b5f825f036115b157505f6103b6565b5f6115bc838561194a565b9050826115c98583611ab8565b146111915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046d565b5f6020808352835180828501525f5b8181101561164b5785810183015185820160400152820161162f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167f575f80fd5b50565b803561168d8161166b565b919050565b5f80604083850312156116a3575f80fd5b82356116ae8161166b565b946020939093013593505050565b5f805f606084860312156116ce575f80fd5b83356116d98161166b565b925060208401356116e98161166b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561171f575f80fd5b823567ffffffffffffffff80821115611736575f80fd5b818501915085601f830112611749575f80fd5b81358181111561175b5761175b6116fa565b8060051b604051601f19603f83011681018181108582111715611780576117806116fa565b60405291825284820192508381018501918883111561179d575f80fd5b938501935b828510156117c2576117b385611682565b845293850193928501926117a2565b98975050505050505050565b5f602082840312156117de575f80fd5b81356111918161166b565b801515811461167f575f80fd5b5f60208284031215611806575f80fd5b8135611191816117e9565b5f8060408385031215611822575f80fd5b823561182d8161166b565b9150602083013561183d8161166b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561189657815f190482111561187c5761187c611848565b8085161561188957918102915b93841c9390800290611861565b509250929050565b5f826118ac575060016103b6565b816118b857505f6103b6565b81600181146118ce57600281146118d8576118f4565b60019150506103b6565b60ff8411156118e9576118e9611848565b50506001821b6103b6565b5060208310610133831016604e8410600b8410161715611917575081810a6103b6565b611921838361185c565b805f190482111561193457611934611848565b029392505050565b5f61119160ff84168361189e565b80820281158282048414176103b6576103b6611848565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016119bb576119bb611848565b5060010190565b5f602082840312156119d2575f80fd5b81516111918161166b565b5f805f606084860312156119ef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a18575f80fd5b8151611191816117e9565b808201808211156103b6576103b6611848565b818103818111156103b6576103b6611848565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a975784516001600160a01b031683529383019391830191600101611a72565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ad257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205f57d2cefa2f29facc5dbed076e163536b158018ee3f8d8c14d75df95061facf64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610108575f3560e01c806370a082311161009257806395d89b411161006257806395d89b41146102de578063a9059cbb14610310578063c9567bf91461032f578063d34628cc14610343578063dd62ed3e14610362575f80fd5b806370a0823114610271578063715018a614610290578063751039fc146102a45780638da5cb5b146102b8575f80fd5b8063313ce567116100d8578063313ce567146101cb57806331c2d847146101e65780633bbac5791461020757806351bc3c851461023e5780635932ead114610252575f80fd5b806306fdde0314610113578063095ea7b31461015b57806318160ddd1461018a57806323b872dd146101ac575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600e81526d476f6c64656e2053616974616d6160901b60208201525b6040516101529190611620565b60405180910390f35b348015610166575f80fd5b5061017a610175366004611692565b6103a6565b6040519015158152602001610152565b348015610195575f80fd5b5061019e6103bc565b604051908152602001610152565b3480156101b7575f80fd5b5061017a6101c63660046116bc565b6103dd565b3480156101d6575f80fd5b5060405160098152602001610152565b3480156101f1575f80fd5b5061020561020036600461170e565b610444565b005b348015610212575f80fd5b5061017a6102213660046117ce565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610249575f80fd5b506102056104de565b34801561025d575f80fd5b5061020561026c3660046117f6565b610528565b34801561027c575f80fd5b5061019e61028b3660046117ce565b61056f565b34801561029b575f80fd5b50610205610590565b3480156102af575f80fd5b50610205610601565b3480156102c3575f80fd5b505f546040516001600160a01b039091168152602001610152565b3480156102e9575f80fd5b5060408051808201909152600a815269474c4453414954414d4160b01b6020820152610145565b34801561031b575f80fd5b5061017a61032a366004611692565b610668565b34801561033a575f80fd5b50610205610674565b34801561034e575f80fd5b5061020561035d36600461170e565b6109dc565b34801561036d575f80fd5b5061019e61037c366004611811565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f6103b2338484610a6a565b5060015b92915050565b5f6103c96009600a61193c565b6103d89064e8d4a5100061194a565b905090565b5f6103e9848484610b8d565b61043a843361043585604051806060016040528060288152602001611ad8602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610f37565b610a6a565b5060019392505050565b5f546001600160a01b031633146104765760405162461bcd60e51b815260040161046d90611961565b60405180910390fd5b5f5b81518110156104da575f60065f84848151811061049757610497611996565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806104d2816119aa565b915050610478565b5050565b6011546001600160a01b0316336001600160a01b0316146104fd575f80fd5b5f6105073061056f565b905080156105185761051881610f6f565b4780156104da576104da816110df565b5f546001600160a01b031633146105515760405162461bcd60e51b815260040161046d90611961565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b0381165f908152600260205260408120546103b690611116565b5f546001600160a01b031633146105b95760405162461bcd60e51b815260040161046d90611961565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461062a5760405162461bcd60e51b815260040161046d90611961565b6106366009600a61193c565b6106459064e8d4a5100061194a565b6014556106546009600a61193c565b6106639064e8d4a5100061194a565b601555565b5f6103b2338484610b8d565b5f546001600160a01b0316331461069d5760405162461bcd60e51b815260040161046d90611961565b601354600160a01b900460ff16156106f75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161046d565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561074030826107316009600a61193c565b6104359064e8d4a5100061194a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a091906119c2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080f91906119c2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d91906119c2565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d71947306108ad8161056f565b5f806108c05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610926573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061094b91906119dd565b50506013805463ffff00ff60a01b198116630101000160a01b1790915560125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da9190611a08565b5f546001600160a01b03163314610a055760405162461bcd60e51b815260040161046d90611961565b5f5b81518110156104da57600160065f848481518110610a2757610a27611996565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a62816119aa565b915050610a07565b6001600160a01b038316610acc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046d565b6001600160a01b038216610b2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046d565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046d565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046d565b5f8111610cb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161046d565b5f546001600160a01b03848116911614801590610cde57505f546001600160a01b03838116911614155b15610f1d576001600160a01b0383165f9081526006602052604090205460ff16158015610d2357506001600160a01b0382165f9081526006602052604090205460ff16155b610d2b575f80fd5b6001600a55600e546010541015610d4457600c54610d48565b600d545b600b556013546001600160a01b038481169116148015610d7657506012546001600160a01b03838116911614155b8015610d9a57506001600160a01b0382165f9081526005602052604090205460ff16155b8015610daf5750601354600160b81b900460ff165b15610e8057601454811115610e065760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161046d565b60155481610e138461056f565b610e1d9190611a23565b1115610e6b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161046d565b60108054905f610e7a836119aa565b91905055505b5f610e8a3061056f565b601354909150600160a81b900460ff16158015610eb457506013546001600160a01b038481169116145b8015610ec95750601354600160b01b900460ff165b8015610ed757506016548110155b8015610ee65750600f54601054115b15610f1757610f058260165411610eff57601654610f6f565b82610f6f565b478015610f1557610f15476110df565b505b50610f27565b5f600a819055600b555b610f32838383611198565b505050565b5f8184841115610f5a5760405162461bcd60e51b815260040161046d9190611620565b505f610f668486611a36565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fb557610fb5611996565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561100c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103091906119c2565b8160018151811061104357611043611996565b6001600160a01b0392831660209182029290920101526012546110699130911684610a6a565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a19085905f90869030904290600401611a49565b5f604051808303815f87803b1580156110b8575f80fd5b505af11580156110ca573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104da573d5f803e3d5ffd5b5f60085482111561117c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046d565b5f6111856111a3565b905061119183826111c4565b9392505050565b610f32838383611205565b5f805f6111ae6112f6565b90925090506111bd82826111c4565b9250505090565b5f61119183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061137a565b5f805f805f80611214876113a6565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061124590876113fb565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611273908661143c565b6001600160a01b0389165f908152600260205260409020556112948161149a565b61129e84836114e0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112e391815260200190565b60405180910390a3505050505050505050565b6008545f9081908161130a6009600a61193c565b6113199064e8d4a5100061194a565b905061134261132a6009600a61193c565b6113399064e8d4a5100061194a565b600854906111c4565b821015611371576008546113586009600a61193c565b6113679064e8d4a5100061194a565b9350935050509091565b90939092509050565b5f818361139a5760405162461bcd60e51b815260040161046d9190611620565b505f610f668486611ab8565b5f805f805f805f805f6113be8a600a54600b54611504565b9250925092505f6113cd6111a3565b90505f805f6113de8e878787611556565b919e509c509a509598509396509194505050505091939550919395565b5f61119183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f37565b5f806114488385611a23565b9050838110156111915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046d565b5f6114a36111a3565b90505f6114b083836115a2565b305f908152600260205260409020549091506114cc908261143c565b305f90815260026020526040902055505050565b6008546114ed90836113fb565b6008556009546114fd908261143c565b6009555050565b5f80808061151d606461151789896115a2565b906111c4565b90505f61152f60646115178a896115a2565b90505f611546826115408b866113fb565b906113fb565b9992985090965090945050505050565b5f80808061156488866115a2565b90505f61157188876115a2565b90505f61157e88886115a2565b90505f61158f8261154086866113fb565b939b939a50919850919650505050505050565b5f825f036115b157505f6103b6565b5f6115bc838561194a565b9050826115c98583611ab8565b146111915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046d565b5f6020808352835180828501525f5b8181101561164b5785810183015185820160400152820161162f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167f575f80fd5b50565b803561168d8161166b565b919050565b5f80604083850312156116a3575f80fd5b82356116ae8161166b565b946020939093013593505050565b5f805f606084860312156116ce575f80fd5b83356116d98161166b565b925060208401356116e98161166b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561171f575f80fd5b823567ffffffffffffffff80821115611736575f80fd5b818501915085601f830112611749575f80fd5b81358181111561175b5761175b6116fa565b8060051b604051601f19603f83011681018181108582111715611780576117806116fa565b60405291825284820192508381018501918883111561179d575f80fd5b938501935b828510156117c2576117b385611682565b845293850193928501926117a2565b98975050505050505050565b5f602082840312156117de575f80fd5b81356111918161166b565b801515811461167f575f80fd5b5f60208284031215611806575f80fd5b8135611191816117e9565b5f8060408385031215611822575f80fd5b823561182d8161166b565b9150602083013561183d8161166b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561189657815f190482111561187c5761187c611848565b8085161561188957918102915b93841c9390800290611861565b509250929050565b5f826118ac575060016103b6565b816118b857505f6103b6565b81600181146118ce57600281146118d8576118f4565b60019150506103b6565b60ff8411156118e9576118e9611848565b50506001821b6103b6565b5060208310610133831016604e8410600b8410161715611917575081810a6103b6565b611921838361185c565b805f190482111561193457611934611848565b029392505050565b5f61119160ff84168361189e565b80820281158282048414176103b6576103b6611848565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016119bb576119bb611848565b5060010190565b5f602082840312156119d2575f80fd5b81516111918161166b565b5f805f606084860312156119ef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a18575f80fd5b8151611191816117e9565b808201808211156103b6576103b6611848565b818103818111156103b6576103b6611848565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a975784516001600160a01b031683529383019391830191600101611a72565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ad257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205f57d2cefa2f29facc5dbed076e163536b158018ee3f8d8c14d75df95061facf64736f6c63430008140033
Deployed Bytecode Sourcemap
3636:10616:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5639:83;;;;;;;;;;-1:-1:-1;5709:5:0;;;;;;;;;;;;-1:-1:-1;;;5709:5:0;;;;5639:83;;;;;;;:::i;:::-;;;;;;;;6491:161;;;;;;;;;;-1:-1:-1;6491:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6491:161:0;1162:187:1;5916:95:0;;;;;;;;;;;;;:::i;:::-;;;1500:25:1;;;1488:2;1473:18;5916:95:0;1354:177:1;6660:313:0;;;;;;;;;;-1:-1:-1;6660:313:0;;;;;:::i;:::-;;:::i;5825:83::-;;;;;;;;;;-1:-1:-1;5825:83:0;;4653:1;2139:36:1;;2127:2;2112:18;5825:83:0;1997:184:1;7264:162:0;;;;;;;;;;-1:-1:-1;7264:162:0;;;;;:::i;:::-;;:::i;:::-;;12477:83;;;;;;;;;;-1:-1:-1;12477:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;12545:7:0;12524:4;12545:7;;;:4;:7;;;;;;;;;12477:83;12117:352;;;;;;;;;;;;;:::i;6981:103::-;;;;;;;;;;-1:-1:-1;6981:103:0;;;;;:::i;:::-;;:::i;6019:138::-;;;;;;;;;;-1:-1:-1;6019:138:0;;;;;:::i;:::-;;:::i;2717:148::-;;;;;;;;;;;;;:::i;10045:118::-;;;;;;;;;;;;;:::i;2503:79::-;;;;;;;;;;-1:-1:-1;2541:7:0;2568:6;2503:79;;-1:-1:-1;;;;;2568:6:0;;;4211:51:1;;4199:2;4184:18;2503:79:0;4065:203:1;5730:87:0;;;;;;;;;;-1:-1:-1;5802:7:0;;;;;;;;;;;;-1:-1:-1;;;5802:7:0;;;;5730:87;;6165:167;;;;;;;;;;-1:-1:-1;6165:167:0;;;;;:::i;:::-;;:::i;10275:773::-;;;;;;;;;;;;;:::i;7092:164::-;;;;;;;;;;-1:-1:-1;7092:164:0;;;;;:::i;:::-;;:::i;6340:143::-;;;;;;;;;;-1:-1:-1;6340:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6448:18:0;;;6421:7;6448:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6340:143;6491:161;6566:4;6583:39;301:10;6606:7;6615:6;6583:8;:39::i;:::-;-1:-1:-1;6640:4:0;6491:161;;;;;:::o;5916:95::-;5969:7;4946:13;4653:1;4946:2;:13;:::i;:::-;4930:29;;:13;:29;:::i;:::-;5989:14;;5916:95;:::o;6660:313::-;6758:4;6775:36;6785:6;6793:9;6804:6;6775:9;:36::i;:::-;6822:121;6831:6;301:10;6853:89;6891:6;6853:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6853:19:0;;;;;;:11;:19;;;;;;;;301:10;6853:33;;;;;;;;;;:37;:89::i;:::-;6822:8;:121::i;:::-;-1:-1:-1;6961:4:0;6660:313;;;;;:::o;7264:162::-;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;;;;;;;;;7337:6:::1;7332:87;7353:6;:13;7349:1;:17;7332:87;;;7404:5;7386:4;:15;7391:6;7398:1;7391:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7386:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7386:15:0;:23;;-1:-1:-1;;7386:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7368:3;::::1;::::0;::::1;:::i;:::-;;;;7332:87;;;;7264:162:::0;:::o;12117:352::-;12181:14;;-1:-1:-1;;;;;12181:14:0;301:10;-1:-1:-1;;;;;12167:28:0;;12159:37;;;;;;12207:20;12228:24;12246:4;12228:9;:24::i;:::-;12207:45;-1:-1:-1;12266:14:0;;12263:73;;12294:30;12311:12;12294:16;:30::i;:::-;12365:21;12400:12;;12397:65;;12426:24;12439:10;12426:12;:24::i;6981:103::-;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;7053:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7053:23:0::1;-1:-1:-1::0;;;;7053:23:0;;::::1;::::0;;;::::1;::::0;;6981:103::o;6019:138::-;-1:-1:-1;;;;;6132:16:0;;6085:7;6132:16;;;:7;:16;;;;;;6112:37;;:19;:37::i;2717:148::-;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;2824:1:::1;2808:6:::0;;2787:40:::1;::::0;-1:-1:-1;;;;;2808:6:0;;::::1;::::0;2787:40:::1;::::0;2824:1;;2787:40:::1;2855:1;2838:19:::0;;-1:-1:-1;;;;;;2838:19:0::1;::::0;;2717:148::o;10045:118::-;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;4946:13:::1;4653:1;4946:2;:13;:::i;:::-;4930:29;::::0;:13:::1;:29;:::i;:::-;10098:12;:22:::0;4946:13:::1;4653:1;4946:2;:13;:::i;:::-;4930:29;::::0;:13:::1;:29;:::i;:::-;10131:14;:24:::0;10045:118::o;6165:167::-;6243:4;6260:42;301:10;6284:9;6295:6;6260:9;:42::i;10275:773::-;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;10339:11:::1;::::0;-1:-1:-1;;;10339:11:0;::::1;;;10338:12;10330:47;;;::::0;-1:-1:-1;;;10330:47:0;;7189:2:1;10330:47:0::1;::::0;::::1;7171:21:1::0;7228:2;7208:18;;;7201:30;7267:25;7247:18;;;7240:53;7310:18;;10330:47:0::1;6987:347:1::0;10330:47:0::1;10499:15;:34:::0;;-1:-1:-1;;;;;;10499:34:0::1;10445:42;10499:34:::0;;::::1;::::0;;;10544:58:::1;10561:4;10445:42:::0;4946:13:::1;4653:1;4946:2;:13;:::i;:::-;4930:29;::::0;:13:::1;:29;:::i;10544:58::-;10647:16;-1:-1:-1::0;;;;;10647:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10629:56:0::1;;10694:4;10701:16;-1:-1:-1::0;;;;;10701:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10629:96;::::0;-1:-1:-1;;;;;;10629:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7825:15:1;;;10629:96:0::1;::::0;::::1;7807:34:1::0;7877:15;;7857:18;;;7850:43;7742:18;;10629:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10613:13;:112:::0;;-1:-1:-1;;;;;;10613:112:0::1;-1:-1:-1::0;;;;;10613:112:0;;::::1;;::::0;;10736:15:::1;::::0;::::1;:31;10775:21;10806:4;10812:24;10806:4:::0;10812:9:::1;:24::i;:::-;10837:1;10839::::0;10841:7:::1;2541::::0;2568:6;-1:-1:-1;;;;;2568:6:0;;2503:79;10841:7:::1;10736:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10736:129:0;;;-1:-1:-1;;;;;8263:15:1;;;10736:129:0::1;::::0;::::1;8245:34:1::0;8295:18;;;8288:34;;;;8338:18;;;8331:34;;;;8381:18;;;8374:34;8445:15;;;8424:19;;;8417:44;10849:15:0::1;8477:19:1::0;;;8470:35;8179:19;;10736:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10876:11:0::1;:18:::0;;-1:-1:-1;;;;10940:18:0;;-1:-1:-1;;;10940:18:0;;;;11007:15:::1;::::0;10969:71:::1;::::0;-1:-1:-1;;;10969:71:0;;-1:-1:-1;;;;;11007:15:0;;::::1;10969:71;::::0;::::1;9001:51:1::0;-1:-1:-1;;9068:18:1;;;9061:34;10976:13:0;;;-1:-1:-1;10969:29:0::1;::::0;8974:18:1;;10969:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7092:164::-:0;2630:6;;-1:-1:-1;;;;;2630:6:0;301:10;2630:22;2622:67;;;;-1:-1:-1;;;2622:67:0;;;;;;;:::i;:::-;7166:6:::1;7161:88;7182:5;:12;7178:1;:16;7161:88;;;7233:4;7216;:14;7221:5;7227:1;7221:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7216:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7216:14:0;:21;;-1:-1:-1;;7216:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7196:3;::::1;::::0;::::1;:::i;:::-;;;;7161:88;;7696:335:::0;-1:-1:-1;;;;;7789:19:0;;7781:68;;;;-1:-1:-1;;;7781:68:0;;9558:2:1;7781:68:0;;;9540:21:1;9597:2;9577:18;;;9570:30;9636:34;9616:18;;;9609:62;-1:-1:-1;;;9687:18:1;;;9680:34;9731:19;;7781:68:0;9356:400:1;7781:68:0;-1:-1:-1;;;;;7868:21:0;;7860:68;;;;-1:-1:-1;;;7860:68:0;;9963:2:1;7860:68:0;;;9945:21:1;10002:2;9982:18;;;9975:30;10041:34;10021:18;;;10014:62;-1:-1:-1;;;10092:18:1;;;10085:32;10134:19;;7860:68:0;9761:398:1;7860:68:0;-1:-1:-1;;;;;7939:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7991:32;;1500:25:1;;;7991:32:0;;1473:18:1;7991:32:0;;;;;;;7696:335;;;:::o;8039:1505::-;-1:-1:-1;;;;;8127:18:0;;8119:68;;;;-1:-1:-1;;;8119:68:0;;10366:2:1;8119:68:0;;;10348:21:1;10405:2;10385:18;;;10378:30;10444:34;10424:18;;;10417:62;-1:-1:-1;;;10495:18:1;;;10488:35;10540:19;;8119:68:0;10164:401:1;8119:68:0;-1:-1:-1;;;;;8206:16:0;;8198:64;;;;-1:-1:-1;;;8198:64:0;;10772:2:1;8198:64:0;;;10754:21:1;10811:2;10791:18;;;10784:30;10850:34;10830:18;;;10823:62;-1:-1:-1;;;10901:18:1;;;10894:33;10944:19;;8198:64:0;10570:399:1;8198:64:0;8290:1;8281:6;:10;8273:64;;;;-1:-1:-1;;;8273:64:0;;11176:2:1;8273:64:0;;;11158:21:1;11215:2;11195:18;;;11188:30;11254:34;11234:18;;;11227:62;-1:-1:-1;;;11305:18:1;;;11298:39;11354:19;;8273:64:0;10974:405:1;8273:64:0;2541:7;2568:6;-1:-1:-1;;;;;8356:15:0;;;2568:6;;8356:15;;;;:32;;-1:-1:-1;2541:7:0;2568:6;-1:-1:-1;;;;;8375:13:0;;;2568:6;;8375:13;;8356:32;8352:1142;;;-1:-1:-1;;;;;8414:10:0;;;;;;:4;:10;;;;;;;;8413:11;:24;;;;-1:-1:-1;;;;;;8429:8:0;;;;;;:4;:8;;;;;;;;8428:9;8413:24;8405:33;;;;;;8465:1;8453:9;:13;8505:12;;8494:9;;:23;;8493:47;;8529:11;;8493:47;;;8519:9;;8493:47;8481:9;:59;8567:13;;-1:-1:-1;;;;;8559:21:0;;;8567:13;;8559:21;:55;;;;-1:-1:-1;8598:15:0;;-1:-1:-1;;;;;8584:30:0;;;8598:15;;8584:30;;8559:55;:83;;;;-1:-1:-1;;;;;;8620:22:0;;;;;;:18;:22;;;;;;;;8618:24;8559:83;:102;;;;-1:-1:-1;8646:15:0;;-1:-1:-1;;;8646:15:0;;;;8559:102;8555:360;;;8729:12;;8719:6;:22;;8711:60;;;;-1:-1:-1;;;8711:60:0;;11586:2:1;8711:60:0;;;11568:21:1;11625:2;11605:18;;;11598:30;11664:27;11644:18;;;11637:55;11709:18;;8711:60:0;11384:349:1;8711:60:0;8824:14;;8814:6;8798:13;8808:2;8798:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8790:79;;;;-1:-1:-1;;;8790:79:0;;12070:2:1;8790:79:0;;;12052:21:1;12109:2;12089:18;;;12082:30;12148:28;12128:18;;;12121:56;12194:18;;8790:79:0;11868:350:1;8790:79:0;8888:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8555:360;8933:28;8964:24;8982:4;8964:9;:24::i;:::-;9008:6;;8933:55;;-1:-1:-1;;;;9008:6:0;;;;9007:7;:32;;;;-1:-1:-1;9026:13:0;;-1:-1:-1;;;;;9019:20:0;;;9026:13;;9019:20;9007:32;:47;;;;-1:-1:-1;9043:11:0;;-1:-1:-1;;;9043:11:0;;;;9007:47;:87;;;;;9080:14;;9058:20;:36;;9007:87;:118;;;;;9108:17;;9098:9;;:27;9007:118;9003:412;;;9146:61;9178:6;9163:14;;:21;:43;;9192:14;;9146:16;:61::i;9163:43::-;9185:6;9146:16;:61::i;:::-;9255:21;9298:22;;9295:105;;9345:35;9358:21;9345:12;:35::i;:::-;9127:288;9003:412;8390:1036;8352:1142;;;9455:1;9443:9;:13;;;9469:9;:13;8352:1142;9506:30;9521:4;9526:2;9529:6;9506:14;:30::i;:::-;8039:1505;;;:::o;1358:190::-;1444:7;1480:12;1472:6;;;;1464:29;;;;-1:-1:-1;;;1464:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1504:9:0;1516:5;1520:1;1516;:5;:::i;:::-;1504:17;1358:190;-1:-1:-1;;;;;1358:190:0:o;9552:483::-;5242:6;:13;;-1:-1:-1;;;;5242:13:0;-1:-1:-1;;;5242:13:0;;;9654:16:::1;::::0;;9668:1:::1;9654:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9654:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9654:16:0::1;9630:40;;9699:4;9681;9686:1;9681:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9681:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9725:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9725:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9681:7;;9725:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9715:4;9720:1;9715:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9715:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9790:15:::1;::::0;9758:62:::1;::::0;9775:4:::1;::::0;9790:15:::1;9808:11:::0;9758:8:::1;:62::i;:::-;9831:15;::::0;:196:::1;::::0;-1:-1:-1;;;9831:196:0;;-1:-1:-1;;;;;9831:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9912:11;;9831:15:::1;::::0;9954:4;;9981::::1;::::0;10001:15:::1;::::0;9831:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5278:6:0;:14;;-1:-1:-1;;;;5278:14:0;;;-1:-1:-1;;;;9552:483:0:o;10171:96::-;10228:14;;:31;;-1:-1:-1;;;;;10228:14:0;;;;:31;;;;;10252:6;;10228:14;:31;:14;:31;10252:6;10228:14;:31;;;;;;;;;;;;;;;;;;;7434:254;7501:7;7540;;7529;:18;;7521:73;;;;-1:-1:-1;;;7521:73:0;;13543:2:1;7521:73:0;;;13525:21:1;13582:2;13562:18;;;13555:30;13621:34;13601:18;;;13594:62;-1:-1:-1;;;13672:18:1;;;13665:40;13722:19;;7521:73:0;13341:406:1;7521:73:0;7605:19;7628:10;:8;:10::i;:::-;7605:33;-1:-1:-1;7656:24:0;:7;7605:33;7656:11;:24::i;:::-;7649:31;7434:254;-1:-1:-1;;;7434:254:0:o;11056:146::-;11150:44;11168:6;11176:9;11187:6;11150:17;:44::i;13822:163::-;13863:7;13884:15;13901;13920:19;:17;:19::i;:::-;13883:56;;-1:-1:-1;13883:56:0;-1:-1:-1;13957:20:0;13883:56;;13957:11;:20::i;:::-;13950:27;;;;13822:163;:::o;1810:132::-;1868:7;1895:39;1899:1;1902;1895:39;;;;;;;;;;;;;;;;;:3;:39::i;11210:487::-;11309:15;11326:23;11351:12;11365:23;11390:12;11404:13;11421:19;11432:7;11421:10;:19::i;:::-;-1:-1:-1;;;;;11469:15:0;;;;;;:7;:15;;;;;;11308:132;;-1:-1:-1;11308:132:0;;-1:-1:-1;11308:132:0;;-1:-1:-1;11308:132:0;-1:-1:-1;11308:132:0;-1:-1:-1;11308:132:0;-1:-1:-1;11469:28:0;;11308:132;11469:19;:28::i;:::-;-1:-1:-1;;;;;11451:15:0;;;;;;;:7;:15;;;;;;:46;;;;11529:18;;;;;;;:39;;11552:15;11529:22;:39::i;:::-;-1:-1:-1;;;;;11508:18:0;;;;;;:7;:18;;;;;:60;11579:16;11589:5;11579:9;:16::i;:::-;11606:23;11618:4;11624;11606:11;:23::i;:::-;11662:9;-1:-1:-1;;;;;11645:44:0;11654:6;-1:-1:-1;;;;;11645:44:0;;11673:15;11645:44;;;;1500:25:1;;1488:2;1473:18;;1354:177;11645:44:0;;;;;;;;11297:400;;;;;;11210:487;;;:::o;13993:256::-;14090:7;;14043;;;;;4946:13;4653:1;4946:2;:13;:::i;:::-;4930:29;;:13;:29;:::i;:::-;14108:25;-1:-1:-1;14158:20:0;4946:13;4653:1;4946:2;:13;:::i;:::-;4930:29;;:13;:29;:::i;:::-;14158:7;;;:11;:20::i;:::-;14148:7;:30;14144:61;;;14188:7;;4946:13;4653:1;4946:2;:13;:::i;:::-;4930:29;;:13;:29;:::i;:::-;14180:25;;;;;;13993:256;;:::o;14144:61::-;14224:7;;14233;;-1:-1:-1;13993:256:0;-1:-1:-1;13993:256:0:o;1950:189::-;2036:7;2071:12;2064:5;2056:28;;;;-1:-1:-1;;;2056:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2095:9:0;2107:5;2111:1;2107;:5;:::i;12570:471::-;12629:7;12638;12647;12656;12665;12674;12695:23;12720:12;12734:13;12751:42;12763:7;12772:9;;12783;;12751:11;:42::i;:::-;12694:99;;;;;;12804:19;12827:10;:8;:10::i;:::-;12804:33;;12849:15;12866:23;12891:12;12907:46;12919:7;12928:4;12934:5;12941:11;12907;:46::i;:::-;12848:105;;-1:-1:-1;12848:105:0;-1:-1:-1;12848:105:0;-1:-1:-1;13004:15:0;;-1:-1:-1;13021:4:0;;-1:-1:-1;13027:5:0;;-1:-1:-1;;;;;12570:471:0;;;;;;;:::o;1214:136::-;1272:7;1299:43;1303:1;1306;1299:43;;;;;;;;;;;;;;;;;:3;:43::i;1027:179::-;1085:7;;1117:5;1121:1;1117;:5;:::i;:::-;1105:17;;1146:1;1141;:6;;1133:46;;;;-1:-1:-1;;;1133:46:0;;14176:2:1;1133:46:0;;;14158:21:1;14215:2;14195:18;;;14188:30;14254:29;14234:18;;;14227:57;14301:18;;1133:46:0;13974:351:1;11705:212:0;11758:19;11781:10;:8;:10::i;:::-;11758:33;-1:-1:-1;11802:13:0;11818:22;:5;11758:33;11818:9;:22::i;:::-;11892:4;11876:22;;;;:7;:22;;;;;;11802:38;;-1:-1:-1;11876:33:0;;11802:38;11876:26;:33::i;:::-;11867:4;11851:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11705:212:0:o;11925:147::-;12003:7;;:17;;12015:4;12003:11;:17::i;:::-;11993:7;:27;12044:10;;:20;;12059:4;12044:14;:20::i;:::-;12031:10;:33;-1:-1:-1;;11925:147:0:o;13049:351::-;13142:7;;;;13195:28;13219:3;13195:19;:7;13207:6;13195:11;:19::i;:::-;:23;;:28::i;:::-;13180:43;-1:-1:-1;13234:13:0;13250:29;13275:3;13250:20;:7;13262;13250:11;:20::i;:29::-;13234:45;-1:-1:-1;13290:23:0;13316:28;13234:45;13316:17;:7;13328:4;13316:11;:17::i;:::-;:21;;:28::i;:::-;13290:54;13380:4;;-1:-1:-1;13386:5:0;;-1:-1:-1;13049:351:0;;-1:-1:-1;;;;;13049:351:0:o;13408:409::-;13518:7;;;;13574:24;:7;13586:11;13574;:24::i;:::-;13556:42;-1:-1:-1;13609:12:0;13624:21;:4;13633:11;13624:8;:21::i;:::-;13609:36;-1:-1:-1;13656:13:0;13672:22;:5;13682:11;13672:9;:22::i;:::-;13656:38;-1:-1:-1;13705:23:0;13731:28;13656:38;13731:17;:7;13743:4;13731:11;:17::i;:28::-;13778:7;;;;-1:-1:-1;13804:4:0;;-1:-1:-1;13408:409:0;;-1:-1:-1;;;;;;;13408:409:0:o;1556:246::-;1614:7;1638:1;1643;1638:6;1634:47;;-1:-1:-1;1668:1:0;1661:8;;1634:47;1691:9;1703:5;1707:1;1703;:5;:::i;:::-;1691:17;-1:-1:-1;1736:1:0;1727:5;1731:1;1691:17;1727:5;:::i;:::-;:10;1719:56;;;;-1:-1:-1;;;1719:56:0;;14532:2:1;1719:56:0;;;14514:21:1;14571:2;14551:18;;;14544:30;14610:34;14590:18;;;14583:62;-1:-1:-1;;;14661:18:1;;;14654:31;14702:19;;1719:56:0;14330:397:1;14:548;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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3696:118::-;3782:5;3775:13;3768:21;3761:5;3758:32;3748:60;;3804:1;3801;3794:12;3819:241;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;3983:9;3970:23;4002:28;4024:5;4002:28;:::i;4273:388::-;4341:6;4349;4402:2;4390:9;4381:7;4377:23;4373:32;4370:52;;;4418:1;4415;4408:12;4370:52;4457:9;4444:23;4476:31;4501:5;4476:31;:::i;:::-;4526:5;-1:-1:-1;4583:2:1;4568:18;;4555:32;4596:33;4555:32;4596:33;:::i;:::-;4648:7;4638:17;;;4273:388;;;;;:::o;4666:127::-;4727:10;4722:3;4718:20;4715:1;4708:31;4758:4;4755:1;4748:15;4782:4;4779:1;4772:15;4798:422;4887:1;4930:5;4887:1;4944:270;4965:7;4955:8;4952:21;4944:270;;;5024:4;5020:1;5016:6;5012:17;5006:4;5003:27;5000:53;;;5033:18;;:::i;:::-;5083:7;5073:8;5069:22;5066:55;;;5103:16;;;;5066:55;5182:22;;;;5142:15;;;;4944:270;;;4948:3;4798:422;;;;;:::o;5225:806::-;5274:5;5304:8;5294:80;;-1:-1:-1;5345:1:1;5359:5;;5294:80;5393:4;5383:76;;-1:-1:-1;5430:1:1;5444:5;;5383:76;5475:4;5493:1;5488:59;;;;5561:1;5556:130;;;;5468:218;;5488:59;5518:1;5509:10;;5532:5;;;5556:130;5593:3;5583:8;5580:17;5577:43;;;5600:18;;:::i;:::-;-1:-1:-1;;5656:1:1;5642:16;;5671:5;;5468:218;;5770:2;5760:8;5757:16;5751:3;5745:4;5742:13;5738:36;5732:2;5722:8;5719:16;5714:2;5708:4;5705:12;5701:35;5698:77;5695:159;;;-1:-1:-1;5807:19:1;;;5839:5;;5695:159;5886:34;5911:8;5905:4;5886:34;:::i;:::-;5956:6;5952:1;5948:6;5944:19;5935:7;5932:32;5929:58;;;5967:18;;:::i;:::-;6005:20;;5225:806;-1:-1:-1;;;5225:806:1:o;6036:140::-;6094:5;6123:47;6164:4;6154:8;6150:19;6144:4;6123:47;:::i;6181:168::-;6254:9;;;6285;;6302:15;;;6296:22;;6282:37;6272:71;;6323:18;;:::i;6354:356::-;6556:2;6538:21;;;6575:18;;;6568:30;6634:34;6629:2;6614:18;;6607:62;6701:2;6686:18;;6354:356::o;6715:127::-;6776:10;6771:3;6767:20;6764:1;6757:31;6807:4;6804:1;6797:15;6831:4;6828:1;6821:15;6847:135;6886:3;6907:17;;;6904:43;;6927:18;;:::i;:::-;-1:-1:-1;6974:1:1;6963:13;;6847:135::o;7339:251::-;7409:6;7462:2;7450:9;7441:7;7437:23;7433:32;7430:52;;;7478:1;7475;7468:12;7430:52;7510:9;7504:16;7529:31;7554:5;7529:31;:::i;8516:306::-;8604:6;8612;8620;8673:2;8661:9;8652:7;8648:23;8644:32;8641:52;;;8689:1;8686;8679:12;8641:52;8718:9;8712:16;8702:26;;8768:2;8757:9;8753:18;8747:25;8737:35;;8812:2;8801:9;8797:18;8791:25;8781:35;;8516:306;;;;;:::o;9106:245::-;9173:6;9226:2;9214:9;9205:7;9201:23;9197:32;9194:52;;;9242:1;9239;9232:12;9194:52;9274:9;9268:16;9293:28;9315:5;9293:28;:::i;11738:125::-;11803:9;;;11824:10;;;11821:36;;;11837:18;;:::i;12223:128::-;12290:9;;;12311:11;;;12308:37;;;12325:18;;:::i;12356:980::-;12618:4;12666:3;12655:9;12651:19;12697:6;12686:9;12679:25;12723:2;12761:6;12756:2;12745:9;12741:18;12734:34;12804:3;12799:2;12788:9;12784:18;12777:31;12828:6;12863;12857:13;12894:6;12886;12879:22;12932:3;12921:9;12917:19;12910:26;;12971:2;12963:6;12959:15;12945:29;;12992:1;13002:195;13016:6;13013:1;13010:13;13002:195;;;13081:13;;-1:-1:-1;;;;;13077:39:1;13065:52;;13172:15;;;;13137:12;;;;13113:1;13031:9;13002:195;;;-1:-1:-1;;;;;;;13253:32:1;;;;13248:2;13233:18;;13226:60;-1:-1:-1;;;13317:3:1;13302:19;13295:35;13214:3;12356:980;-1:-1:-1;;;12356:980:1:o;13752:217::-;13792:1;13818;13808:132;;13862:10;13857:3;13853:20;13850:1;13843:31;13897:4;13894:1;13887:15;13925:4;13922:1;13915:15;13808:132;-1:-1:-1;13954:9:1;;13752:217::o
Swarm Source
ipfs://5f57d2cefa2f29facc5dbed076e163536b158018ee3f8d8c14d75df95061facf
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.