ERC-20
Overview
Max Total Supply
1,000,000,000 LORDS
Holders
1
Total Transfers
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DragonLords
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-21 */ // Telegram : https://t.me/DragonLords_ETH // Twitter : twitter.com/dragonLordsEth_ // Website : https://dragon-lords.vercel.app/ // Medium : https://medium.com/@DragonLordsETH /* Dragon Lords is a play-to-earn project set to launch on Ethereum with various monsters and dragons you scan tame and will accompany you through the quests for better world. Built in Unity Engine, the game world will set in Medieval Fantasy, various characters and more than 35 monsters and dragons are available to choose with power elements attached to them. The monsters will also be able to be collected as dynamic NFTs later. We will build a sustainable play-to-earn metaverse on Ethereum Blockchain that integrates the best of both between virtual and real world. */ // SPDX-License-Identifier: MIT pragma solidity 0.8.11; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { 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); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } contract DragonLords is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; uint256 constant private startingSupply = 1_000_000_000; string constant private _name = "Dragon Lords"; string constant private _symbol = "LORDS"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 liquidity; uint16 marketing; uint16 development; uint16 totalSwap; } Fees public _taxRates = Fees({ buyFee: 5, sellFee: 7, transferFee: 0 }); Ratios public _ratios = Ratios({ liquidity: 1, marketing: 2, development: 2, totalSwap: 5 }); uint256 constant masterTaxDivisor = 100; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable development; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0x498893c71BCE086E56e36CFa724C124FDB1CCAc2), development: payable(0x498893c71BCE086E56e36CFa724C124FDB1CCAc2) }); bool inSwap; bool public contractSwapEnabled = true; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled = true; uint256 public piSwapPercent = 10; bool public tradingEnabled = true; bool public _hasLiqBeenAdded = false; uint256 public launchStamp; event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } constructor () payable { // Set the owner. _owner = msg.sender; TFP[_owner] = true; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; _isExcludedFromFees[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true; // Uniswap v2 _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) _isExcludedFromFees[_owner] = true; } mapping (address => bool) internal TFP; //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _owner; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } modifier TFPP() { require(isTFPP(msg.sender), "!AUTHORIZED"); _; } function isTFPP(address adr) public view returns (bool) { return TFP[adr]; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function renounceOwnership() external onlyOwner { address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return _owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } function ChangeFii(uint16 buyFee, uint16 sellFee, uint16 transferFee) public TFPP { _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function _transfer(address from, address to, uint256 amount) internal returns (bool) { 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"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if(!tradingEnabled) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } if (sell) { if (!inSwap) { if (contractSwapEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / ratios.totalSwap) / 2; uint256 swapAmt = contractTokenBalance - toLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmt, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt; if (toLiquify > 0) { try dexRouter.addLiquidityETH{value: liquidityBalance}( address(this), toLiquify, 0, 0, DEAD, block.timestamp ) { emit AutoLiquify(liquidityBalance, toLiquify); } catch { return; } } amtBalance -= liquidityBalance; ratios.totalSwap -= ratios.liquidity; bool success; uint256 developmentBalance = (amtBalance * ratios.development) / ratios.totalSwap; uint256 marketingBalance = amtBalance; if (ratios.marketing > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 55000}(""); } if (ratios.development > 0) { (success,) = _taxWallets.development.call{value: developmentBalance, gas: 55000}(""); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell) internal returns (bool) { bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if(!TFP[from] && !TFP[to]){ require(tradingEnabled, ""); } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } if (currentFee == 0) { return amount; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"ChangeFii","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isTFPP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","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":"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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
6000600281815560056080819052600760a081905260c084905280546207000565ffffffffffff19909116179055600160e08190526101008381526101209390935261014091909152600880546001600160401b03191666050002000200011790556101a0604090815273498893c71bce086e56e36cfa724c124fdb1ccac2610160819052610180819052600b80546001600160a01b03199081168317909155600c80548216909217909155600d805461ff0019169094179093556010805460ff199081168417909155600a60118190556012805461ffff191685178155601580543397168717905594865260146020529190942080549094169091179092556200010a91620006d6565b6200011a90633b9aca00620006ee565b601580546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200016e6012600a620006d6565b6200017e90633b9aca00620006ee565b60405190815260200160405180910390a3600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a919062000710565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000710565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000315919062000710565b600a80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff1916909117905560155460095462000369929182169116600019620004c0565b600954620003859030906001600160a01b0316600019620004c0565b601580546001600160a01b0390811660009081526006602081815260408084208054600160ff19918216811790925530865282862080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055875487168652600484528286208054821683179055939092527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b480548416831790557f9f0450866e340883c5637ebf25d629ea9e0ea06bf9caa3748b581238b1bc2bb980548416831790557f9b00c99845a242ceea732a2478bee8e7b057d22892cafbdc32d0e607c88ddea080548416831790557fab9d0a02af394b8961be3a9588d91fbbf70984385fd8d3031385f593b62a4bf980548416831790559454909316825292902080549092161790556200073b565b6001600160a01b038316620005125760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620005605760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000509565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000618578160001904821115620005fc57620005fc620005c1565b808516156200060a57918102915b93841c9390800290620005dc565b509250929050565b6000826200063157506001620006d0565b816200064057506000620006d0565b8160018114620006595760028114620006645762000684565b6001915050620006d0565b60ff841115620006785762000678620005c1565b50506001821b620006d0565b5060208310610133831016604e8410600b8410161715620006a9575081810a620006d0565b620006b58383620005d7565b8060001904821115620006cc57620006cc620005c1565b0290505b92915050565b6000620006e760ff84168362000620565b9392505050565b60008160001904831182151516156200070b576200070b620005c1565b500290565b6000602082840312156200072357600080fd5b81516001600160a01b0381168114620006e757600080fd5b611a14806200074b6000396000f3fe6080604052600436106101d15760003560e01c80634ada218b116100f7578063893d20e811610095578063cf84770611610064578063cf8477061461059e578063dd62ed3e14610609578063f94aa1b41461064f578063fdb78c0e1461069657600080fd5b8063893d20e81461051857806395d89b4114610536578063a9059cbb14610564578063b7df8b361461058457600080fd5b80635a6f0918116100d15780635a6f09181461049757806370a08231146104ad578063715018a6146104e357806380c581d1146104f857600080fd5b80634ada218b146104255780634fbee1931461043f57806350a8e0161461047857600080fd5b806318160ddd1161016f5780632e8fa8211161013e5780632e8fa8211461039a5780632fcbd7b7146103b0578063313ce567146103e9578063452ed4f11461040557600080fd5b806318160ddd1461033a57806323b872dd1461034f578063285777511461036f5780632b112e491461038557600080fd5b806306fdde03116101ab57806306fdde031461028a5780630758d924146102c857806308a2950b146102e8578063095ea7b31461030a57600080fd5b806303fd2a45146101dd5780630445b66714610210578063069d955f1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f361dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b50610226600e5481565b604051908152602001610207565b34801561024057600080fd5b506007546102659061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610207565b34801561029657600080fd5b5060408051808201909152600c81526b447261676f6e204c6f72647360a01b60208201525b60405161020791906115ac565b3480156102d457600080fd5b506009546101f3906001600160a01b031681565b3480156102f457600080fd5b50610308610303366004611618565b6106b5565b005b34801561031657600080fd5b5061032a610325366004611673565b610746565b6040519015158152602001610207565b34801561034657600080fd5b5061022661075d565b34801561035b57600080fd5b5061032a61036a36600461169f565b61077e565b34801561037b57600080fd5b5061022660115481565b34801561039157600080fd5b506102266107f6565b3480156103a657600080fd5b50610226600f5481565b3480156103bc57600080fd5b5061032a6103cb3660046116e0565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103f557600080fd5b5060405160128152602001610207565b34801561041157600080fd5b50600a546101f3906001600160a01b031681565b34801561043157600080fd5b5060125461032a9060ff1681565b34801561044b57600080fd5b5061032a61045a3660046116e0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561048457600080fd5b5060125461032a90610100900460ff1681565b3480156104a357600080fd5b5061022660135481565b3480156104b957600080fd5b506102266104c83660046116e0565b6001600160a01b031660009081526020819052604090205490565b3480156104ef57600080fd5b50610308610874565b34801561050457600080fd5b50610308610513366004611704565b610910565b34801561052457600080fd5b506015546001600160a01b03166101f3565b34801561054257600080fd5b506040805180820190915260058152644c4f52445360d81b60208201526102bb565b34801561057057600080fd5b5061032a61057f366004611673565b610a73565b34801561059057600080fd5b5060105461032a9060ff1681565b3480156105aa57600080fd5b506008546105db9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610207565b34801561061557600080fd5b50610226610624366004611742565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561065b57600080fd5b50600b54600c54610676916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610207565b3480156106a257600080fd5b50600d5461032a90610100900460ff1681565b3360009081526014602052604090205460ff166107075760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000610753338484610a8a565b5060015b92915050565b600061076b6012600a61186a565b61077990633b9aca00611879565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107e3576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107dd908490611898565b90915550505b6107ee848484610b83565b949350505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461085091906118af565b61085c6012600a61186a565b61086a90633b9aca00611879565b6107799190611898565b6015546001600160a01b031633146108c25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106fe565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b0316331461095e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106fe565b8061098557506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156109de576203f4806002544261099f9190611898565b116109de5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b60448201526064016106fe565b6001600160a01b03821660009081526001602052604090205460ff1615610a475760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016106fe565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b6000610a80338484610b83565b5060019392505050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106fe565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106fe565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106fe565b6001600160a01b038316610c4b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106fe565b60008211610cad5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106fe565b6001600160a01b0384166000908152600160205260408120548190819060ff1615610cdb5760019250610d09565b6001600160a01b03861660009081526001602052604090205460ff1615610d055760019150610d09565b5060015b60125460ff16610e055780610d605760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106fe565b6001600160a01b03871660009081526005602052604090205460ff16158015610da257506001600160a01b03861660009081526005602052604090205460ff16155b15610e055760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106fe565b8115610e9b57600d5460ff16610e9b57600d54610100900460ff1615610e9b5730600090815260208190526040902054600e548110610e9957600f5460105460ff1615610e8357601154600a546001600160a01b0316600090815260208190526040902054606491610e7691611879565b610e8091906118c7565b90505b808210610e8e578091505b610e9782610eb3565b505b505b610ea88787878686611332565b979650505050505050565b600d805460ff191660011790556040805160808101825260085461ffff80821683526201000082048116602084015264010000000082048116938301939093526601000000000000900490911660608201819052610f115750611325565b3060009081526003602090815260408083206009546001600160a01b0316845290915290205460001914610f6a573060009081526003602090815260408083206009546001600160a01b03168452909152902060001990555b60006002826060015161ffff16836000015161ffff1685610f8b9190611879565b610f9591906118c7565b610f9f91906118c7565b90506000610fad8285611898565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fe757610fe76118e9565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611040573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106491906118ff565b81600181518110611077576110776118e9565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906110bd90859060009086903090429060040161191c565b600060405180830381600087803b1580156110d757600080fd5b505af19250505080156110e8575060015b6110f55750505050611325565b476000836111038684611879565b61110d91906118c7565b905084156111ec5760095460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1935050505080156111a0575060408051601f3d908101601f1916820190925261119d9181019061198d565b60015b6111af57505050505050611325565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6111f68183611898565b915085600001518660600181815161120e91906119bb565b61ffff9081169091526060880151604089015160009350839291821691611236911686611879565b61124091906118c7565b6020890151909150849061ffff16156112b057600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d80600081146112a5576040519150601f19603f3d011682016040523d82523d6000602084013e6112aa565b606091505b50909350505b604089015161ffff161561131b57600c546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114611310576040519150601f19603f3d011682016040523d82523d6000602084013e611315565b606091505b50909350505b5050505050505050505b50600d805460ff19169055565b6001600160a01b03851660009081526006602052604081205460019060ff168061137457506001600160a01b03861660009081526006602052604090205460ff165b1561137d575060005b6001600160a01b03871660009081526014602052604090205460ff161580156113bf57506001600160a01b03861660009081526014602052604090205460ff16155b156113f05760125460ff166113f05760405162461bcd60e51b815260206004820152600060248201526044016106fe565b6001600160a01b03871660009081526020819052604081208054879290611418908490611898565b90915550600090508161142b5785611437565b611437888686896114cf565b905080600080896001600160a01b03166001600160a01b03168152602001908152602001600020600082825461146d91906118af565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b991815260200190565b60405180910390a3506001979650505050505050565b60008084156114e5575060075461ffff1661150f565b83156114fe575060075462010000900461ffff1661150f565b50600754640100000000900461ffff165b8061151d57829150506107ee565b6000606461152b8386611879565b61153591906118c7565b905080156115a257306000908152602081905260408120805483929061155c9084906118af565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610ea88185611898565b600060208083528351808285015260005b818110156115d9578581018301518582016040015282016115bd565b818111156115eb576000604083870101525b50601f01601f1916929092016040019392505050565b803561ffff8116811461161357600080fd5b919050565b60008060006060848603121561162d57600080fd5b61163684611601565b925061164460208501611601565b915061165260408501611601565b90509250925092565b6001600160a01b038116811461167057600080fd5b50565b6000806040838503121561168657600080fd5b82356116918161165b565b946020939093013593505050565b6000806000606084860312156116b457600080fd5b83356116bf8161165b565b925060208401356116cf8161165b565b929592945050506040919091013590565b6000602082840312156116f257600080fd5b81356116fd8161165b565b9392505050565b6000806040838503121561171757600080fd5b82356117228161165b565b91506020830135801515811461173757600080fd5b809150509250929050565b6000806040838503121561175557600080fd5b82356117608161165b565b915060208301356117378161165b565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117c15781600019048211156117a7576117a7611770565b808516156117b457918102915b93841c939080029061178b565b509250929050565b6000826117d857506001610757565b816117e557506000610757565b81600181146117fb576002811461180557611821565b6001915050610757565b60ff84111561181657611816611770565b50506001821b610757565b5060208310610133831016604e8410600b8410161715611844575081810a610757565b61184e8383611786565b806000190482111561186257611862611770565b029392505050565b60006116fd60ff8416836117c9565b600081600019048311821515161561189357611893611770565b500290565b6000828210156118aa576118aa611770565b500390565b600082198211156118c2576118c2611770565b500190565b6000826118e457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561191157600080fd5b81516116fd8161165b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119a257600080fd5b8351925060208401519150604084015190509250925092565b600061ffff838116908316818110156119d6576119d6611770565b03939250505056fea2646970667358221220ec6c5f22ef0117d6405e1c67d708945b2c16db2eda5514ad206f72fea1e177fd64736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80634ada218b116100f7578063893d20e811610095578063cf84770611610064578063cf8477061461059e578063dd62ed3e14610609578063f94aa1b41461064f578063fdb78c0e1461069657600080fd5b8063893d20e81461051857806395d89b4114610536578063a9059cbb14610564578063b7df8b361461058457600080fd5b80635a6f0918116100d15780635a6f09181461049757806370a08231146104ad578063715018a6146104e357806380c581d1146104f857600080fd5b80634ada218b146104255780634fbee1931461043f57806350a8e0161461047857600080fd5b806318160ddd1161016f5780632e8fa8211161013e5780632e8fa8211461039a5780632fcbd7b7146103b0578063313ce567146103e9578063452ed4f11461040557600080fd5b806318160ddd1461033a57806323b872dd1461034f578063285777511461036f5780632b112e491461038557600080fd5b806306fdde03116101ab57806306fdde031461028a5780630758d924146102c857806308a2950b146102e8578063095ea7b31461030a57600080fd5b806303fd2a45146101dd5780630445b66714610210578063069d955f1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f361dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b50610226600e5481565b604051908152602001610207565b34801561024057600080fd5b506007546102659061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610207565b34801561029657600080fd5b5060408051808201909152600c81526b447261676f6e204c6f72647360a01b60208201525b60405161020791906115ac565b3480156102d457600080fd5b506009546101f3906001600160a01b031681565b3480156102f457600080fd5b50610308610303366004611618565b6106b5565b005b34801561031657600080fd5b5061032a610325366004611673565b610746565b6040519015158152602001610207565b34801561034657600080fd5b5061022661075d565b34801561035b57600080fd5b5061032a61036a36600461169f565b61077e565b34801561037b57600080fd5b5061022660115481565b34801561039157600080fd5b506102266107f6565b3480156103a657600080fd5b50610226600f5481565b3480156103bc57600080fd5b5061032a6103cb3660046116e0565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103f557600080fd5b5060405160128152602001610207565b34801561041157600080fd5b50600a546101f3906001600160a01b031681565b34801561043157600080fd5b5060125461032a9060ff1681565b34801561044b57600080fd5b5061032a61045a3660046116e0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561048457600080fd5b5060125461032a90610100900460ff1681565b3480156104a357600080fd5b5061022660135481565b3480156104b957600080fd5b506102266104c83660046116e0565b6001600160a01b031660009081526020819052604090205490565b3480156104ef57600080fd5b50610308610874565b34801561050457600080fd5b50610308610513366004611704565b610910565b34801561052457600080fd5b506015546001600160a01b03166101f3565b34801561054257600080fd5b506040805180820190915260058152644c4f52445360d81b60208201526102bb565b34801561057057600080fd5b5061032a61057f366004611673565b610a73565b34801561059057600080fd5b5060105461032a9060ff1681565b3480156105aa57600080fd5b506008546105db9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610207565b34801561061557600080fd5b50610226610624366004611742565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561065b57600080fd5b50600b54600c54610676916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610207565b3480156106a257600080fd5b50600d5461032a90610100900460ff1681565b3360009081526014602052604090205460ff166107075760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000610753338484610a8a565b5060015b92915050565b600061076b6012600a61186a565b61077990633b9aca00611879565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107e3576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107dd908490611898565b90915550505b6107ee848484610b83565b949350505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461085091906118af565b61085c6012600a61186a565b61086a90633b9aca00611879565b6107799190611898565b6015546001600160a01b031633146108c25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106fe565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b0316331461095e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106fe565b8061098557506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156109de576203f4806002544261099f9190611898565b116109de5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b60448201526064016106fe565b6001600160a01b03821660009081526001602052604090205460ff1615610a475760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016106fe565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b6000610a80338484610b83565b5060019392505050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106fe565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106fe565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106fe565b6001600160a01b038316610c4b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106fe565b60008211610cad5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106fe565b6001600160a01b0384166000908152600160205260408120548190819060ff1615610cdb5760019250610d09565b6001600160a01b03861660009081526001602052604090205460ff1615610d055760019150610d09565b5060015b60125460ff16610e055780610d605760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106fe565b6001600160a01b03871660009081526005602052604090205460ff16158015610da257506001600160a01b03861660009081526005602052604090205460ff16155b15610e055760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106fe565b8115610e9b57600d5460ff16610e9b57600d54610100900460ff1615610e9b5730600090815260208190526040902054600e548110610e9957600f5460105460ff1615610e8357601154600a546001600160a01b0316600090815260208190526040902054606491610e7691611879565b610e8091906118c7565b90505b808210610e8e578091505b610e9782610eb3565b505b505b610ea88787878686611332565b979650505050505050565b600d805460ff191660011790556040805160808101825260085461ffff80821683526201000082048116602084015264010000000082048116938301939093526601000000000000900490911660608201819052610f115750611325565b3060009081526003602090815260408083206009546001600160a01b0316845290915290205460001914610f6a573060009081526003602090815260408083206009546001600160a01b03168452909152902060001990555b60006002826060015161ffff16836000015161ffff1685610f8b9190611879565b610f9591906118c7565b610f9f91906118c7565b90506000610fad8285611898565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fe757610fe76118e9565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611040573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106491906118ff565b81600181518110611077576110776118e9565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906110bd90859060009086903090429060040161191c565b600060405180830381600087803b1580156110d757600080fd5b505af19250505080156110e8575060015b6110f55750505050611325565b476000836111038684611879565b61110d91906118c7565b905084156111ec5760095460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1935050505080156111a0575060408051601f3d908101601f1916820190925261119d9181019061198d565b60015b6111af57505050505050611325565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6111f68183611898565b915085600001518660600181815161120e91906119bb565b61ffff9081169091526060880151604089015160009350839291821691611236911686611879565b61124091906118c7565b6020890151909150849061ffff16156112b057600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d80600081146112a5576040519150601f19603f3d011682016040523d82523d6000602084013e6112aa565b606091505b50909350505b604089015161ffff161561131b57600c546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114611310576040519150601f19603f3d011682016040523d82523d6000602084013e611315565b606091505b50909350505b5050505050505050505b50600d805460ff19169055565b6001600160a01b03851660009081526006602052604081205460019060ff168061137457506001600160a01b03861660009081526006602052604090205460ff165b1561137d575060005b6001600160a01b03871660009081526014602052604090205460ff161580156113bf57506001600160a01b03861660009081526014602052604090205460ff16155b156113f05760125460ff166113f05760405162461bcd60e51b815260206004820152600060248201526044016106fe565b6001600160a01b03871660009081526020819052604081208054879290611418908490611898565b90915550600090508161142b5785611437565b611437888686896114cf565b905080600080896001600160a01b03166001600160a01b03168152602001908152602001600020600082825461146d91906118af565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b991815260200190565b60405180910390a3506001979650505050505050565b60008084156114e5575060075461ffff1661150f565b83156114fe575060075462010000900461ffff1661150f565b50600754640100000000900461ffff165b8061151d57829150506107ee565b6000606461152b8386611879565b61153591906118c7565b905080156115a257306000908152602081905260408120805483929061155c9084906118af565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610ea88185611898565b600060208083528351808285015260005b818110156115d9578581018301518582016040015282016115bd565b818111156115eb576000604083870101525b50601f01601f1916929092016040019392505050565b803561ffff8116811461161357600080fd5b919050565b60008060006060848603121561162d57600080fd5b61163684611601565b925061164460208501611601565b915061165260408501611601565b90509250925092565b6001600160a01b038116811461167057600080fd5b50565b6000806040838503121561168657600080fd5b82356116918161165b565b946020939093013593505050565b6000806000606084860312156116b457600080fd5b83356116bf8161165b565b925060208401356116cf8161165b565b929592945050506040919091013590565b6000602082840312156116f257600080fd5b81356116fd8161165b565b9392505050565b6000806040838503121561171757600080fd5b82356117228161165b565b91506020830135801515811461173757600080fd5b809150509250929050565b6000806040838503121561175557600080fd5b82356117608161165b565b915060208301356117378161165b565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117c15781600019048211156117a7576117a7611770565b808516156117b457918102915b93841c939080029061178b565b509250929050565b6000826117d857506001610757565b816117e557506000610757565b81600181146117fb576002811461180557611821565b6001915050610757565b60ff84111561181657611816611770565b50506001821b610757565b5060208310610133831016604e8410600b8410161715611844575081810a610757565b61184e8383611786565b806000190482111561186257611862611770565b029392505050565b60006116fd60ff8416836117c9565b600081600019048311821515161561189357611893611770565b500290565b6000828210156118aa576118aa611770565b500390565b600082198211156118c2576118c2611770565b500190565b6000826118e457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561191157600080fd5b81516116fd8161165b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119a257600080fd5b8351925060208401519150604084015190509250925092565b600061ffff838116908316818110156119d6576119d6611770565b03939250505056fea2646970667358221220ec6c5f22ef0117d6405e1c67d708945b2c16db2eda5514ad206f72fea1e177fd64736f6c634300080b0033
Deployed Bytecode Sourcemap
4327:12617:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5655:73;;;;;;;;;;;;5686:42;5655:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5655:73:0;;;;;;;;6120:28;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;6120:28:0;222:177:1;5292:103:0;;;;;;;;;;-1:-1:-1;5292:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;610:6:1;643:15;;;625:34;;695:15;;;690:2;675:18;;668:43;747:15;;727:18;;;720:43;;;;588:2;573:18;5292:103:0;404:365:1;9644:80:0;;;;;;;;;;-1:-1:-1;9716:5:0;;;;;;;;;;;;-1:-1:-1;;;9716:5:0;;;;9644:80;;;;;;;:::i;5594:26::-;;;;;;;;;;-1:-1:-1;5594:26:0;;;;-1:-1:-1;;;;;5594:26:0;;;11820:210;;;;;;;;;;-1:-1:-1;11820:210:0;;;;;:::i;:::-;;:::i;:::-;;10252:161;;;;;;;;;;-1:-1:-1;10252:161:0;;;;;:::i;:::-;;:::i;:::-;;;2719:14:1;;2712:22;2694:41;;2682:2;2667:18;10252:161:0;2554:187:1;9379:83:0;;;;;;;;;;;;;:::i;10739:314::-;;;;;;;;;;-1:-1:-1;10739:314:0;;;;;:::i;:::-;;:::i;6235:33::-;;;;;;;;;;;;;;;;11671:141;;;;;;;;;;;;;:::i;6155:25::-;;;;;;;;;;;;;;;;8619:90;;;;;;;;;;-1:-1:-1;8619:90:0;;;;;:::i;:::-;-1:-1:-1;;;;;8693:8:0;8669:4;8693:8;;;:3;:8;;;;;;;;;8619:90;9468:80;;;;;;;;;;-1:-1:-1;9468:80:0;;4963:2;3601:36:1;;3589:2;3574:18;9468:80:0;3459:184:1;5627:21:0;;;;;;;;;;-1:-1:-1;5627:21:0;;;;-1:-1:-1;;;;;5627:21:0;;;6277:33;;;;;;;;;;-1:-1:-1;6277:33:0;;;;;;;;11536:127;;;;;;;;;;-1:-1:-1;11536:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11627:28:0;11603:4;11627:28;;;:19;:28;;;;;;;;;11536:127;6317:36;;;;;;;;;;-1:-1:-1;6317:36:0;;;;;;;;;;;6360:26;;;;;;;;;;;;;;;;9954:117;;;;;;;;;;-1:-1:-1;9954:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;10047:16:0;10020:7;10047:16;;;;;;;;;;;;9954:117;8809:180;;;;;;;;;;;;;:::i;11061:467::-;;;;;;;;;;-1:-1:-1;11061:467:0;;;;;:::i;:::-;;:::i;9730:79::-;;;;;;;;;;-1:-1:-1;9800:6:0;;-1:-1:-1;;;;;9800:6:0;9730:79;;9554:84;;;;;;;;;;-1:-1:-1;9628:7:0;;;;;;;;;;;;-1:-1:-1;;;9628:7:0;;;;9554:84;;10079:165;;;;;;;;;;-1:-1:-1;10079:165:0;;;;;:::i;:::-;;:::i;6187:41::-;;;;;;;;;;-1:-1:-1;6187:41:0;;;;;;;;5404:133;;;;;;;;;;-1:-1:-1;5404:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4302:6:1;4335:15;;;4317:34;;4387:15;;;4382:2;4367:18;;4360:43;4439:15;;;4419:18;;;4412:43;;;;4491:15;;;4486:2;4471:18;;4464:43;4279:3;4264:19;5404:133:0;4069:444:1;9815:133:0;;;;;;;;;;-1:-1:-1;9815:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9917:19:0;;;9899:7;9917:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9815:133;5845:199;;;;;;;;;;-1:-1:-1;5845:199:0;;;;;;-1:-1:-1;;;;;5845:199:0;;;;;;;;;;;-1:-1:-1;;;;;5173:15:1;;;5155:34;;5225:15;;;;5220:2;5205:18;;5198:43;5090:18;5845:199:0;4911:336:1;6075:38:0;;;;;;;;;;-1:-1:-1;6075:38:0;;;;;;;;;;;11820:210;8573:10;8669:4;8693:8;;;:3;:8;;;;;;;;8558:42;;;;-1:-1:-1;;;8558:42:0;;5454:2:1;8558:42:0;;;5436:21:1;5493:2;5473:18;;;5466:30;-1:-1:-1;;;5512:18:1;;;5505:41;5563:18;;8558:42:0;;;;;;;;;11913:9:::1;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;11949:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;11987:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;11820:210::o;10252:161::-;10329:4;10346:37;10355:10;10367:7;10376:6;10346:8;:37::i;:::-;-1:-1:-1;10401:4:0;10252:161;;;;;:::o;9379:83::-;9434:7;5024:13;4963:2;5024;:13;:::i;:::-;5007:30;;4807:13;5007:30;:::i;:::-;9445:14;;9379:83;:::o;10739:314::-;-1:-1:-1;;;;;10860:19:0;;10839:4;10860:19;;;:11;:19;;;;;;;;10880:10;10860:31;;;;;;;;-1:-1:-1;;10860:52:0;10856:134;;-1:-1:-1;;;;;10929:19:0;;;;;;:11;:19;;;;;;;;10949:10;10929:31;;;;;;;:41;;10964:6;;10929:19;:41;;10964:6;;10929:41;:::i;:::-;;;;-1:-1:-1;;10856:134:0;11009:36;11019:6;11027:9;11038:6;11009:9;:36::i;:::-;11002:43;10739:314;-1:-1:-1;;;;10739:314:0:o;11671:141::-;11724:7;10047:16;;;;;;5686:42;10047:16;;;;11763:39;;10047:16;11763:39;:::i;:::-;5024:13;4963:2;5024;:13;:::i;:::-;5007:30;;4807:13;5007:30;:::i;:::-;11752:51;;;;:::i;8809:180::-;8475:6;;-1:-1:-1;;;;;8475:6:0;8485:10;8475:20;8467:50;;;;-1:-1:-1;;;8467:50:0;;7745:2:1;8467:50:0;;;7727:21:1;7784:2;7764:18;;;7757:30;-1:-1:-1;;;7803:18:1;;;7796:47;7860:18;;8467:50:0;7543:341:1;8467:50:0;8887:6:::1;::::0;;-1:-1:-1;;;;;;8904:19:0;::::1;::::0;;;8939:42:::1;::::0;-1:-1:-1;;;;;8887:6:0;;::::1;::::0;8868:16:::1;::::0;8887:6;;8939:42:::1;::::0;8868:16;;8939:42:::1;8857:132;8809:180::o:0;11061:467::-;8475:6;;-1:-1:-1;;;;;8475:6:0;8485:10;8475:20;8467:50;;;;-1:-1:-1;;;8467:50:0;;7745:2:1;8467:50:0;;;7727:21:1;7784:2;7764:18;;;7757:30;-1:-1:-1;;;7803:18:1;;;7796:47;7860:18;;8467:50:0;7543:341:1;8467:50:0;11143:7:::1;11138:383;;-1:-1:-1::0;;;;;;11167:13:0::1;11183:5;11167:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;11167:21:0::1;::::0;;11061:467::o;11138:383::-:1;11225:17;::::0;:22;11221:135:::1;;11314:6;11294:17;;11276:15;:35;;;;:::i;:::-;:44;11268:72;;;::::0;-1:-1:-1;;;11268:72:0;;8091:2:1;11268:72:0::1;::::0;::::1;8073:21:1::0;8130:2;8110:18;;;8103:30;-1:-1:-1;;;8149:18:1;;;8142:45;8204:18;;11268:72:0::1;7889:339:1::0;11268:72:0::1;-1:-1:-1::0;;;;;11379:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11378:14;11370:54;;;::::0;-1:-1:-1;;;11370:54:0;;8435:2:1;11370:54:0::1;::::0;::::1;8417:21:1::0;8474:2;8454:18;;;8447:30;8513:29;8493:18;;;8486:57;8560:18;;11370:54:0::1;8233:351:1::0;11370:54:0::1;-1:-1:-1::0;;;;;;11439:13:0::1;;::::0;;;11455:4:::1;11439:13;::::0;;;;;;;:20;;-1:-1:-1;;11439:20:0::1;::::0;;::::1;::::0;;11494:15:::1;11474:17;:35:::0;11061:467::o;10079:165::-;10157:4;10174:40;10184:10;10196:9;10207:6;10174:9;:40::i;:::-;-1:-1:-1;10232:4:0;;10079:165;-1:-1:-1;;;10079:165:0:o;10421:310::-;-1:-1:-1;;;;;10516:20:0;;10508:52;;;;-1:-1:-1;;;10508:52:0;;8791:2:1;10508:52:0;;;8773:21:1;8830:2;8810:18;;;8803:30;-1:-1:-1;;;8849:18:1;;;8842:49;8908:18;;10508:52:0;8589:343:1;10508:52:0;-1:-1:-1;;;;;10579:21:0;;10571:53;;;;-1:-1:-1;;;10571:53:0;;8791:2:1;10571:53:0;;;8773:21:1;8830:2;8810:18;;;8803:30;-1:-1:-1;;;8849:18:1;;;8842:49;8908:18;;10571:53:0;8589:343:1;10571:53:0;-1:-1:-1;;;;;10637:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10690:33;;368:25:1;;;10690:33:0;;341:18:1;10690:33:0;;;;;;;10421:310;;;:::o;12038:1646::-;12117:4;-1:-1:-1;;;;;12142:18:0;;12134:68;;;;-1:-1:-1;;;12134:68:0;;9139:2:1;12134:68:0;;;9121:21:1;9178:2;9158:18;;;9151:30;9217:34;9197:18;;;9190:62;-1:-1:-1;;;9268:18:1;;;9261:35;9313:19;;12134:68:0;8937:401:1;12134:68:0;-1:-1:-1;;;;;12221:16:0;;12213:64;;;;-1:-1:-1;;;12213:64:0;;9545:2:1;12213:64:0;;;9527:21:1;9584:2;9564:18;;;9557:30;9623:34;9603:18;;;9596:62;-1:-1:-1;;;9674:18:1;;;9667:33;9717:19;;12213:64:0;9343:399:1;12213:64:0;12305:1;12296:6;:10;12288:64;;;;-1:-1:-1;;;12288:64:0;;9949:2:1;12288:64:0;;;9931:21:1;9988:2;9968:18;;;9961:30;10027:34;10007:18;;;10000:62;-1:-1:-1;;;10078:18:1;;;10071:39;10127:19;;12288:64:0;9747:405:1;12288:64:0;-1:-1:-1;;;;;12451:13:0;;12363:8;12451:13;;;:7;:13;;;;;;12363:8;;;;12451:13;;12447:162;;;12487:4;12481:10;;12447:162;;;-1:-1:-1;;;;;12513:11:0;;;;;;:7;:11;;;;;;;;12509:100;;;12548:4;12541:11;;12509:100;;;-1:-1:-1;12593:4:0;12509:100;12627:14;;;;12623:329;;12667:5;12662:279;;12697:34;;-1:-1:-1;;;12697:34:0;;10359:2:1;12697:34:0;;;10341:21:1;10398:2;10378:18;;;10371:30;10437:26;10417:18;;;10410:54;10481:18;;12697:34:0;10157:348:1;12662:279:0;-1:-1:-1;;;;;12762:31:0;;;;;;:25;:31;;;;;;;;12761:32;:66;;;;-1:-1:-1;;;;;;12798:29:0;;;;;;:25;:29;;;;;;;;12797:30;12761:66;12757:184;;;12852:55;;-1:-1:-1;;;12852:55:0;;10712:2:1;12852:55:0;;;10694:21:1;10751:2;10731:18;;;10724:30;10790:34;10770:18;;;10763:62;-1:-1:-1;;;10841:18:1;;;10834:43;10894:19;;12852:55:0;10510:409:1;12757:184:0;12968:4;12964:650;;;12994:6;;;;12989:614;;13025:19;;;;;;;13021:567;;;13136:4;13087:28;10047:16;;;;;;;;;;;13193:13;;13169:37;;13165:404;;13253:10;;13294:22;;;;13290:97;;;13351:13;;13341:6;;-1:-1:-1;;;;;13341:6:0;10020:7;10047:16;;;;;;;;;;;5582:3;;13331:33;;;:::i;:::-;13330:54;;;;:::i;:::-;13320:64;;13290:97;13441:7;13417:20;:31;13413:72;;13475:7;13452:30;;13413:72;13511:34;13524:20;13511:12;:34::i;:::-;13208:361;13165:404;13064:524;13021:567;13631:45;13648:4;13654:2;13658:6;13666:3;13671:4;13631:16;:45::i;:::-;13624:52;12038:1646;-1:-1:-1;;;;;;;12038:1646:0:o;13692:1990::-;6551:6;:13;;-1:-1:-1;;6551:13:0;6560:4;6551:13;;;13775:30:::1;::::0;;::::1;::::0;::::1;::::0;;13798:7:::1;13775:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;13816:60:::1;;13858:7;;;13816:60;13912:4;13892:26;::::0;;;:11:::1;:26;::::0;;;;;;;13927:9:::1;::::0;-1:-1:-1;;;;;13927:9:0::1;13892:46:::0;;;;;;;;-1:-1:-1;;13892:67:0::1;13888:166;;13996:4;13976:26;::::0;;;:11:::1;:26;::::0;;;;;;;14011:9:::1;::::0;-1:-1:-1;;;;;14011:9:0::1;13976:46:::0;;;;;;;-1:-1:-1;;13976:66:0;;13888:166:::1;14066:17;14151:1;14131:6;:16;;;14087:60;;14111:6;:16;;;14088:39;;:20;:39;;;;:::i;:::-;14087:60;;;;:::i;:::-;14086:66;;;;:::i;:::-;14066:86:::0;-1:-1:-1;14163:15:0::1;14181:32;14066:86:::0;14181:20;:32:::1;:::i;:::-;14258:16;::::0;;14272:1:::1;14258:16:::0;;;;;::::1;::::0;;14163:50;;-1:-1:-1;14234:21:0::1;::::0;14258:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14258:16:0::1;14234:40;;14303:4;14285;14290:1;14285:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14285:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14329:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;14329:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;14285:7;;14329:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14319:4;14324:1;14319:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14319:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;14362:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;14362:186:0;;:9;::::1;::::0;:60:::1;::::0;:186:::1;::::0;14437:7;;14362:9:::1;::::0;14475:4;;14502::::1;::::0;14522:15:::1;::::0;14362:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14358:233;;14573:7;;;;;;14358:233;14624:21;14603:18;14710:7:::0;14684:22:::1;14697:9:::0;14624:21;14684:22:::1;:::i;:::-;14683:34;;;;:::i;:::-;14656:61:::0;-1:-1:-1;14734:13:0;;14730:400:::1;;14768:9;::::0;:222:::1;::::0;-1:-1:-1;;;14768:222:0;;14845:4:::1;14768:222;::::0;::::1;12992:34:1::0;13042:18;;;13035:34;;;14768:9:0::1;13085:18:1::0;;;13078:34;;;13128:18;;;13121:34;5686:42:0::1;13171:19:1::0;;;13164:44;14960:15:0::1;13224:19:1::0;;;13217:35;-1:-1:-1;;;;;14768:9:0;;::::1;::::0;:25:::1;::::0;14801:16;;12926:19:1;;14768:222:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14768:222:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;14768:222:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;14764:355;;15097:7;;;;;;;;14764:355;-1:-1:-1::0;;15015:40:0::1;::::0;;13748:25:1;;;13804:2;13789:18;;13782:34;;;15015:40:0::1;::::0;-1:-1:-1;13721:18:1;15015:40:0::1;;;;;;;14764:355;15142:30;15156:16:::0;15142:30;::::1;:::i;:::-;;;15203:6;:16;;;15183:6;:16;;:36;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;15318:16:::1;::::0;::::1;::::0;15296:18:::1;::::0;::::1;::::0;15230:12:::1;::::0;-1:-1:-1;15230:12:0;;15282:52;;::::1;::::0;15283:31:::1;::::0;::::1;:10:::0;:31:::1;:::i;:::-;15282:52;;;;:::i;:::-;15397:16;::::0;::::1;::::0;15253:81;;-1:-1:-1;15372:10:0;;15397:20:::1;;::::0;15393:133:::1;;15447:11;:21:::0;:67:::1;::::0;-1:-1:-1;;;;;15447:21:0;;::::1;::::0;15504:5:::1;::::0;15481:16;;15447:67:::1;::::0;;;15481:16;15447:21;15504:5;15447:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15434:80:0;;-1:-1:-1;;15393:133:0::1;15540:18;::::0;::::1;::::0;:22:::1;;::::0;15536:139:::1;;15592:23:::0;;:71:::1;::::0;-1:-1:-1;;;;;15592:23:0;;::::1;::::0;15653:5:::1;::::0;15628:18;;15592:71:::1;::::0;;;15628:18;15592:23;15653:5;15592:71:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15579:84:0;;-1:-1:-1;;15536:139:0::1;13764:1918;;;;;;;;;6575:1;-1:-1:-1::0;6587:6:0;:14;;-1:-1:-1;;6587:14:0;;;13692:1990::o;15690:587::-;-1:-1:-1;;;;;15848:25:0;;15797:4;15848:25;;;:19;:25;;;;;;15829:4;;15848:25;;;:52;;-1:-1:-1;;;;;;15877:23:0;;;;;;:19;:23;;;;;;;;15848:52;15844:99;;;-1:-1:-1;15926:5:0;15844:99;-1:-1:-1;;;;;15957:9:0;;;;;;:3;:9;;;;;;;;15956:10;:22;;;;-1:-1:-1;;;;;;15971:7:0;;;;;;:3;:7;;;;;;;;15970:8;15956:22;15953:80;;;16002:14;;;;15994:27;;;;-1:-1:-1;;;15994:27:0;;14461:2:1;15994:27:0;;;14443:21:1;-1:-1:-1;14480:18:1;;;14473:29;14519:18;;15994:27:0;14259:284:1;15994:27:0;-1:-1:-1;;;;;16043:13:0;;:7;:13;;;;;;;;;;:23;;16060:6;;16043:7;:23;;16060:6;;16043:23;:::i;:::-;;;;-1:-1:-1;16077:22:0;;-1:-1:-1;16103:7:0;16102:55;;16151:6;16102:55;;;16114:34;16124:4;16130:3;16135:4;16141:6;16114:9;:34::i;:::-;16077:80;;16183:14;16168:7;:11;16176:2;-1:-1:-1;;;;;16168:11:0;-1:-1:-1;;;;;16168:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;16228:2;-1:-1:-1;;;;;16213:34:0;16222:4;-1:-1:-1;;;;;16213:34:0;;16232:14;16213:34;;;;368:25:1;;356:2;341:18;;222:177;16213:34:0;;;;;;;;-1:-1:-1;16265:4:0;;15690:587;-1:-1:-1;;;;;;;15690:587:0:o;16285:656::-;16373:7;16393:18;16426:3;16422:205;;;-1:-1:-1;16459:9:0;:16;;;16422:205;;;16497:4;16493:134;;;-1:-1:-1;16531:9:0;:17;;;;;;16493:134;;;-1:-1:-1;16594:9:0;:21;;;;;;16493:134;16641:15;16637:39;;16667:6;16660:13;;;;;16637:39;16686:17;5582:3;16706:19;16715:10;16706:6;:19;:::i;:::-;:38;;;;:::i;:::-;16686:58;-1:-1:-1;16759:13:0;;16755:141;;16805:4;16789:7;:22;;;;;;;;;;:35;;16815:9;;16789:7;:35;;16815:9;;16789:35;:::i;:::-;;;;-1:-1:-1;;16844:40:0;;368:25:1;;;16867:4:0;;-1:-1:-1;;;;;16844:40:0;;;;;356:2:1;341:18;16844:40:0;;;;;;;16755:141;16915:18;16924:9;16915:6;:18;:::i;774:597:1:-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1212:6;1209:1;1206:13;1203:91;;;1282:1;1277:2;1268:6;1257:9;1253:22;1249:31;1242:42;1203:91;-1:-1:-1;1355:2:1;1334:15;-1:-1:-1;;1330:29:1;1315:45;;;;1362:2;1311:54;;774:597;-1:-1:-1;;;774:597:1:o;1601:159::-;1668:20;;1728:6;1717:18;;1707:29;;1697:57;;1750:1;1747;1740:12;1697:57;1601:159;;;:::o;1765:328::-;1839:6;1847;1855;1908:2;1896:9;1887:7;1883:23;1879:32;1876:52;;;1924:1;1921;1914:12;1876:52;1947:28;1965:9;1947:28;:::i;:::-;1937:38;;1994:37;2027:2;2016:9;2012:18;1994:37;:::i;:::-;1984:47;;2050:37;2083:2;2072:9;2068:18;2050:37;:::i;:::-;2040:47;;1765:328;;;;;:::o;2098:131::-;-1:-1:-1;;;;;2173:31:1;;2163:42;;2153:70;;2219:1;2216;2209:12;2153:70;2098:131;:::o;2234:315::-;2302:6;2310;2363:2;2351:9;2342:7;2338:23;2334:32;2331:52;;;2379:1;2376;2369:12;2331:52;2418:9;2405:23;2437:31;2462:5;2437:31;:::i;:::-;2487:5;2539:2;2524:18;;;;2511:32;;-1:-1:-1;;;2234:315:1:o;2746:456::-;2823:6;2831;2839;2892:2;2880:9;2871:7;2867:23;2863:32;2860:52;;;2908:1;2905;2898:12;2860:52;2947:9;2934:23;2966:31;2991:5;2966:31;:::i;:::-;3016:5;-1:-1:-1;3073:2:1;3058:18;;3045:32;3086:33;3045:32;3086:33;:::i;:::-;2746:456;;3138:7;;-1:-1:-1;;;3192:2:1;3177:18;;;;3164:32;;2746:456::o;3207:247::-;3266:6;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;3374:9;3361:23;3393:31;3418:5;3393:31;:::i;:::-;3443:5;3207:247;-1:-1:-1;;;3207:247:1:o;3648:416::-;3713:6;3721;3774:2;3762:9;3753:7;3749:23;3745:32;3742:52;;;3790:1;3787;3780:12;3742:52;3829:9;3816:23;3848:31;3873:5;3848:31;:::i;:::-;3898:5;-1:-1:-1;3955:2:1;3940:18;;3927:32;3997:15;;3990:23;3978:36;;3968:64;;4028:1;4025;4018:12;3968:64;4051:7;4041:17;;;3648:416;;;;;:::o;4518:388::-;4586:6;4594;4647:2;4635:9;4626:7;4622:23;4618:32;4615:52;;;4663:1;4660;4653:12;4615:52;4702:9;4689:23;4721:31;4746:5;4721:31;:::i;:::-;4771:5;-1:-1:-1;4828:2:1;4813:18;;4800:32;4841:33;4800:32;4841:33;:::i;5592:127::-;5653:10;5648:3;5644:20;5641:1;5634:31;5684:4;5681:1;5674:15;5708:4;5705:1;5698:15;5724:422;5813:1;5856:5;5813:1;5870:270;5891:7;5881:8;5878:21;5870:270;;;5950:4;5946:1;5942:6;5938:17;5932:4;5929:27;5926:53;;;5959:18;;:::i;:::-;6009:7;5999:8;5995:22;5992:55;;;6029:16;;;;5992:55;6108:22;;;;6068:15;;;;5870:270;;;5874:3;5724:422;;;;;:::o;6151:806::-;6200:5;6230:8;6220:80;;-1:-1:-1;6271:1:1;6285:5;;6220:80;6319:4;6309:76;;-1:-1:-1;6356:1:1;6370:5;;6309:76;6401:4;6419:1;6414:59;;;;6487:1;6482:130;;;;6394:218;;6414:59;6444:1;6435:10;;6458:5;;;6482:130;6519:3;6509:8;6506:17;6503:43;;;6526:18;;:::i;:::-;-1:-1:-1;;6582:1:1;6568:16;;6597:5;;6394:218;;6696:2;6686:8;6683:16;6677:3;6671:4;6668:13;6664:36;6658:2;6648:8;6645:16;6640:2;6634:4;6631:12;6627:35;6624:77;6621:159;;;-1:-1:-1;6733:19:1;;;6765:5;;6621:159;6812:34;6837:8;6831:4;6812:34;:::i;:::-;6882:6;6878:1;6874:6;6870:19;6861:7;6858:32;6855:58;;;6893:18;;:::i;:::-;6931:20;;6151:806;-1:-1:-1;;;6151:806:1:o;6962:140::-;7020:5;7049:47;7090:4;7080:8;7076:19;7070:4;7049:47;:::i;7107:168::-;7147:7;7213:1;7209;7205:6;7201:14;7198:1;7195:21;7190:1;7183:9;7176:17;7172:45;7169:71;;;7220:18;;:::i;:::-;-1:-1:-1;7260:9:1;;7107:168::o;7280:125::-;7320:4;7348:1;7345;7342:8;7339:34;;;7353:18;;:::i;:::-;-1:-1:-1;7390:9:1;;7280:125::o;7410:128::-;7450:3;7481:1;7477:6;7474:1;7471:13;7468:39;;;7487:18;;:::i;:::-;-1:-1:-1;7523:9:1;;7410:128::o;10924:217::-;10964:1;10990;10980:132;;11034:10;11029:3;11025:20;11022:1;11015:31;11069:4;11066:1;11059:15;11097:4;11094:1;11087:15;10980:132;-1:-1:-1;11126:9:1;;10924:217::o;11278:127::-;11339:10;11334:3;11330:20;11327:1;11320:31;11370:4;11367:1;11360:15;11394:4;11391:1;11384:15;11410:251;11480:6;11533:2;11521:9;11512:7;11508:23;11504:32;11501:52;;;11549:1;11546;11539:12;11501:52;11581:9;11575:16;11600:31;11625:5;11600:31;:::i;11666:980::-;11928:4;11976:3;11965:9;11961:19;12007:6;11996:9;11989:25;12033:2;12071:6;12066:2;12055:9;12051:18;12044:34;12114:3;12109:2;12098:9;12094:18;12087:31;12138:6;12173;12167:13;12204:6;12196;12189:22;12242:3;12231:9;12227:19;12220:26;;12281:2;12273:6;12269:15;12255:29;;12302:1;12312:195;12326:6;12323:1;12320:13;12312:195;;;12391:13;;-1:-1:-1;;;;;12387:39:1;12375:52;;12482:15;;;;12447:12;;;;12423:1;12341:9;12312:195;;;-1:-1:-1;;;;;;;12563:32:1;;;;12558:2;12543:18;;12536:60;-1:-1:-1;;;12627:3:1;12612:19;12605:35;12524:3;11666:980;-1:-1:-1;;;11666:980:1:o;13263:306::-;13351:6;13359;13367;13420:2;13408:9;13399:7;13395:23;13391:32;13388:52;;;13436:1;13433;13426:12;13388:52;13465:9;13459:16;13449:26;;13515:2;13504:9;13500:18;13494:25;13484:35;;13559:2;13548:9;13544:18;13538:25;13528:35;;13263:306;;;;;:::o;13827:217::-;13866:4;13895:6;13951:10;;;;13921;;13973:12;;;13970:38;;;13988:18;;:::i;:::-;14025:13;;13827:217;-1:-1:-1;;;13827:217:1:o
Swarm Source
ipfs://ec6c5f22ef0117d6405e1c67d708945b2c16db2eda5514ad206f72fea1e177fd
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.