ERC-20
Overview
Max Total Supply
100,000,000,000 WAGYU
Holders
91
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
473,651,547.021690831 WAGYUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WAGYU
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-05 */ // SPDX-License-Identifier: Unlicensed // TG @WagYuInu pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract WAGYU is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "WAGYU INU"; string private constant _symbol = "WAGYU"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e11 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _redisFeeJeets = 0; uint256 private _taxFeeJeets = 12; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 12; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 12; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 0; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _marketingAddress = payable(0xE784C616eC414EC5bff3da60C9948209585e03eD); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public timeJeets = 2 minutes; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private isMaxBuyActivated = true; uint256 public _maxTxAmount = 5e8 * 10**9; uint256 public _maxWalletSize = 1e9 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; uint256 public _minimumBuyAmount = 2e8 * 10**9 ; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[deadAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function 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 removeAllFee() private { if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _redisFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; _burnFee = _previousburnFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!_isSniper[to], 'Stop sniping!'); require(!_isSniper[from], 'Stop sniping!'); require(!_isSniper[_msgSender()], 'Stop sniping!'); if (from != owner() && to != owner()) { if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) { require(balanceOf(to) + amount < _maxWalletSize); if (isMaxBuyActivated) { if (block.timestamp <= launchTime + 5 minutes) { require(amount <= _minimumBuyAmount); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 burntAmount = 0; if (_burnFee > 0) { burntAmount = contractTokenBalance.mul(_burnFee).div(10**2); burnTokens(burntAmount); } swapTokensForEth(contractTokenBalance - burntAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; if (block.timestamp == launchTime) { _isSniper[to] = true; } } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) { _redisFee = _redisFeeJeets; _taxFee = _taxFeeJeets; } else { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } } _tokenTransfer(from, to, amount, takeFee); } function burnTokens(uint256 burntAmount) private { _transfer(address(this), deadAddress, burntAmount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setPair() external onlyOwner{ require(!tradingOpen); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } function setTrading() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _marketingAddress); _marketingAddress = payable(marketingAddress); _isExcludedFromFee[_marketingAddress] = true; } function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner { isMaxBuyActivated = _isMaxBuyActivated; } function manualswap(uint256 amount) external { require(_msgSender() == _marketingAddress); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function addSniper(address[] memory snipers) external onlyOwner { for(uint256 i= 0; i< snipers.length; i++){ _isSniper[snipers[i]] = true; } } function removeSniper(address sniper) external onlyOwner { if (_isSniper[sniper]) { _isSniper[sniper] = false; } } function isSniper(address sniper) external view returns (bool){ return _isSniper[sniper]; } function manualsend() external { require(_msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner { _maxWalletSize = maxWalletSize; } function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner { _taxFeeOnBuy = amountBuy; _taxFeeOnSell = amountSell; } function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner { _redisFeeOnBuy = amountRefBuy; _redisFeeOnSell = amountRefSell; } function setBurnFee(uint256 amount) external onlyOwner { _burnFee = amount; } function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner { _redisFeeJeets = amountRedisJeets; _taxFeeJeets = amountTaxJeets; } function setTimeJeets(uint256 hoursTime) external onlyOwner { timeJeets = hoursTime * 1 hours; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","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":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b68056bc75e2d631000006000196200021b565b6200002990600019620001f5565b6007556000600b819055600c808055600d829055600e819055600f82905560108190556011829055601281905560138290556014829055601555601655601780546001600160a01b03191673e784c616ec414ec5bff3da60c9948209585e03ed1790556078601855601a805461010160b01b62ffffff60a81b199091161790556706f05b59d3b20000601b55670de0b6b3a7640000601c5564e8d4a51000601d556702c68af0bb140000601e55348015620000e357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360008181526002602090815260408083209490945581546001600160a01b039081168352600682528483208054600160ff19918216811790925530855286852080548216831790556017549092168452858420805483168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909216179055925168056bc75e2d631000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200023e565b6000828210156200021657634e487b7160e01b600052601160045260246000fd5b500390565b6000826200023957634e487b7160e01b600052601260045260246000fd5b500690565b612326806200024e6000396000f3fe6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610662578063e0f9f6a0146106a8578063ea1644d5146106c8578063f2fde38b146106e8578063fe72c3c11461070857600080fd5b806395d89b41146105b45780639ec350ed146105e25780639f13157114610602578063a9059cbb14610622578063c55284901461064257600080fd5b80637c519ffb116100f25780637c519ffb146105355780637d1db4a51461054a578063881dce60146105605780638da5cb5b146105805780638f9a55c01461059e57600080fd5b806370a08231146104ca578063715018a6146104ea57806374010ece146104ff578063790ca4131461051f57600080fd5b8063313ce567116101b15780634bf2c7c9116101755780634bf2c7c91461043f5780635d098b381461045f5780636b9cf5341461047f5780636d8aa8f8146104955780636fc3eaec146104b557600080fd5b8063313ce567146103ae57806333251a0b146103ca57806338eea22d146103ea57806349bd5a5e1461040a5780634bdc18de1461042a57600080fd5b806318160ddd116101f857806318160ddd1461031a57806323b872dd1461034057806327c8f8351461036057806328bb665a146103765780632fd689e31461039857600080fd5b806306fdde0314610235578063095ea7b3146102795780630f3a325f146102a95780631694505e146102e257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50604080518082019091526009815268574147595520494e5560b81b60208201525b60405161027091906120c4565b60405180910390f35b34801561028557600080fd5b50610299610294366004611f6f565b61071e565b6040519015158152602001610270565b3480156102b557600080fd5b506102996102c4366004611ebb565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102ee57600080fd5b50601954610302906001600160a01b031681565b6040516001600160a01b039091168152602001610270565b34801561032657600080fd5b5068056bc75e2d631000005b604051908152602001610270565b34801561034c57600080fd5b5061029961035b366004611f2e565b610735565b34801561036c57600080fd5b5061030261dead81565b34801561038257600080fd5b50610396610391366004611f9b565b61079e565b005b3480156103a457600080fd5b50610332601d5481565b3480156103ba57600080fd5b5060405160098152602001610270565b3480156103d657600080fd5b506103966103e5366004611ebb565b61083d565b3480156103f657600080fd5b506103966104053660046120a2565b6108ac565b34801561041657600080fd5b50601a54610302906001600160a01b031681565b34801561043657600080fd5b506103966108e1565b34801561044b57600080fd5b5061039661045a366004612089565b610add565b34801561046b57600080fd5b5061039661047a366004611ebb565b610b0c565b34801561048b57600080fd5b50610332601e5481565b3480156104a157600080fd5b506103966104b0366004612067565b610b66565b3480156104c157600080fd5b50610396610bae565b3480156104d657600080fd5b506103326104e5366004611ebb565b610bd8565b3480156104f657600080fd5b50610396610bfa565b34801561050b57600080fd5b5061039661051a366004612089565b610c6e565b34801561052b57600080fd5b50610332600a5481565b34801561054157600080fd5b50610396610c9d565b34801561055657600080fd5b50610332601b5481565b34801561056c57600080fd5b5061039661057b366004612089565b610cf7565b34801561058c57600080fd5b506000546001600160a01b0316610302565b3480156105aa57600080fd5b50610332601c5481565b3480156105c057600080fd5b50604080518082019091526005815264574147595560d81b6020820152610263565b3480156105ee57600080fd5b506103966105fd3660046120a2565b610d73565b34801561060e57600080fd5b5061039661061d366004612067565b610da8565b34801561062e57600080fd5b5061029961063d366004611f6f565b610df0565b34801561064e57600080fd5b5061039661065d3660046120a2565b610dfd565b34801561066e57600080fd5b5061033261067d366004611ef5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106b457600080fd5b506103966106c3366004612089565b610e32565b3480156106d457600080fd5b506103966106e3366004612089565b610e6e565b3480156106f457600080fd5b50610396610703366004611ebb565b610e9d565b34801561071457600080fd5b5061033260185481565b600061072b338484610f87565b5060015b92915050565b60006107428484846110ab565b610794843361078f856040518060600160405280602881526020016122c9602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061174e565b610f87565b5060019392505050565b6000546001600160a01b031633146107d15760405162461bcd60e51b81526004016107c890612119565b60405180910390fd5b60005b8151811015610839576001600960008484815181106107f5576107f5612287565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061083181612256565b9150506107d4565b5050565b6000546001600160a01b031633146108675760405162461bcd60e51b81526004016107c890612119565b6001600160a01b03811660009081526009602052604090205460ff16156108a9576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108d65760405162461bcd60e51b81526004016107c890612119565b600d91909155600f55565b6000546001600160a01b0316331461090b5760405162461bcd60e51b81526004016107c890612119565b601a54600160a01b900460ff161561092257600080fd5b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611ed8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190611ed8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611ed8565b601a80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314610b075760405162461bcd60e51b81526004016107c890612119565b601355565b6017546001600160a01b0316336001600160a01b031614610b2c57600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610b905760405162461bcd60e51b81526004016107c890612119565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b031614610bce57600080fd5b476108a981611788565b6001600160a01b03811660009081526002602052604081205461072f906117c2565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016107c890612119565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c985760405162461bcd60e51b81526004016107c890612119565b601b55565b6000546001600160a01b03163314610cc75760405162461bcd60e51b81526004016107c890612119565b601a54600160a01b900460ff1615610cde57600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610d1757600080fd5b610d2030610bd8565b8111158015610d2f5750600081115b610d6a5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016107c8565b6108a981611846565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b81526004016107c890612119565b600b91909155600c55565b6000546001600160a01b03163314610dd25760405162461bcd60e51b81526004016107c890612119565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b600061072b3384846110ab565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526004016107c890612119565b600e91909155601055565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107c890612119565b610e6881610e10612220565b60185550565b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016107c890612119565b601c55565b6000546001600160a01b03163314610ec75760405162461bcd60e51b81526004016107c890612119565b6001600160a01b038116610f2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610fe95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c8565b6001600160a01b03821661104a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661110f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c8565b6001600160a01b0382166111715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c8565b600081116111d35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c8565b6001600160a01b03821660009081526009602052604090205460ff161561120c5760405162461bcd60e51b81526004016107c89061214e565b6001600160a01b03831660009081526009602052604090205460ff16156112455760405162461bcd60e51b81526004016107c89061214e565b3360009081526009602052604090205460ff16156112755760405162461bcd60e51b81526004016107c89061214e565b6000546001600160a01b038481169116148015906112a157506000546001600160a01b03838116911614155b1561159657601a54600160a01b900460ff166112ff5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107c8565b601a546001600160a01b03838116911614801561132a57506019546001600160a01b03848116911614155b156113dc576001600160a01b038216301480159061135157506001600160a01b0383163014155b801561136b57506017546001600160a01b03838116911614155b801561138557506017546001600160a01b03848116911614155b156113dc57601b548111156113dc5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107c8565b601a546001600160a01b0383811691161480159061140857506017546001600160a01b03838116911614155b801561141d57506001600160a01b0382163014155b801561143457506001600160a01b03821661dead14155b1561149057601c548161144684610bd8565b61145091906121e6565b1061145a57600080fd5b601a54600160b81b900460ff161561149057600a5461147b9061012c6121e6565b421161149057601e5481111561149057600080fd5b600061149b30610bd8565b601d5490915081118080156114ba5750601a54600160a81b900460ff16155b80156114d45750601a546001600160a01b03868116911614155b80156114e95750601a54600160b01b900460ff165b801561150e57506001600160a01b03851660009081526006602052604090205460ff16155b801561153357506001600160a01b03841660009081526006602052604090205460ff16155b15611593576013546000901561156e57611563606461155d601354866119cf90919063ffffffff16565b90611a4e565b905061156e81611a90565b61158061157b828561223f565b611846565b4780156115905761159047611788565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806115d857506001600160a01b03831660009081526006602052604090205460ff165b8061160a5750601a546001600160a01b0385811691161480159061160a5750601a546001600160a01b03848116911614155b156116175750600061173c565b601a546001600160a01b03858116911614801561164257506019546001600160a01b03848116911614155b1561169d576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a54141561169d576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b0384811691161480156116c857506019546001600160a01b03858116911614155b1561173c576001600160a01b0384166000908152600460205260409020541580159061171957506018546001600160a01b0385166000908152600460205260409020544291611716916121e6565b10155b1561172f57600b54601155600c5460125561173c565b600f546011556010546012555b61174884848484611a9d565b50505050565b600081848411156117725760405162461bcd60e51b81526004016107c891906120c4565b50600061177f848661223f565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610839573d6000803e3d6000fd5b60006007548211156118295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107c8565b6000611833611ad1565b905061183f8382611a4e565b9392505050565b601a805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061188e5761188e612287565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190611ed8565b8160018151811061192d5761192d612287565b6001600160a01b0392831660209182029290920101526019546119539130911684610f87565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac9479061198c908590600090869030904290600401612175565b600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b6000826119de5750600061072f565b60006119ea8385612220565b9050826119f785836121fe565b1461183f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c8565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611af4565b6108a93061dead836110ab565b80611aaa57611aaa611b22565b611ab5848484611b67565b8061174857611748601454601155601554601255601654601355565b6000806000611ade611c5e565b9092509050611aed8282611a4e565b9250505090565b60008183611b155760405162461bcd60e51b81526004016107c891906120c4565b50600061177f84866121fe565b601154158015611b325750601254155b8015611b3e5750601354155b15611b4557565b6011805460145560128054601555601380546016556000928390559082905555565b600080600080600080611b7987611ca0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611bab9087611cfd565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bda9086611d3f565b6001600160a01b038916600090815260026020526040902055611bfc81611d9e565b611c068483611de8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4b91815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d63100000611c7a8282611a4e565b821015611c975750506007549268056bc75e2d6310000092509050565b90939092509050565b6000806000806000806000806000611cbd8a601154601254611e0c565b9250925092506000611ccd611ad1565b90506000806000611ce08e878787611e5b565b919e509c509a509598509396509194505050505091939550919395565b600061183f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061174e565b600080611d4c83856121e6565b90508381101561183f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c8565b6000611da8611ad1565b90506000611db683836119cf565b30600090815260026020526040902054909150611dd39082611d3f565b30600090815260026020526040902055505050565b600754611df59083611cfd565b600755600854611e059082611d3f565b6008555050565b6000808080611e20606461155d89896119cf565b90506000611e33606461155d8a896119cf565b90506000611e4b82611e458b86611cfd565b90611cfd565b9992985090965090945050505050565b6000808080611e6a88866119cf565b90506000611e7888876119cf565b90506000611e8688886119cf565b90506000611e9882611e458686611cfd565b939b939a50919850919650505050505050565b8035611eb6816122b3565b919050565b600060208284031215611ecd57600080fd5b813561183f816122b3565b600060208284031215611eea57600080fd5b815161183f816122b3565b60008060408385031215611f0857600080fd5b8235611f13816122b3565b91506020830135611f23816122b3565b809150509250929050565b600080600060608486031215611f4357600080fd5b8335611f4e816122b3565b92506020840135611f5e816122b3565b929592945050506040919091013590565b60008060408385031215611f8257600080fd5b8235611f8d816122b3565b946020939093013593505050565b60006020808385031215611fae57600080fd5b823567ffffffffffffffff80821115611fc657600080fd5b818501915085601f830112611fda57600080fd5b813581811115611fec57611fec61229d565b8060051b604051601f19603f830116810181811085821117156120115761201161229d565b604052828152858101935084860182860187018a101561203057600080fd5b600095505b8386101561205a5761204681611eab565b855260019590950194938601938601612035565b5098975050505050505050565b60006020828403121561207957600080fd5b8135801515811461183f57600080fd5b60006020828403121561209b57600080fd5b5035919050565b600080604083850312156120b557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156120f1578581018301518582016040015282016120d5565b81811115612103576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121c55784516001600160a01b0316835293830193918301916001016121a0565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156121f9576121f9612271565b500190565b60008261221b57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561223a5761223a612271565b500290565b60008282101561225157612251612271565b500390565b600060001982141561226a5761226a612271565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108a957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095e2394285af94d7485b5b608ab6009a7134b87e8b62d4e286e245fb49ebced464736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610662578063e0f9f6a0146106a8578063ea1644d5146106c8578063f2fde38b146106e8578063fe72c3c11461070857600080fd5b806395d89b41146105b45780639ec350ed146105e25780639f13157114610602578063a9059cbb14610622578063c55284901461064257600080fd5b80637c519ffb116100f25780637c519ffb146105355780637d1db4a51461054a578063881dce60146105605780638da5cb5b146105805780638f9a55c01461059e57600080fd5b806370a08231146104ca578063715018a6146104ea57806374010ece146104ff578063790ca4131461051f57600080fd5b8063313ce567116101b15780634bf2c7c9116101755780634bf2c7c91461043f5780635d098b381461045f5780636b9cf5341461047f5780636d8aa8f8146104955780636fc3eaec146104b557600080fd5b8063313ce567146103ae57806333251a0b146103ca57806338eea22d146103ea57806349bd5a5e1461040a5780634bdc18de1461042a57600080fd5b806318160ddd116101f857806318160ddd1461031a57806323b872dd1461034057806327c8f8351461036057806328bb665a146103765780632fd689e31461039857600080fd5b806306fdde0314610235578063095ea7b3146102795780630f3a325f146102a95780631694505e146102e257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50604080518082019091526009815268574147595520494e5560b81b60208201525b60405161027091906120c4565b60405180910390f35b34801561028557600080fd5b50610299610294366004611f6f565b61071e565b6040519015158152602001610270565b3480156102b557600080fd5b506102996102c4366004611ebb565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102ee57600080fd5b50601954610302906001600160a01b031681565b6040516001600160a01b039091168152602001610270565b34801561032657600080fd5b5068056bc75e2d631000005b604051908152602001610270565b34801561034c57600080fd5b5061029961035b366004611f2e565b610735565b34801561036c57600080fd5b5061030261dead81565b34801561038257600080fd5b50610396610391366004611f9b565b61079e565b005b3480156103a457600080fd5b50610332601d5481565b3480156103ba57600080fd5b5060405160098152602001610270565b3480156103d657600080fd5b506103966103e5366004611ebb565b61083d565b3480156103f657600080fd5b506103966104053660046120a2565b6108ac565b34801561041657600080fd5b50601a54610302906001600160a01b031681565b34801561043657600080fd5b506103966108e1565b34801561044b57600080fd5b5061039661045a366004612089565b610add565b34801561046b57600080fd5b5061039661047a366004611ebb565b610b0c565b34801561048b57600080fd5b50610332601e5481565b3480156104a157600080fd5b506103966104b0366004612067565b610b66565b3480156104c157600080fd5b50610396610bae565b3480156104d657600080fd5b506103326104e5366004611ebb565b610bd8565b3480156104f657600080fd5b50610396610bfa565b34801561050b57600080fd5b5061039661051a366004612089565b610c6e565b34801561052b57600080fd5b50610332600a5481565b34801561054157600080fd5b50610396610c9d565b34801561055657600080fd5b50610332601b5481565b34801561056c57600080fd5b5061039661057b366004612089565b610cf7565b34801561058c57600080fd5b506000546001600160a01b0316610302565b3480156105aa57600080fd5b50610332601c5481565b3480156105c057600080fd5b50604080518082019091526005815264574147595560d81b6020820152610263565b3480156105ee57600080fd5b506103966105fd3660046120a2565b610d73565b34801561060e57600080fd5b5061039661061d366004612067565b610da8565b34801561062e57600080fd5b5061029961063d366004611f6f565b610df0565b34801561064e57600080fd5b5061039661065d3660046120a2565b610dfd565b34801561066e57600080fd5b5061033261067d366004611ef5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106b457600080fd5b506103966106c3366004612089565b610e32565b3480156106d457600080fd5b506103966106e3366004612089565b610e6e565b3480156106f457600080fd5b50610396610703366004611ebb565b610e9d565b34801561071457600080fd5b5061033260185481565b600061072b338484610f87565b5060015b92915050565b60006107428484846110ab565b610794843361078f856040518060600160405280602881526020016122c9602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061174e565b610f87565b5060019392505050565b6000546001600160a01b031633146107d15760405162461bcd60e51b81526004016107c890612119565b60405180910390fd5b60005b8151811015610839576001600960008484815181106107f5576107f5612287565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061083181612256565b9150506107d4565b5050565b6000546001600160a01b031633146108675760405162461bcd60e51b81526004016107c890612119565b6001600160a01b03811660009081526009602052604090205460ff16156108a9576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108d65760405162461bcd60e51b81526004016107c890612119565b600d91909155600f55565b6000546001600160a01b0316331461090b5760405162461bcd60e51b81526004016107c890612119565b601a54600160a01b900460ff161561092257600080fd5b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611ed8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190611ed8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611ed8565b601a80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314610b075760405162461bcd60e51b81526004016107c890612119565b601355565b6017546001600160a01b0316336001600160a01b031614610b2c57600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610b905760405162461bcd60e51b81526004016107c890612119565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b031614610bce57600080fd5b476108a981611788565b6001600160a01b03811660009081526002602052604081205461072f906117c2565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016107c890612119565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c985760405162461bcd60e51b81526004016107c890612119565b601b55565b6000546001600160a01b03163314610cc75760405162461bcd60e51b81526004016107c890612119565b601a54600160a01b900460ff1615610cde57600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610d1757600080fd5b610d2030610bd8565b8111158015610d2f5750600081115b610d6a5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016107c8565b6108a981611846565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b81526004016107c890612119565b600b91909155600c55565b6000546001600160a01b03163314610dd25760405162461bcd60e51b81526004016107c890612119565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b600061072b3384846110ab565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526004016107c890612119565b600e91909155601055565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107c890612119565b610e6881610e10612220565b60185550565b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016107c890612119565b601c55565b6000546001600160a01b03163314610ec75760405162461bcd60e51b81526004016107c890612119565b6001600160a01b038116610f2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610fe95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c8565b6001600160a01b03821661104a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661110f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c8565b6001600160a01b0382166111715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c8565b600081116111d35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c8565b6001600160a01b03821660009081526009602052604090205460ff161561120c5760405162461bcd60e51b81526004016107c89061214e565b6001600160a01b03831660009081526009602052604090205460ff16156112455760405162461bcd60e51b81526004016107c89061214e565b3360009081526009602052604090205460ff16156112755760405162461bcd60e51b81526004016107c89061214e565b6000546001600160a01b038481169116148015906112a157506000546001600160a01b03838116911614155b1561159657601a54600160a01b900460ff166112ff5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107c8565b601a546001600160a01b03838116911614801561132a57506019546001600160a01b03848116911614155b156113dc576001600160a01b038216301480159061135157506001600160a01b0383163014155b801561136b57506017546001600160a01b03838116911614155b801561138557506017546001600160a01b03848116911614155b156113dc57601b548111156113dc5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107c8565b601a546001600160a01b0383811691161480159061140857506017546001600160a01b03838116911614155b801561141d57506001600160a01b0382163014155b801561143457506001600160a01b03821661dead14155b1561149057601c548161144684610bd8565b61145091906121e6565b1061145a57600080fd5b601a54600160b81b900460ff161561149057600a5461147b9061012c6121e6565b421161149057601e5481111561149057600080fd5b600061149b30610bd8565b601d5490915081118080156114ba5750601a54600160a81b900460ff16155b80156114d45750601a546001600160a01b03868116911614155b80156114e95750601a54600160b01b900460ff165b801561150e57506001600160a01b03851660009081526006602052604090205460ff16155b801561153357506001600160a01b03841660009081526006602052604090205460ff16155b15611593576013546000901561156e57611563606461155d601354866119cf90919063ffffffff16565b90611a4e565b905061156e81611a90565b61158061157b828561223f565b611846565b4780156115905761159047611788565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806115d857506001600160a01b03831660009081526006602052604090205460ff165b8061160a5750601a546001600160a01b0385811691161480159061160a5750601a546001600160a01b03848116911614155b156116175750600061173c565b601a546001600160a01b03858116911614801561164257506019546001600160a01b03848116911614155b1561169d576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a54141561169d576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b0384811691161480156116c857506019546001600160a01b03858116911614155b1561173c576001600160a01b0384166000908152600460205260409020541580159061171957506018546001600160a01b0385166000908152600460205260409020544291611716916121e6565b10155b1561172f57600b54601155600c5460125561173c565b600f546011556010546012555b61174884848484611a9d565b50505050565b600081848411156117725760405162461bcd60e51b81526004016107c891906120c4565b50600061177f848661223f565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610839573d6000803e3d6000fd5b60006007548211156118295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107c8565b6000611833611ad1565b905061183f8382611a4e565b9392505050565b601a805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061188e5761188e612287565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190611ed8565b8160018151811061192d5761192d612287565b6001600160a01b0392831660209182029290920101526019546119539130911684610f87565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac9479061198c908590600090869030904290600401612175565b600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b6000826119de5750600061072f565b60006119ea8385612220565b9050826119f785836121fe565b1461183f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c8565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611af4565b6108a93061dead836110ab565b80611aaa57611aaa611b22565b611ab5848484611b67565b8061174857611748601454601155601554601255601654601355565b6000806000611ade611c5e565b9092509050611aed8282611a4e565b9250505090565b60008183611b155760405162461bcd60e51b81526004016107c891906120c4565b50600061177f84866121fe565b601154158015611b325750601254155b8015611b3e5750601354155b15611b4557565b6011805460145560128054601555601380546016556000928390559082905555565b600080600080600080611b7987611ca0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611bab9087611cfd565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bda9086611d3f565b6001600160a01b038916600090815260026020526040902055611bfc81611d9e565b611c068483611de8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4b91815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d63100000611c7a8282611a4e565b821015611c975750506007549268056bc75e2d6310000092509050565b90939092509050565b6000806000806000806000806000611cbd8a601154601254611e0c565b9250925092506000611ccd611ad1565b90506000806000611ce08e878787611e5b565b919e509c509a509598509396509194505050505091939550919395565b600061183f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061174e565b600080611d4c83856121e6565b90508381101561183f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c8565b6000611da8611ad1565b90506000611db683836119cf565b30600090815260026020526040902054909150611dd39082611d3f565b30600090815260026020526040902055505050565b600754611df59083611cfd565b600755600854611e059082611d3f565b6008555050565b6000808080611e20606461155d89896119cf565b90506000611e33606461155d8a896119cf565b90506000611e4b82611e458b86611cfd565b90611cfd565b9992985090965090945050505050565b6000808080611e6a88866119cf565b90506000611e7888876119cf565b90506000611e8688886119cf565b90506000611e9882611e458686611cfd565b939b939a50919850919650505050505050565b8035611eb6816122b3565b919050565b600060208284031215611ecd57600080fd5b813561183f816122b3565b600060208284031215611eea57600080fd5b815161183f816122b3565b60008060408385031215611f0857600080fd5b8235611f13816122b3565b91506020830135611f23816122b3565b809150509250929050565b600080600060608486031215611f4357600080fd5b8335611f4e816122b3565b92506020840135611f5e816122b3565b929592945050506040919091013590565b60008060408385031215611f8257600080fd5b8235611f8d816122b3565b946020939093013593505050565b60006020808385031215611fae57600080fd5b823567ffffffffffffffff80821115611fc657600080fd5b818501915085601f830112611fda57600080fd5b813581811115611fec57611fec61229d565b8060051b604051601f19603f830116810181811085821117156120115761201161229d565b604052828152858101935084860182860187018a101561203057600080fd5b600095505b8386101561205a5761204681611eab565b855260019590950194938601938601612035565b5098975050505050505050565b60006020828403121561207957600080fd5b8135801515811461183f57600080fd5b60006020828403121561209b57600080fd5b5035919050565b600080604083850312156120b557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156120f1578581018301518582016040015282016120d5565b81811115612103576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121c55784516001600160a01b0316835293830193918301916001016121a0565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156121f9576121f9612271565b500190565b60008261221b57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561223a5761223a612271565b500290565b60008282101561225157612251612271565b500390565b600060001982141561226a5761226a612271565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108a957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095e2394285af94d7485b5b608ab6009a7134b87e8b62d4e286e245fb49ebced464736f6c63430008070033
Deployed Bytecode Sourcemap
4097:15688:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6630:83;;;;;;;;;;-1:-1:-1;6700:5:0;;;;;;;;;;;;-1:-1:-1;;;6700:5:0;;;;6630:83;;;;;;;:::i;:::-;;;;;;;;7555:193;;;;;;;;;;-1:-1:-1;7555:193:0;;;;;:::i;:::-;;:::i;:::-;;;4370:14:1;;4363:22;4345:41;;4333:2;4318:18;7555:193:0;4205:187:1;14938:105:0;;;;;;;;;;-1:-1:-1;14938:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15018:17:0;14995:4;15018:17;;;:9;:17;;;;;;;;;14938:105;5675:41;;;;;;;;;;-1:-1:-1;5675:41:0;;;;-1:-1:-1;;;;;5675:41:0;;;;;;-1:-1:-1;;;;;3852:32:1;;;3834:51;;3822:2;3807:18;5675:41:0;3688:203:1;6907:95:0;;;;;;;;;;-1:-1:-1;4698:12:0;6907:95;;;10737:25:1;;;10725:2;10710:18;6907:95:0;10591:177:1;7756:446:0;;;;;;;;;;-1:-1:-1;7756:446:0;;;;;:::i;:::-;;:::i;5543:80::-;;;;;;;;;;;;5581:42;5543:80;;14580:192;;;;;;;;;;-1:-1:-1;14580:192:0;;;;;:::i;:::-;;:::i;:::-;;6016:49;;;;;;;;;;;;;;;;6816:83;;;;;;;;;;-1:-1:-1;6816:83:0;;4321:1;11900:36:1;;11888:2;11873:18;6816:83:0;11758:184:1;14780:150:0;;;;;;;;;;-1:-1:-1;14780:150:0;;;;;:::i;:::-;;:::i;19200:173::-;;;;;;;;;;-1:-1:-1;19200:173:0;;;;;:::i;:::-;;:::i;5723:28::-;;;;;;;;;;-1:-1:-1;5723:28:0;;;;-1:-1:-1;;;;;5723:28:0;;;13432:372;;;;;;;;;;;;;:::i;19381:91::-;;;;;;;;;;-1:-1:-1;19381:91:0;;;;;:::i;:::-;;:::i;13967:235::-;;;;;;;;;;-1:-1:-1;13967:235:0;;;;;:::i;:::-;;:::i;6072:46::-;;;;;;;;;;;;;;;;18675:101;;;;;;;;;;-1:-1:-1;18675:101:0;;;;;:::i;:::-;;:::i;15051:196::-;;;;;;;;;;;;;:::i;7010:138::-;;;;;;;;;;-1:-1:-1;7010:138:0;;;;;:::i;:::-;;:::i;1576:148::-;;;;;;;;;;;;;:::i;18788:110::-;;;;;;;;;;-1:-1:-1;18788:110:0;;;;;:::i;:::-;;:::i;4855:25::-;;;;;;;;;;;;;;;;13812:147;;;;;;;;;;;;;:::i;5917:41::-;;;;;;;;;;;;;;;;14347:225;;;;;;;;;;-1:-1:-1;14347:225:0;;;;;:::i;:::-;;:::i;1362:79::-;;;;;;;;;;-1:-1:-1;1400:7:0;1427:6;-1:-1:-1;;;;;1427:6:0;1362:79;;5966:43;;;;;;;;;;;;;;;;6721:87;;;;;;;;;;-1:-1:-1;6793:7:0;;;;;;;;;;;;-1:-1:-1;;;6793:7:0;;;;6721:87;;19480:182;;;;;;;;;;-1:-1:-1;19480:182:0;;;;;:::i;:::-;;:::i;14210:129::-;;;;;;;;;;-1:-1:-1;14210:129:0;;;;;:::i;:::-;;:::i;7156:199::-;;;;;;;;;;-1:-1:-1;7156:199:0;;;;;:::i;:::-;;:::i;19035:157::-;;;;;;;;;;-1:-1:-1;19035:157:0;;;;;:::i;:::-;;:::i;7363:184::-;;;;;;;;;;-1:-1:-1;7363:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7512:18:0;;;7480:7;7512:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7363:184;19670:110;;;;;;;;;;-1:-1:-1;19670:110:0;;;;;:::i;:::-;;:::i;18910:117::-;;;;;;;;;;-1:-1:-1;18910:117:0;;;;;:::i;:::-;;:::i;1736:244::-;;;;;;;;;;-1:-1:-1;1736:244:0;;;;;:::i;:::-;;:::i;5632:36::-;;;;;;;;;;;;;;;;7555:193;7657:4;7679:39;201:10;7702:7;7711:6;7679:8;:39::i;:::-;-1:-1:-1;7736:4:0;7555:193;;;;;:::o;7756:446::-;7888:4;7905:36;7915:6;7923:9;7934:6;7905:9;:36::i;:::-;7952:220;7975:6;201:10;8023:138;8079:6;8023:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8023:19:0;;;;;;:11;:19;;;;;;;;201:10;8023:33;;;;;;;;;;:37;:138::i;:::-;7952:8;:220::i;:::-;-1:-1:-1;8190:4:0;7756:446;;;;;:::o;14580:192::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;;;;;;;;;14659:9:::1;14655:110;14676:7;:14;14673:1;:17;14655:110;;;14735:4;14711:9;:21;14721:7;14729:1;14721:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14711:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14711:21:0;:28;;-1:-1:-1;;14711:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14692:3;::::1;::::0;::::1;:::i;:::-;;;;14655:110;;;;14580:192:::0;:::o;14780:150::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14852:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14848:75;;;-1:-1:-1::0;;;;;14886:17:0;::::1;14906:5;14886:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14886:25:0::1;::::0;;14848:75:::1;14780:150:::0;:::o;19200:173::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;19294:14:::1;:29:::0;;;;19334:15:::1;:31:::0;19200:173::o;13432:372::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;13489:11:::1;::::0;-1:-1:-1;;;13489:11:0;::::1;;;13488:12;13480:21;;;::::0;::::1;;13625:15;:34:::0;;-1:-1:-1;;;;;;13625:34:0::1;13571:42;13625:34:::0;;::::1;::::0;;;13704:26:::1;::::0;;-1:-1:-1;;;13704:26:0;;;;13571:42;;13704:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;13571:42;13704:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13686:70:0::1;;13765:4;13772:16;-1:-1:-1::0;;;;;13772:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13686:110;::::0;-1:-1:-1;;;;;;13686:110:0::1;::::0;;;;;;-1:-1:-1;;;;;4126:15:1;;;13686:110:0::1;::::0;::::1;4108:34:1::0;4178:15;;4158:18;;;4151:43;4043:18;;13686:110:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13670:13;:126:::0;;-1:-1:-1;;;;;;13670:126:0::1;-1:-1:-1::0;;;;;13670:126:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;13432:372:0:o;19381:91::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;19447:8:::1;:17:::0;19381:91::o;13967:235::-;14065:17;;-1:-1:-1;;;;;14065:17:0;201:10;-1:-1:-1;;;;;14049:33:0;;14041:42;;;;;;14094:17;:45;;-1:-1:-1;;;;;14094:45:0;;;-1:-1:-1;;;;;;14094:45:0;;;;;;;:17;14150:37;;;:18;:37;;;;;:44;;-1:-1:-1;;14150:44:0;14094:45;14150:44;;;13967:235::o;18675:101::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;18742:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18742:26:0::1;-1:-1:-1::0;;;;18742:26:0;;::::1;::::0;;;::::1;::::0;;18675:101::o;15051:196::-;15117:17;;-1:-1:-1;;;;;15117:17:0;201:10;-1:-1:-1;;;;;15101:33:0;;15093:42;;;;;;15175:21;15207:32;15175:21;15207:12;:32::i;7010:138::-;-1:-1:-1;;;;;7123:16:0;;7076:7;7123:16;;;:7;:16;;;;;;7103:37;;:19;:37::i;1576:148::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;1683:1:::1;1667:6:::0;;1646:40:::1;::::0;-1:-1:-1;;;;;1667:6:0;;::::1;::::0;1646:40:::1;::::0;1683:1;;1646:40:::1;1714:1;1697:19:::0;;-1:-1:-1;;;;;;1697:19:0::1;::::0;;1576:148::o;18788:110::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;18864:12:::1;:26:::0;18788:110::o;13812:147::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;13871:11:::1;::::0;-1:-1:-1;;;13871:11:0;::::1;;;13870:12;13862:21;;;::::0;::::1;;13894:11;:18:::0;;-1:-1:-1;;;;13894:18:0::1;-1:-1:-1::0;;;13894:18:0::1;::::0;;13936:15:::1;13923:10;:28:::0;13812:147::o;14347:225::-;14427:17;;-1:-1:-1;;;;;14427:17:0;201:10;-1:-1:-1;;;;;14411:33:0;;14403:42;;;;;;14474:24;14492:4;14474:9;:24::i;:::-;14464:6;:34;;:48;;;;;14511:1;14502:6;:10;14464:48;14456:73;;;;-1:-1:-1;;;14456:73:0;;10452:2:1;14456:73:0;;;10434:21:1;10491:2;10471:18;;;10464:30;-1:-1:-1;;;10510:18:1;;;10503:42;10562:18;;14456:73:0;10250:336:1;14456:73:0;14540:24;14557:6;14540:16;:24::i;19480:182::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;19581:14:::1;:33:::0;;;;19625:12:::1;:29:::0;19480:182::o;14210:129::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;14293:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;14293:38:0::1;-1:-1:-1::0;;;;14293:38:0;;::::1;::::0;;;::::1;::::0;;14210:129::o;7156:199::-;7261:4;7283:42;201:10;7307:9;7318:6;7283:9;:42::i;19035:157::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;19123:12:::1;:24:::0;;;;19158:13:::1;:26:::0;19035:157::o;19670:110::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;19753:19:::1;:9:::0;19765:7:::1;19753:19;:::i;:::-;19741:9;:31:::0;-1:-1:-1;19670:110:0:o;18910:117::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;18989:14:::1;:30:::0;18910:117::o;1736:244::-;1489:6;;-1:-1:-1;;;;;1489:6:0;201:10;1489:22;1481:67;;;;-1:-1:-1;;;1481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1825:22:0;::::1;1817:73;;;::::0;-1:-1:-1;;;1817:73:0;;6960:2:1;1817:73:0::1;::::0;::::1;6942:21:1::0;6999:2;6979:18;;;6972:30;7038:34;7018:18;;;7011:62;-1:-1:-1;;;7089:18:1;;;7082:36;7135:19;;1817:73:0::1;6758:402:1::0;1817:73:0::1;1927:6;::::0;;1906:38:::1;::::0;-1:-1:-1;;;;;1906:38:0;;::::1;::::0;1927:6;::::1;::::0;1906:38:::1;::::0;::::1;1955:6;:17:::0;;-1:-1:-1;;;;;;1955:17:0::1;-1:-1:-1::0;;;;;1955:17:0;;;::::1;::::0;;;::::1;::::0;;1736:244::o;9021:369::-;-1:-1:-1;;;;;9148:19:0;;9140:68;;;;-1:-1:-1;;;9140:68:0;;10047:2:1;9140:68:0;;;10029:21:1;10086:2;10066:18;;;10059:30;10125:34;10105:18;;;10098:62;-1:-1:-1;;;10176:18:1;;;10169:34;10220:19;;9140:68:0;9845:400:1;9140:68:0;-1:-1:-1;;;;;9227:21:0;;9219:68;;;;-1:-1:-1;;;9219:68:0;;7367:2:1;9219:68:0;;;7349:21:1;7406:2;7386:18;;;7379:30;7445:34;7425:18;;;7418:62;-1:-1:-1;;;7496:18:1;;;7489:32;7538:19;;9219:68:0;7165:398:1;9219:68:0;-1:-1:-1;;;;;9298:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9350:32;;10737:25:1;;;9350:32:0;;10710:18:1;9350:32:0;;;;;;;9021:369;;;:::o;9398:3302::-;-1:-1:-1;;;;;9520:18:0;;9512:68;;;;-1:-1:-1;;;9512:68:0;;9299:2:1;9512:68:0;;;9281:21:1;9338:2;9318:18;;;9311:30;9377:34;9357:18;;;9350:62;-1:-1:-1;;;9428:18:1;;;9421:35;9473:19;;9512:68:0;9097:401:1;9512:68:0;-1:-1:-1;;;;;9599:16:0;;9591:64;;;;-1:-1:-1;;;9591:64:0;;5435:2:1;9591:64:0;;;5417:21:1;5474:2;5454:18;;;5447:30;5513:34;5493:18;;;5486:62;-1:-1:-1;;;5564:18:1;;;5557:33;5607:19;;9591:64:0;5233:399:1;9591:64:0;9683:1;9674:6;:10;9666:64;;;;-1:-1:-1;;;9666:64:0;;8889:2:1;9666:64:0;;;8871:21:1;8928:2;8908:18;;;8901:30;8967:34;8947:18;;;8940:62;-1:-1:-1;;;9018:18:1;;;9011:39;9067:19;;9666:64:0;8687:405:1;9666:64:0;-1:-1:-1;;;;;9750:13:0;;;;;;:9;:13;;;;;;;;9749:14;9741:40;;;;-1:-1:-1;;;9741:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9801:15:0;;;;;;:9;:15;;;;;;;;9800:16;9792:42;;;;-1:-1:-1;;;9792:42:0;;;;;;;:::i;:::-;201:10;9854:23;;;;:9;:23;;;;;;;;9853:24;9845:50;;;;-1:-1:-1;;;9845:50:0;;;;;;;:::i;:::-;1400:7;1427:6;-1:-1:-1;;;;;9912:15:0;;;1427:6;;9912:15;;;;:32;;-1:-1:-1;1400:7:0;1427:6;-1:-1:-1;;;;;9931:13:0;;;1427:6;;9931:13;;9912:32;9908:1722;;;9980:11;;-1:-1:-1;;;9980:11:0;;;;9975:87;;10012:34;;-1:-1:-1;;;10012:34:0;;5839:2:1;10012:34:0;;;5821:21:1;5878:2;5858:18;;;5851:30;5917:26;5897:18;;;5890:54;5961:18;;10012:34:0;5637:348:1;9975:87:0;10100:13;;-1:-1:-1;;;;;10094:19:0;;;10100:13;;10094:19;:55;;;;-1:-1:-1;10133:15:0;;-1:-1:-1;;;;;10117:32:0;;;10133:15;;10117:32;;10094:55;10090:307;;;-1:-1:-1;;;;;10174:19:0;;10188:4;10174:19;;;;:44;;-1:-1:-1;;;;;;10197:21:0;;10213:4;10197:21;;10174:44;:71;;;;-1:-1:-1;10228:17:0;;-1:-1:-1;;;;;10222:23:0;;;10228:17;;10222:23;;10174:71;:100;;;;-1:-1:-1;10257:17:0;;-1:-1:-1;;;;;10249:25:0;;;10257:17;;10249:25;;10174:100;10170:212;;;10317:12;;10307:6;:22;;10299:63;;;;-1:-1:-1;;;10299:63:0;;6603:2:1;10299:63:0;;;6585:21:1;6642:2;6622:18;;;6615:30;6681;6661:18;;;6654:58;6729:18;;10299:63:0;6401:352:1;10299:63:0;10423:13;;-1:-1:-1;;;;;10417:19:0;;;10423:13;;10417:19;;;;:46;;-1:-1:-1;10446:17:0;;-1:-1:-1;;;;;10440:23:0;;;10446:17;;10440:23;;10417:46;:69;;;;-1:-1:-1;;;;;;10467:19:0;;10481:4;10467:19;;10417:69;:90;;;;-1:-1:-1;;;;;;10490:17:0;;5581:42;10490:17;;10417:90;10413:396;;;10561:14;;10552:6;10536:13;10546:2;10536:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10528:48;;;;;;10599:17;;-1:-1:-1;;;10599:17:0;;;;10595:199;;;10664:10;;:22;;10677:9;10664:22;:::i;:::-;10645:15;:41;10641:134;;10733:17;;10723:6;:27;;10715:36;;;;;;10837:28;10868:24;10886:4;10868:9;:24::i;:::-;10945:19;;10837:55;;-1:-1:-1;10922:42:0;;;10997:18;;;;-1:-1:-1;11009:6:0;;-1:-1:-1;;;11009:6:0;;;;11008:7;10997:18;:43;;;;-1:-1:-1;11027:13:0;;-1:-1:-1;;;;;11019:21:0;;;11027:13;;11019:21;;10997:43;:58;;;;-1:-1:-1;11044:11:0;;-1:-1:-1;;;11044:11:0;;;;10997:58;:87;;;;-1:-1:-1;;;;;;11060:24:0;;;;;;:18;:24;;;;;;;;11059:25;10997:87;:114;;;;-1:-1:-1;;;;;;11089:22:0;;;;;;:18;:22;;;;;;;;11088:23;10997:114;10993:626;;;11178:8;;11132:19;;11178:12;11174:166;;11229:45;11268:5;11229:34;11254:8;;11229:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11215:59;;11297:23;11308:11;11297:10;:23::i;:::-;11358:52;11375:34;11398:11;11375:20;:34;:::i;:::-;11358:16;:52::i;:::-;11458:21;11502:22;;11498:106;;11549:35;11562:21;11549:12;:35::i;:::-;11113:506;;10993:626;9946:1684;;9908:1722;-1:-1:-1;;;;;11687:24:0;;11650:12;11687:24;;;:18;:24;;;;;;11665:4;;11687:24;;;:50;;-1:-1:-1;;;;;;11715:22:0;;;;;;:18;:22;;;;;;;;11687:50;11686:102;;;-1:-1:-1;11751:13:0;;-1:-1:-1;;;;;11743:21:0;;;11751:13;;11743:21;;;;:44;;-1:-1:-1;11774:13:0;;-1:-1:-1;;;;;11768:19:0;;;11774:13;;11768:19;;11743:44;11682:957;;;-1:-1:-1;11815:5:0;11682:957;;;11864:13;;-1:-1:-1;;;;;11856:21:0;;;11864:13;;11856:21;:55;;;;-1:-1:-1;11895:15:0;;-1:-1:-1;;;;;11881:30:0;;;11895:15;;11881:30;;11856:55;11853:350;;;-1:-1:-1;;;;;11936:11:0;;;;;;:7;:11;;;;;11950:15;11936:29;;;;12000:14;;11988:9;:26;12047:12;;12037:7;:22;12105:10;;12086:29;12082:106;;;-1:-1:-1;;;;;12144:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12144:20:0;12160:4;12144:20;;;12082:106;12233:13;;-1:-1:-1;;;;;12227:19:0;;;12233:13;;12227:19;:55;;;;-1:-1:-1;12266:15:0;;-1:-1:-1;;;;;12250:32:0;;;12266:15;;12250:32;;12227:55;12223:405;;;-1:-1:-1;;;;;12307:13:0;;;;;;:7;:13;;;;;;:18;;;;:68;;-1:-1:-1;12346:9:0;;-1:-1:-1;;;;;12330:13:0;;;;;;:7;:13;;;;;;12359:15;;12330:25;;;:::i;:::-;:44;;12307:68;12303:310;;;12412:14;;12400:9;:26;12459:12;;12449:7;:22;12303:310;;;12532:15;;12520:9;:27;12580:13;;12570:7;:23;12303:310;12651:41;12666:4;12672:2;12676:6;12684:7;12651:14;:41::i;:::-;9501:3199;9398:3302;;;:::o;2348:224::-;2468:7;2504:12;2496:6;;;;2488:29;;;;-1:-1:-1;;;2488:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2528:9:0;2540:5;2544:1;2540;:5;:::i;:::-;2528:17;2348:224;-1:-1:-1;;;;;2348:224:0:o;13325:99::-;13382:17;;:34;;-1:-1:-1;;;;;13382:17:0;;;;:34;;;;;13409:6;;13382:17;:34;:17;:34;13409:6;13382:17;:34;;;;;;;;;;;;;;;;;;;8210:323;8305:7;8363;;8352;:18;;8330:110;;;;-1:-1:-1;;;8330:110:0;;6192:2:1;8330:110:0;;;6174:21:1;6231:2;6211:18;;;6204:30;6270:34;6250:18;;;6243:62;-1:-1:-1;;;6321:18:1;;;6314:40;6371:19;;8330:110:0;5990:406:1;8330:110:0;8451:19;8473:10;:8;:10::i;:::-;8451:32;-1:-1:-1;8501:24:0;:7;8451:32;8501:11;:24::i;:::-;8494:31;8210:323;-1:-1:-1;;;8210:323:0:o;12834:483::-;6213:6;:13;;-1:-1:-1;;;;6213:13:0;-1:-1:-1;;;6213:13:0;;;12936:16:::1;::::0;;12950:1:::1;12936:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12936:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12936:16:0::1;12912:40;;12981:4;12963;12968:1;12963:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12963:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13007:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13007:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12963:7;;13007:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12997:4;13002:1;12997:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12997:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13072:15:::1;::::0;13040:62:::1;::::0;13057:4:::1;::::0;13072:15:::1;13090:11:::0;13040:8:::1;:62::i;:::-;13113:15;::::0;:196:::1;::::0;-1:-1:-1;;;13113:196:0;;-1:-1:-1;;;;;13113:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13194:11;;13113:15:::1;::::0;13236:4;;13263::::1;::::0;13283:15:::1;::::0;13113:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6249:6:0;:14;;-1:-1:-1;;;;6249:14:0;;;-1:-1:-1;;;;12834:483:0:o;2580:246::-;2638:7;2662:6;2658:47;;-1:-1:-1;2692:1:0;2685:8;;2658:47;2715:9;2727:5;2731:1;2727;:5;:::i;:::-;2715:17;-1:-1:-1;2760:1:0;2751:5;2755:1;2715:17;2751:5;:::i;:::-;:10;2743:56;;;;-1:-1:-1;;;2743:56:0;;8126:2:1;2743:56:0;;;8108:21:1;8165:2;8145:18;;;8138:30;8204:34;8184:18;;;8177:62;-1:-1:-1;;;8255:18:1;;;8248:31;8296:19;;2743:56:0;7924:397:1;2834:132:0;2892:7;2919:39;2923:1;2926;2919:39;;;;;;;;;;;;;;;;;:3;:39::i;12708:118::-;12768:50;12786:4;5581:42;12806:11;12768:9;:50::i;15255:282::-;15411:7;15406:28;;15420:14;:12;:14::i;:::-;15445:44;15463:6;15471:9;15482:6;15445:17;:44::i;:::-;15505:7;15500:29;;15514:15;8914:17;;8902:9;:29;8952:15;;8942:7;:25;8989:16;;8978:8;:27;8858:155;18230:166;18272:7;18293:15;18310;18329:19;:17;:19::i;:::-;18292:56;;-1:-1:-1;18292:56:0;-1:-1:-1;18368:20:0;18292:56;;18368:11;:20::i;:::-;18361:27;;;;18230:166;:::o;2974:223::-;3094:7;3129:12;3122:5;3114:28;;;;-1:-1:-1;;;3114:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3153:9:0;3165:5;3169:1;3165;:5;:::i;8541:309::-;8588:9;;:14;:30;;;;-1:-1:-1;8606:7:0;;:12;8588:30;:47;;;;-1:-1:-1;8622:8:0;;:13;8588:47;8584:60;;;8541:309::o;8584:60::-;8680:9;;;8660:17;:29;8718:7;;;8700:15;:25;8755:8;;;8736:16;:27;-1:-1:-1;8784:13:0;;;;8808:11;;;;8830:12;8541:309::o;15545:610::-;15692:15;15722:23;15760:12;15787:23;15825:12;15852:13;15879:19;15890:7;15879:10;:19::i;:::-;-1:-1:-1;;;;;15927:15:0;;;;;;:7;:15;;;;;;15677:221;;-1:-1:-1;15677:221:0;;-1:-1:-1;15677:221:0;;-1:-1:-1;15677:221:0;-1:-1:-1;15677:221:0;-1:-1:-1;15677:221:0;-1:-1:-1;15927:28:0;;15677:221;15927:19;:28::i;:::-;-1:-1:-1;;;;;15909:15:0;;;;;;;:7;:15;;;;;;:46;;;;15987:18;;;;;;;:39;;16010:15;15987:22;:39::i;:::-;-1:-1:-1;;;;;15966:18:0;;;;;;:7;:18;;;;;:60;16037:16;16047:5;16037:9;:16::i;:::-;16064:23;16076:4;16082;16064:11;:23::i;:::-;16120:9;-1:-1:-1;;;;;16103:44:0;16112:6;-1:-1:-1;;;;;16103:44:0;;16131:15;16103:44;;;;10737:25:1;;10725:2;10710:18;;10591:177;16103:44:0;;;;;;;;15666:489;;;;;;15545:610;;;:::o;18404:263::-;18502:7;;18455;;;;4698:12;18570:20;18502:7;4698:12;18570:11;:20::i;:::-;18560:7;:30;18556:61;;;-1:-1:-1;;18600:7:0;;;4698:12;;-1:-1:-1;18404:263:0;-1:-1:-1;18404:263:0:o;18556:61::-;18642:7;;18651;;-1:-1:-1;18404:263:0;-1:-1:-1;18404:263:0:o;16574:625::-;16674:7;16696;16718;16740;16762;16784;16820:23;16845:12;16859:13;16889:40;16901:7;16910:9;;16921:7;;16889:11;:40::i;:::-;16819:110;;;;;;16940:19;16962:10;:8;:10::i;:::-;16940:32;;16984:15;17001:23;17026:12;17055:46;17067:7;17076:4;17082:5;17089:11;17055;:46::i;:::-;16983:118;;-1:-1:-1;16983:118:0;-1:-1:-1;16983:118:0;-1:-1:-1;17162:15:0;;-1:-1:-1;17179:4:0;;-1:-1:-1;17185:5:0;;-1:-1:-1;;;;;16574:625:0;;;;;;;:::o;2204:136::-;2262:7;2289:43;2293:1;2296;2289:43;;;;;;;;;;;;;;;;;:3;:43::i;2017:179::-;2075:7;;2107:5;2111:1;2107;:5;:::i;:::-;2095:17;;2136:1;2131;:6;;2123:46;;;;-1:-1:-1;;;2123:46:0;;7770:2:1;2123:46:0;;;7752:21:1;7809:2;7789:18;;;7782:30;7848:29;7828:18;;;7821:57;7895:18;;2123:46:0;7568:351:1;16163:211:0;16216:19;16238:10;:8;:10::i;:::-;16216:32;-1:-1:-1;16259:13:0;16275:22;:5;16216:32;16275:9;:22::i;:::-;16349:4;16333:22;;;;:7;:22;;;;;;16259:38;;-1:-1:-1;16333:33:0;;16259:38;16333:26;:33::i;:::-;16324:4;16308:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16163:211:0:o;16382:147::-;16460:7;;:17;;16472:4;16460:11;:17::i;:::-;16450:7;:27;16501:10;;:20;;16516:4;16501:14;:20::i;:::-;16488:10;:33;-1:-1:-1;;16382:147:0:o;17207:471::-;17376:7;;;;17470:30;17496:3;17470:21;:7;17482:8;17470:11;:21::i;:30::-;17455:45;-1:-1:-1;17511:13:0;17527:28;17551:3;17527:19;:7;17539:6;17527:11;:19::i;:28::-;17511:44;-1:-1:-1;17566:23:0;17592:28;17511:44;17592:17;:7;17604:4;17592:11;:17::i;:::-;:21;;:28::i;:::-;17566:54;17658:4;;-1:-1:-1;17664:5:0;;-1:-1:-1;17207:471:0;;-1:-1:-1;;;;;17207:471:0:o;17686:536::-;17880:7;;;;17977:24;:7;17989:11;17977;:24::i;:::-;17959:42;-1:-1:-1;18012:12:0;18027:21;:4;18036:11;18027:8;:21::i;:::-;18012:36;-1:-1:-1;18059:13:0;18075:22;:5;18085:11;18075:9;:22::i;:::-;18059:38;-1:-1:-1;18108:23:0;18134:28;18059:38;18134:17;:7;18146:4;18134:11;:17::i;:28::-;18183:7;;;;-1:-1:-1;18209:4:0;;-1:-1:-1;17686:536:0;;-1:-1:-1;;;;;;;17686:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:273::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3189:5;3182:13;3175:21;3168:5;3165:32;3155:60;;3211:1;3208;3201:12;3250:180;3309:6;3362:2;3350:9;3341:7;3337:23;3333:32;3330:52;;;3378:1;3375;3368:12;3330:52;-1:-1:-1;3401:23:1;;3250:180;-1:-1:-1;3250:180:1:o;3435:248::-;3503:6;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;-1:-1:-1;;3603:23:1;;;3673:2;3658:18;;;3645:32;;-1:-1:-1;3435:248:1:o;4631:597::-;4743:4;4772:2;4801;4790:9;4783:21;4833:6;4827:13;4876:6;4871:2;4860:9;4856:18;4849:34;4901:1;4911:140;4925:6;4922:1;4919:13;4911:140;;;5020:14;;;5016:23;;5010:30;4986:17;;;5005:2;4982:26;4975:66;4940:10;;4911:140;;;5069:6;5066:1;5063:13;5060:91;;;5139:1;5134:2;5125:6;5114:9;5110:22;5106:31;5099:42;5060:91;-1:-1:-1;5212:2:1;5191:15;-1:-1:-1;;5187:29:1;5172:45;;;;5219:2;5168:54;;4631:597;-1:-1:-1;;;4631:597:1:o;8326:356::-;8528:2;8510:21;;;8547:18;;;8540:30;8606:34;8601:2;8586:18;;8579:62;8673:2;8658:18;;8326:356::o;9503:337::-;9705:2;9687:21;;;9744:2;9724:18;;;9717:30;-1:-1:-1;;;9778:2:1;9763:18;;9756:43;9831:2;9816:18;;9503:337::o;10773:980::-;11035:4;11083:3;11072:9;11068:19;11114:6;11103:9;11096:25;11140:2;11178:6;11173:2;11162:9;11158:18;11151:34;11221:3;11216:2;11205:9;11201:18;11194:31;11245:6;11280;11274:13;11311:6;11303;11296:22;11349:3;11338:9;11334:19;11327:26;;11388:2;11380:6;11376:15;11362:29;;11409:1;11419:195;11433:6;11430:1;11427:13;11419:195;;;11498:13;;-1:-1:-1;;;;;11494:39:1;11482:52;;11589:15;;;;11554:12;;;;11530:1;11448:9;11419:195;;;-1:-1:-1;;;;;;;11670:32:1;;;;11665:2;11650:18;;11643:60;-1:-1:-1;;;11734:3:1;11719:19;11712:35;11631:3;10773:980;-1:-1:-1;;;10773:980:1:o;11947:128::-;11987:3;12018:1;12014:6;12011:1;12008:13;12005:39;;;12024:18;;:::i;:::-;-1:-1:-1;12060:9:1;;11947:128::o;12080:217::-;12120:1;12146;12136:132;;12190:10;12185:3;12181:20;12178:1;12171:31;12225:4;12222:1;12215:15;12253:4;12250:1;12243:15;12136:132;-1:-1:-1;12282:9:1;;12080:217::o;12302:168::-;12342:7;12408:1;12404;12400:6;12396:14;12393:1;12390:21;12385:1;12378:9;12371:17;12367:45;12364:71;;;12415:18;;:::i;:::-;-1:-1:-1;12455:9:1;;12302:168::o;12475:125::-;12515:4;12543:1;12540;12537:8;12534:34;;;12548:18;;:::i;:::-;-1:-1:-1;12585:9:1;;12475:125::o;12605:135::-;12644:3;-1:-1:-1;;12665:17:1;;12662:43;;;12685:18;;:::i;:::-;-1:-1:-1;12732:1:1;12721:13;;12605:135::o;12745:127::-;12806:10;12801:3;12797:20;12794:1;12787:31;12837:4;12834:1;12827:15;12861:4;12858:1;12851:15;12877:127;12938:10;12933:3;12929:20;12926:1;12919:31;12969:4;12966:1;12959:15;12993:4;12990:1;12983:15;13009:127;13070:10;13065:3;13061:20;13058:1;13051:31;13101:4;13098:1;13091:15;13125:4;13122:1;13115:15;13141:131;-1:-1:-1;;;;;13216:31:1;;13206:42;;13196:70;;13262:1;13259;13252:12
Swarm Source
ipfs://95e2394285af94d7485b5b608ab6009a7134b87e8b62d4e286e245fb49ebced4
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.