ERC-20
Overview
Max Total Supply
100,000 LDOGE
Holders
21
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LordOfDoge
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-26 */ pragma solidity ^0.8.12; // SPDX-License-Identifier: Unlicensed 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 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 IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } abstract contract ERC20Interface { function balanceOf(address whom) public view virtual returns (uint256); } contract LordOfDoge is IERC20, Ownable { using SafeMath for uint256; string constant _name = "Lord Of Doge"; string constant _symbol = "LDOGE"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ; //address routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; uint256 _totalSupply = 100000 * (10**_decimals); uint256 public biggestBuy = 0; uint256 public lastRingChange = 0; uint256 public resetPeriod = 30 minutes; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => uint256) public _lastRingTimer; mapping(address => uint256) public _payOutTotal; mapping(address => uint256) public _payOutCurrent; mapping(address => uint256) public _numOfTimesLord; mapping(address => bool) public previousRingHolder; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) private _isBlackedlisted; address[] public lordArray; uint256 private constant MAX = ~uint256(0); uint256 public liquidityFee = 2; uint256 public marketingFee = 3; uint256 public ringFee = 5; uint256 public totalFee = 10; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver; address public marketingWallet; address public Ring; uint256 public total_payout_overall = 0; uint256 public total_current_payout; uint256 public cooldownPeriod = 10800; address public previous_ring; uint256 public totalNumOfLords; uint256 public _payOutValue; uint256 private randNum; bool public _isLaunched = false; uint256 private _launchTime; IUniswapV2Router02 public router; address public pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount = _totalSupply; uint256 public _maxWalletAmount = _totalSupply / 50; uint256 public swapThreshold = _totalSupply / 200; uint256 public timeToWait = 6; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event AutoLiquify(uint256 amountETH, uint256 amountToken); event NewRing(address ring, uint256 buyAmount); event RingPayout(address ring, uint256 amountETH); event RingSold(address ring, uint256 amountETH); constructor() { router = IUniswapV2Router02(routerAddress); pair = IUniswapV2Factory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = MAX; isFeeExempt[DEAD] = true; isTxLimitExempt[DEAD] = true; isFeeExempt[_msgSender()] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[_msgSender()] = true; isTxLimitExempt[pair] = true; autoLiquidityReceiver = _msgSender(); marketingWallet = _msgSender(); Ring = _msgSender(); totalFee = liquidityFee.add(marketingFee).add(ringFee); totalFeeIfSelling = totalFee; _balances[owner()] = _totalSupply; random(); emit Transfer(address(0), owner(), _balances[owner()]); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function getOwner() external view override returns (address) { return owner(); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function setFees( uint256 newLiquidityFee, uint256 newMarketingFee, uint256 newringFee ) external onlyOwner { require( newLiquidityFee >= 0 && newLiquidityFee <= 10, "Invalid fee" ); require( newMarketingFee >= 0 && newMarketingFee <= 10, "Invalid fee" ); require( newringFee >= 0 && newringFee <= 10, "Invalid fee" ); liquidityFee = newLiquidityFee; marketingFee = newMarketingFee; ringFee = newringFee; totalFee = liquidityFee.add(marketingFee).add(ringFee); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, MAX); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setSwapThreshold(uint256 threshold) external onlyOwner { swapThreshold = threshold; } function setFeeReceivers( address newLiquidityReceiver, address newMarketingWallet ) external onlyOwner { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; } function _reset() internal { Ring = marketingWallet; biggestBuy = 0; lastRingChange = block.timestamp; } function epochReset() external view returns (uint256) { return lastRingChange + resetPeriod; } function enableHappyHour() public onlyOwner() { liquidityFee = 1; marketingFee = 1; ringFee = 10; totalFee = liquidityFee.add(marketingFee).add(ringFee); totalFeeIfSelling = totalFee; } function setDefaultTaxes() public onlyOwner() { liquidityFee = 2; marketingFee = 5; ringFee = 5; totalFee = liquidityFee.add(marketingFee).add(ringFee); totalFeeIfSelling = totalFee; } function lfg() external onlyOwner { require (_isLaunched == false, "Already launched"); _isLaunched = true; _launchTime = block.timestamp; Ring = marketingWallet; biggestBuy = 0; lastRingChange = block.timestamp; } function setMaxWalletSize(uint256 amount) external onlyOwner { require(amount>=_totalSupply / 50, "Max wallet size is too low"); _maxWalletAmount = amount; } function setMaxTransactionSize(uint256 amount) external onlyOwner { require(amount>=_totalSupply /10, "Max wallet size is too low"); _maxTxAmount = amount; } function addBlacklist(address addr) external onlyOwner { require(block.timestamp < _launchTime + 45 minutes); _isBlackedlisted[addr]=true; } function removedBlacklist(address addr) external onlyOwner { _isBlackedlisted[addr]=false; } function isBlacklisted(address account) external view returns (bool) { return _isBlackedlisted[account]; } function autoBlacklist(address addr) private { _isBlackedlisted[addr]=true; } function _checkTxLimit( address sender, address recipient, uint256 amount ) internal { if (block.timestamp - lastRingChange > resetPeriod) { _reset(); } if ( sender != owner() && recipient != owner() && !isTxLimitExempt[recipient] && recipient != ZERO && recipient != DEAD && recipient != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); uint256 contractBalanceRecipient = balanceOf(recipient); require( contractBalanceRecipient + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount" ); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); uint256 usedEth = router.getAmountsIn(amount, path)[0]; if (previousRingHolder[recipient]==true && _lastRingTimer[recipient] + cooldownPeriod < block.timestamp && usedEth > biggestBuy) { previous_ring = Ring; Ring = recipient; total_current_payout = 0; biggestBuy = usedEth; lastRingChange = block.timestamp; emit NewRing(Ring, biggestBuy); } else if (usedEth > biggestBuy) { previous_ring = Ring; Ring = recipient; biggestBuy = usedEth; lastRingChange = block.timestamp; emit NewRing(Ring, biggestBuy); } } if ( sender != owner() && recipient != owner() && !isTxLimitExempt[sender] && sender != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); if (Ring == sender) { emit RingSold(Ring, biggestBuy); _reset(); } } } function random() private { uint256 randomnumber = uint256(keccak256(abi.encodePacked(block.timestamp,block.difficulty, _msgSender()))) % 60; randNum = randomnumber + 1; } function setSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function setSellingFee(uint256 newSellFee) external onlyOwner { require( newSellFee >= 0 && newSellFee <= 20, "Invalid fee" ); totalFeeIfSelling = newSellFee; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(_msgSender(), recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][_msgSender()] != MAX) { _allowances[sender][_msgSender()] = _allowances[sender][_msgSender()] .sub(amount, "Insufficient Allowance"); } _transferFrom(sender, recipient, amount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(_isBlackedlisted[sender]!=true && _isBlackedlisted[recipient]!=true, "Blacklisted"); if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if ( _msgSender() != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this) ]>= swapThreshold ) { swapBack(_balances[address(this)]); } _checkTxLimit(sender, recipient, amount); require(!isWalletToWallet(sender, recipient), "Don't cheat"); uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; if (_isLaunched !=true && recipient !=pair && sender!=owner() && recipient!=owner()) { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); autoBlacklist(recipient); } else if (_isLaunched==true && _launchTime + 3 minutes + randNum > block.timestamp && recipient !=pair && sender!=owner() && recipient!=owner()) { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); autoBlacklist(recipient); } else if (sender==owner() || recipient==owner()) { _balances[recipient] = _balances[recipient].add(amount); _balances[sender] = _balances[sender].sub(amount); } else { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function isWalletToWallet(address sender, address recipient) internal view returns (bool) { if (isFeeExempt[sender] || isFeeExempt[recipient]) { return false; } if (sender == pair || recipient == pair) { return false; } return true; } function swapBack(uint256 balance) internal lockTheSwap { //uint256 tokensToLiquify = _balances[address(this)]; uint256 tokensToLiquify = balance; uint256 amountToLiquify = tokensToLiquify .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHRing = amountETH.mul(ringFee).div(totalETHFee); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); (bool tmpSuccess, ) = payable(marketingWallet).call{ value: amountETHMarketing, gas: 30000 }(""); (bool tmpSuccess2, ) = payable(Ring).call{ value: amountETHRing, gas: 30000 }(""); _payOutValue=amountETHRing; _payOutTotal[Ring]+=amountETHRing; _lastRingTimer[Ring] = block.timestamp; emit RingPayout(Ring, amountETHRing); if (Ring!=previous_ring) { previous_ring=Ring; total_current_payout=0; total_current_payout=total_current_payout+amountETHRing; _numOfTimesLord[Ring]+=1; totalNumOfLords+=1; if(previousRingHolder[Ring]==false) { lordArray.push(Ring); } previousRingHolder[Ring]=true; } total_payout_overall=total_payout_overall+amountETHRing; if (Ring==previous_ring) { total_current_payout=total_current_payout+amountETHRing; _payOutCurrent[Ring] += total_current_payout; } // only to supress warning msg tmpSuccess = false; tmpSuccess2 = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios approve(address(routerAddress), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function getLordArray() public view returns (address[] memory) { return lordArray; } function recoverLosteth() external { require(msg.sender==marketingWallet); payable(_msgSender()).transfer(address(this).balance); } function manualToken() external { require(msg.sender==marketingWallet); uint256 amountToken = balanceOf(address(this)); _transferFrom(address(this), owner(), (amountToken)); } function setResetPeriodInSeconds(uint256 newResetPeriod) external { require(msg.sender==marketingWallet); resetPeriod = newResetPeriod; } function setCooldownPeriod(uint256 _newCooldownPeriod) external { require(msg.sender==marketingWallet); cooldownPeriod = _newCooldownPeriod; } function disableLimits() public { require(msg.sender==marketingWallet); swapAndLiquifyEnabled=false; _maxTxAmount=MAX; _maxWalletAmount=MAX; marketingFee=0; ringFee=0; liquidityFee=0; } }
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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewRing","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":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingSold","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":"Ring","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastRingTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_numOfTimesLord","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_payOutCurrent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_payOutTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_payOutValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableHappyHour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochReset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLordArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRingChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lfg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lordArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"previousRingHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previous_ring","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removedBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ringFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCooldownPeriod","type":"uint256"}],"name":"setCooldownPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDefaultTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newringFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSellingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalNumOfLords","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_current_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_payout_overall","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a62000715565b6200005f90620186a06200072d565b600481905560006005818155600682905561070860075560026013556003601455601555600a6016556017819055601b55612a30601d556022805460ff191690556025805460ff60a81b1916600160a81b1790556026819055620000c69060329062000765565b60275560c8600454620000da919062000765565b6028556006602955348015620000ef57600080fd5b50620000fb33620004df565b600354602480546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000158573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017e91906200077c565b6001600160a01b031663c9c65396602460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020691906200077c565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027991906200077c565b602580546001600160a01b0319166001600160a01b0392831617905530600090815260096020908152604080832060245485168452825280832060001990556001805485168452600f808452828520805460ff1990811684179091558254909616855260109093529083208054909416811790935590620002f73390565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600f909252812080549092166001908117909255601090620003453390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560255490911681526010909252902080549091166001179055620003943390565b601880546001600160a01b0319166001600160a01b0392909216919091179055620003bc3390565b601980546001600160a01b0319166001600160a01b0392909216919091179055620003e43390565b601a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620004436015546200042f6014546013546200052f60201b6200168c1790919060201c565b6200052f60201b6200168c1790919060201c565b601681905560175560045460086000620004656000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620004896200059e565b600080546001600160a01b03168082526008602090815260408084205490519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200053e8385620007a7565b905083811015620005955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6040805142602080830191909152448284015233606090811b6001600160601b031916908301528251605481840301815260749092019092528051910120600090620005ed90603c90620007bd565b9050620005fc816001620007a7565b60215550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006595781600019048211156200063d576200063d62000602565b808516156200064b57918102915b93841c93908002906200061d565b509250929050565b600082620006725750600162000598565b81620006815750600062000598565b81600181146200069a5760028114620006a557620006c5565b600191505062000598565b60ff841115620006b957620006b962000602565b50506001821b62000598565b5060208310610133831016604e8410600b8410161715620006ea575081810a62000598565b620006f6838362000618565b80600019048211156200070d576200070d62000602565b029392505050565b60006200072660ff84168362000661565b9392505050565b60008160001904831182151516156200074a576200074a62000602565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200077757620007776200074f565b500490565b6000602082840312156200078f57600080fd5b81516001600160a01b03811681146200059557600080fd5b8082018082111562000598576200059862000602565b600082620007cf57620007cf6200074f565b500690565b61301380620007e46000396000f3fe6080604052600436106104095760003560e01c8063944c1d9711610213578063ca33e64c11610123578063e03b1082116100ab578063f84ba65d1161007a578063f84ba65d14610c12578063f861e34014610c32578063f887ea4014610c48578063f928364c14610c68578063fe575a8714610c7d57600080fd5b8063e03b108214610b78578063ea1644d514610ba5578063ee0ebc8b14610bc5578063f2fde38b14610bf257600080fd5b8063d285855c116100f2578063d285855c14610aaf578063da6a0bee14610adc578063dbe1c4d514610afc578063dd62ed3e14610b12578063df20fd4914610b5857600080fd5b8063ca33e64c14610a37578063ca4dcb5114610a57578063ca987b0e14610a79578063cec10c1114610a8f57600080fd5b80639f55eb4e116101a6578063a8aa1b3111610175578063a8aa1b31146109ab578063a9059cbb146109cb578063a9e59da3146109eb578063bbcaa36114610a0b578063bc74f38714610a2157600080fd5b80639f55eb4e1461090e578063a46bbbe01461093e578063a4b45c001461095e578063a4f87a7a1461097e57600080fd5b80639cfe42da116101e25780639cfe42da1461089e5780639d0014b1146108be5780639e0a7810146108de5780639f2bb2e9146108f857600080fd5b8063944c1d971461082f57806395d89b41146108455780639725cd5b1461087357806398118cb41461088857600080fd5b8063561fcd691161031957806375f0a874116102a1578063893d20e811610270578063893d20e8146107b65780638b42507f146107d45780638da5cb5b146107b65780638eb6889f146108045780638f793cb91461081a57600080fd5b806375f0a874146107405780637d1db4a51461076057806380ea3de11461077657806387b3be7d1461079657600080fd5b80636b67c4df116102e85780636b67c4df146106a95780636c0a24eb146106bf57806370a08231146106d5578063712a890a1461070b578063715018a61461072b57600080fd5b8063561fcd6914610633578063571ac8b014610649578063658d4b7f1461066957806366e930b31461068957600080fd5b806323b872dd1161039c5780633e02a9881161036b5780633e02a988146105a25780633f4218e0146105b757806346cf314f146105e75780634a74bb02146105fd5780634fef3a821461061e57600080fd5b806323b872dd1461053c5780632b112e491461055c578063313ce5671461057157806333596f501461058d57600080fd5b8063095ea7b3116103d8578063095ea7b3146104ca578063125b94e5146104fa57806318160ddd146105115780631df4ccfc1461052657600080fd5b806303683f92146104155780630445b6671461045257806304646a491461047657806306fdde031461048c57600080fd5b3661041057005b600080fd5b34801561042157600080fd5b50610435610430366004612b4c565b610cb6565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561045e57600080fd5b5061046860285481565b604051908152602001610449565b34801561048257600080fd5b50610468601d5481565b34801561049857600080fd5b5060408051808201909152600c81526b4c6f7264204f6620446f676560a01b60208201525b6040516104499190612b65565b3480156104d657600080fd5b506104ea6104e5366004612bc8565b610ce0565b6040519015158152602001610449565b34801561050657600080fd5b5061050f610d48565b005b34801561051d57600080fd5b50600454610468565b34801561053257600080fd5b5061046860165481565b34801561054857600080fd5b506104ea610557366004612bf4565b610dac565b34801561056857600080fd5b50610468610e97565b34801561057d57600080fd5b5060405160128152602001610449565b34801561059957600080fd5b5061050f610ee9565b3480156105ae57600080fd5b50610468610f2f565b3480156105c357600080fd5b506104ea6105d2366004612c35565b600f6020526000908152604090205460ff1681565b3480156105f357600080fd5b5061046860155481565b34801561060957600080fd5b506025546104ea90600160a81b900460ff1681565b34801561062a57600080fd5b5061050f610f41565b34801561063f57600080fd5b5061046860205481565b34801561065557600080fd5b506104ea610664366004612c35565b610f8c565b34801561067557600080fd5b5061050f610684366004612c67565b610f9a565b34801561069557600080fd5b5061050f6106a4366004612c35565b610fef565b3480156106b557600080fd5b5061046860145481565b3480156106cb57600080fd5b5061046860275481565b3480156106e157600080fd5b506104686106f0366004612c35565b6001600160a01b031660009081526008602052604090205490565b34801561071757600080fd5b5061050f610726366004612b4c565b61103a565b34801561073757600080fd5b5061050f611056565b34801561074c57600080fd5b50601954610435906001600160a01b031681565b34801561076c57600080fd5b5061046860265481565b34801561078257600080fd5b5061050f610791366004612b4c565b61108c565b3480156107a257600080fd5b50601a54610435906001600160a01b031681565b3480156107c257600080fd5b506000546001600160a01b0316610435565b3480156107e057600080fd5b506104ea6107ef366004612c35565b60106020526000908152604090205460ff1681565b34801561081057600080fd5b5061046860055481565b34801561082657600080fd5b5061050f6110a8565b34801561083b57600080fd5b5061046860075481565b34801561085157600080fd5b506040805180820190915260058152644c444f474560d81b60208201526104bd565b34801561087f57600080fd5b5061050f611157565b34801561089457600080fd5b5061046860135481565b3480156108aa57600080fd5b5061050f6108b9366004612c35565b611199565b3480156108ca57600080fd5b5061050f6108d9366004612b4c565b611201565b3480156108ea57600080fd5b506022546104ea9060ff1681565b34801561090457600080fd5b5061046860065481565b34801561091a57600080fd5b506104ea610929366004612c35565b600e6020526000908152604090205460ff1681565b34801561094a57600080fd5b50601e54610435906001600160a01b031681565b34801561096a57600080fd5b5061050f610979366004612c9c565b611230565b34801561098a57600080fd5b50610468610999366004612c35565b600a6020526000908152604090205481565b3480156109b757600080fd5b50602554610435906001600160a01b031681565b3480156109d757600080fd5b506104ea6109e6366004612bc8565b611288565b3480156109f757600080fd5b5061050f610a06366004612b4c565b611295565b348015610a1757600080fd5b50610468601b5481565b348015610a2d57600080fd5b50610468601c5481565b348015610a4357600080fd5b50601854610435906001600160a01b031681565b348015610a6357600080fd5b50610a6c611322565b6040516104499190612d19565b348015610a8557600080fd5b5061046860175481565b348015610a9b57600080fd5b5061050f610aaa366004612d2c565b611384565b348015610abb57600080fd5b50610468610aca366004612c35565b600b6020526000908152604090205481565b348015610ae857600080fd5b5061050f610af7366004612b4c565b611436565b348015610b0857600080fd5b5061046860295481565b348015610b1e57600080fd5b50610468610b2d366004612c9c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b6457600080fd5b5061050f610b73366004612d58565b611486565b348015610b8457600080fd5b50610468610b93366004612c35565b600c6020526000908152604090205481565b348015610bb157600080fd5b5061050f610bc0366004612b4c565b6114d2565b348015610bd157600080fd5b50610468610be0366004612c35565b600d6020526000908152604090205481565b348015610bfe57600080fd5b5061050f610c0d366004612c35565b61155f565b348015610c1e57600080fd5b5061050f610c2d366004612c67565b6115f7565b348015610c3e57600080fd5b50610468601f5481565b348015610c5457600080fd5b50602454610435906001600160a01b031681565b348015610c7457600080fd5b5061050f61164c565b348015610c8957600080fd5b506104ea610c98366004612c35565b6001600160a01b031660009081526011602052604090205460ff1690565b60128181548110610cc657600080fd5b6000918252602090912001546001600160a01b0316905081565b3360008181526009602090815260408083206001600160a01b03871680855290835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b8152600401610d7290612d74565b60405180910390fd5b60026013819055600560148190556015819055610da291610d9c908261168c565b9061168c565b6016819055601755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610e7f57610e5a8260405180604001604052806016815260200175496e73756666696369656e7420416c6c6f77616e636560501b81525060096000886001600160a01b03166001600160a01b031681526020019081526020016000206000610e393390565b6001600160a01b0316815260208101919091526040016000205491906116eb565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610e8a848484611725565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ee4906001546001600160a01b0316600090815260086020526040902054610ede9060045490611bd8565b90611bd8565b905090565b6019546001600160a01b03163314610f0057600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610f2c573d6000803e3d6000fd5b50565b6000600754600654610ee49190612dbf565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b8152600401610d7290612d74565b600160138190556014819055600a6015819055610da291610d9c908061168c565b6000610d4282600019610ce0565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6019546001600160a01b0316331461105157600080fd5b600755565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610d7290612d74565b61108a6000611c1a565b565b6019546001600160a01b031633146110a357600080fd5b601d55565b6000546001600160a01b031633146110d25760405162461bcd60e51b8152600401610d7290612d74565b60225460ff16156111185760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610d72565b6022805460ff19166001179055426023819055601954601a80546001600160a01b0319166001600160a01b039092169190911790556000600555600655565b6019546001600160a01b0316331461116e57600080fd5b3060008181526008602052604081205490549091611195916001600160a01b031683611725565b5050565b6000546001600160a01b031633146111c35760405162461bcd60e51b8152600401610d7290612d74565b6023546111d290610a8c612dbf565b42106111dd57600080fd5b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b6000546001600160a01b0316331461122b5760405162461bcd60e51b8152600401610d7290612d74565b602855565b6000546001600160a01b0316331461125a5760405162461bcd60e51b8152600401610d7290612d74565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000610e90338484611725565b6000546001600160a01b031633146112bf5760405162461bcd60e51b8152600401610d7290612d74565b600a6004546112ce9190612dd2565b81101561131d5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610d72565b602655565b6060601280548060200260200160405190810160405280929190818152602001828054801561137a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161135c575b5050505050905090565b6000546001600160a01b031633146113ae5760405162461bcd60e51b8152600401610d7290612d74565b600a8311156113cf5760405162461bcd60e51b8152600401610d7290612df4565b600a8211156113f05760405162461bcd60e51b8152600401610d7290612df4565b600a8111156114115760405162461bcd60e51b8152600401610d7290612df4565b60138390556014829055601581905561142e81610d9c858561168c565b601655505050565b6000546001600160a01b031633146114605760405162461bcd60e51b8152600401610d7290612d74565b60148111156114815760405162461bcd60e51b8152600401610d7290612df4565b601755565b6000546001600160a01b031633146114b05760405162461bcd60e51b8152600401610d7290612d74565b60258054921515600160a81b0260ff60a81b1990931692909217909155602855565b6000546001600160a01b031633146114fc5760405162461bcd60e51b8152600401610d7290612d74565b603260045461150b9190612dd2565b81101561155a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610d72565b602755565b6000546001600160a01b031633146115895760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b0381166115ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d72565b610f2c81611c1a565b6000546001600160a01b031633146116215760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6019546001600160a01b0316331461166357600080fd5b6025805460ff60a81b191690556000196026819055602755600060148190556015819055601355565b6000806116998385612dbf565b905083811015610e905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d72565b6000818484111561170f5760405162461bcd60e51b8152600401610d729190612b65565b50600061171c8486612e19565b95945050505050565b6001600160a01b03831660009081526011602052604081205460ff16151560011480159061177157506001600160a01b03831660009081526011602052604090205460ff161515600114155b6117ab5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d72565b602554600160a01b900460ff16156117cf576117c8848484611c6a565b9050610e90565b6025546001600160a01b0316336001600160a01b0316141580156117fd5750602554600160a01b900460ff16155b80156118125750602554600160a81b900460ff165b801561182f57506028543060009081526008602052604090205410155b1561184d573060009081526008602052604090205461184d90611d50565b611858848484612343565b61186284846128df565b1561189d5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610d72565b6001600160a01b0384166000908152600f602052604081205460ff161580156118df57506001600160a01b0384166000908152600f602052604090205460ff16155b6118e957826118f4565b6118f485858561296a565b60225490915060ff16151560011480159061191d57506025546001600160a01b03858116911614155b801561193757506000546001600160a01b03868116911614155b801561195157506000546001600160a01b03858116911614155b156119cf576001600160a01b038416600090815260086020526040902054611979908261168c565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546119a89084611bd8565b6001600160a01b0386166000908152600860205260409020556119ca846111dd565b611b80565b60225460ff1615156001148015611a0057504260215460235460b46119f49190612dbf565b6119fe9190612dbf565b115b8015611a1a57506025546001600160a01b03858116911614155b8015611a3457506000546001600160a01b03868116911614155b8015611a4e57506000546001600160a01b03858116911614155b15611a76576001600160a01b038416600090815260086020526040902054611979908261168c565b6000546001600160a01b0386811691161480611a9f57506000546001600160a01b038581169116145b15611b14576001600160a01b038416600090815260086020526040902054611ac7908461168c565b6001600160a01b038086166000908152600860205260408082209390935590871681522054611af69084611bd8565b6001600160a01b038616600090815260086020526040902055611b80565b6001600160a01b038416600090815260086020526040902054611b37908261168c565b6001600160a01b038086166000908152600860205260408082209390935590871681522054611b669084611bd8565b6001600160a01b0386166000908152600860205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc591815260200190565b60405180910390a3506001949350505050565b6000610e9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116eb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611cbb9184906116eb565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cea908361168c565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d3e9086815260200190565b60405180910390a35060019392505050565b6025805460ff60a01b1916600160a01b1790556016546013548291600091611d8991600291611d83919082908790612a2d565b90612aaf565b90506000611d978383611bd8565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611dd157611dd1612e42565b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190612e58565b81600181518110611e6157611e61612e42565b6001600160a01b03928316602091820292909201015260245460405163791ac94760e01b815291169063791ac94790611ea7908590600090869030904290600401612e75565b600060405180830381600087803b158015611ec157600080fd5b505af1158015611ed5573d6000803e3d6000fd5b505060135447925060009150611ef990611ef0906002612aaf565b60165490611bd8565b90506000611f1682611d8360145486612a2d90919063ffffffff16565b90506000611f3383611d8360155487612a2d90919063ffffffff16565b90506000611f556002611d8386611d836013548a612a2d90919063ffffffff16565b6019546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611fac576040519150601f19603f3d011682016040523d82523d6000602084013e611fb1565b606091505b5050601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d806000811461200a576040519150601f19603f3d011682016040523d82523d6000602084013e61200f565b606091505b50506020858155601a546001600160a01b03166000908152600b9091526040812080549293508692909190612045908490612dbf565b9091555050601a80546001600160a01b039081166000908152600a602090815260409182902042905592548151921682529181018690527f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a1601e54601a546001600160a01b039081169116146121df57601a54601e80546001600160a01b0319166001600160a01b039092169190911790556000601c8190556120f3908590612dbf565b601c55601a546001600160a01b03166000908152600d60205260408120805460019290612121908490612dbf565b925050819055506001601f600082825461213b9190612dbf565b9091555050601a546001600160a01b03166000908152600e602052604081205460ff16151590036121b957601a54601280546001810182556000919091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b0319166001600160a01b039092169190911790555b601a546001600160a01b03166000908152600e60205260409020805460ff191660011790555b83601b546121ed9190612dbf565b601b55601e54601a546001600160a01b0391821691160361224b5783601c546122169190612dbf565b601c819055601a546001600160a01b03166000908152600c602052604081208054909190612245908490612dbf565b90915550505b5060009050808915612328576024805460185460405163f305d71960e01b81523060048201529283018d905260006044840181905260648401526001600160a01b0390811660848401524260a4840152169063f305d71990859060c40160606040518083038185885af11580156122c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122eb9190612eb1565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff60a01b1916905550505050505050505050565b6007546006546123539042612e19565b111561236157612361612af1565b6000546001600160a01b0384811691161480159061238d57506000546001600160a01b03838116911614155b80156123b257506001600160a01b03821660009081526010602052604090205460ff16155b80156123cc57506002546001600160a01b03838116911614155b80156123e657506001546001600160a01b03838116911614155b801561240057506025546001600160a01b03838116911614155b801561241557506001600160a01b0382163014155b156127b3576026548111156124555760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610d72565b6001600160a01b03821660009081526008602052604090205460275461247b8383612dbf565b11156124d55760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610d72565b6040805160028082526060820183526000926020830190803683375050602454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190612e58565b8160008151811061257657612576612e42565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106125aa576125aa612e42565b6001600160a01b0392831660209182029290920101526024546040516307c0329d60e21b81526000929190911690631f00ca74906125ee9087908690600401612edf565b600060405180830381865afa15801561260b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126339190810190612f00565b60008151811061264557612645612e42565b6020908102919091018101516001600160a01b0387166000908152600e90925260409091205490915060ff16151560011480156126a65750601d546001600160a01b0386166000908152600a602052604090205442916126a491612dbf565b105b80156126b3575060055481115b1561273357601a8054601e80546001600160a01b038084166001600160a01b0319928316179092559091169087169081179091556000601c5560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16127af565b6005548111156127af57601a8054601e80546001600160a01b038084166001600160a01b03199283161790925590911690871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906127df57506000546001600160a01b03838116911614155b801561280457506001600160a01b03831660009081526010602052604090205460ff16155b801561281e57506025546001600160a01b03848116911614155b801561283357506001600160a01b0382163014155b156128da576026548111156128735760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610d72565b601a546001600160a01b038085169116036128da57601a54600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a16128da612af1565b505050565b6001600160a01b0382166000908152600f602052604081205460ff168061291e57506001600160a01b0382166000908152600f602052604090205460ff165b1561292b57506000610d42565b6025546001600160a01b038481169116148061295457506025546001600160a01b038381169116145b1561296157506000610d42565b50600192915050565b60255460009081906001600160a01b0385811691161461298c57601654612990565b6017545b905060006129a36064611d838685612a2d565b306000908152600860205260409020549091506129c0908261168c565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a119085815260200190565b60405180910390a3612a238482611bd8565b9695505050505050565b600082600003612a3f57506000610d42565b6000612a4b8385612fbe565b905082612a588583612dd2565b14610e905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d72565b6000610e9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b1e565b601954601a80546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b60008183612b3f5760405162461bcd60e51b8152600401610d729190612b65565b50600061171c8486612dd2565b600060208284031215612b5e57600080fd5b5035919050565b600060208083528351808285015260005b81811015612b9257858101830151858201604001528201612b76565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f2c57600080fd5b60008060408385031215612bdb57600080fd5b8235612be681612bb3565b946020939093013593505050565b600080600060608486031215612c0957600080fd5b8335612c1481612bb3565b92506020840135612c2481612bb3565b929592945050506040919091013590565b600060208284031215612c4757600080fd5b8135610e9081612bb3565b80358015158114612c6257600080fd5b919050565b60008060408385031215612c7a57600080fd5b8235612c8581612bb3565b9150612c9360208401612c52565b90509250929050565b60008060408385031215612caf57600080fd5b8235612cba81612bb3565b91506020830135612cca81612bb3565b809150509250929050565b600081518084526020808501945080840160005b83811015612d0e5781516001600160a01b031687529582019590820190600101612ce9565b509495945050505050565b602081526000610e906020830184612cd5565b600080600060608486031215612d4157600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612d6b57600080fd5b612be683612c52565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d4257610d42612da9565b600082612def57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b81810381811115610d4257610d42612da9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215612e6a57600080fd5b8151610e9081612bb3565b85815284602082015260a060408201526000612e9460a0830186612cd5565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ec657600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612ef86040830184612cd5565b949350505050565b60006020808385031215612f1357600080fd5b825167ffffffffffffffff80821115612f2b57600080fd5b818501915085601f830112612f3f57600080fd5b815181811115612f5157612f51612e2c565b8060051b604051601f19603f83011681018181108582111715612f7657612f76612e2c565b604052918252848201925083810185019188831115612f9457600080fd5b938501935b82851015612fb257845184529385019392850192612f99565b98975050505050505050565b6000816000190483118215151615612fd857612fd8612da9565b50029056fea264697066735822122082df52a26ea3b996fa5090695a2941ef8951fa1f168bacfc1f7444798e68e82664736f6c63430008100033
Deployed Bytecode
0x6080604052600436106104095760003560e01c8063944c1d9711610213578063ca33e64c11610123578063e03b1082116100ab578063f84ba65d1161007a578063f84ba65d14610c12578063f861e34014610c32578063f887ea4014610c48578063f928364c14610c68578063fe575a8714610c7d57600080fd5b8063e03b108214610b78578063ea1644d514610ba5578063ee0ebc8b14610bc5578063f2fde38b14610bf257600080fd5b8063d285855c116100f2578063d285855c14610aaf578063da6a0bee14610adc578063dbe1c4d514610afc578063dd62ed3e14610b12578063df20fd4914610b5857600080fd5b8063ca33e64c14610a37578063ca4dcb5114610a57578063ca987b0e14610a79578063cec10c1114610a8f57600080fd5b80639f55eb4e116101a6578063a8aa1b3111610175578063a8aa1b31146109ab578063a9059cbb146109cb578063a9e59da3146109eb578063bbcaa36114610a0b578063bc74f38714610a2157600080fd5b80639f55eb4e1461090e578063a46bbbe01461093e578063a4b45c001461095e578063a4f87a7a1461097e57600080fd5b80639cfe42da116101e25780639cfe42da1461089e5780639d0014b1146108be5780639e0a7810146108de5780639f2bb2e9146108f857600080fd5b8063944c1d971461082f57806395d89b41146108455780639725cd5b1461087357806398118cb41461088857600080fd5b8063561fcd691161031957806375f0a874116102a1578063893d20e811610270578063893d20e8146107b65780638b42507f146107d45780638da5cb5b146107b65780638eb6889f146108045780638f793cb91461081a57600080fd5b806375f0a874146107405780637d1db4a51461076057806380ea3de11461077657806387b3be7d1461079657600080fd5b80636b67c4df116102e85780636b67c4df146106a95780636c0a24eb146106bf57806370a08231146106d5578063712a890a1461070b578063715018a61461072b57600080fd5b8063561fcd6914610633578063571ac8b014610649578063658d4b7f1461066957806366e930b31461068957600080fd5b806323b872dd1161039c5780633e02a9881161036b5780633e02a988146105a25780633f4218e0146105b757806346cf314f146105e75780634a74bb02146105fd5780634fef3a821461061e57600080fd5b806323b872dd1461053c5780632b112e491461055c578063313ce5671461057157806333596f501461058d57600080fd5b8063095ea7b3116103d8578063095ea7b3146104ca578063125b94e5146104fa57806318160ddd146105115780631df4ccfc1461052657600080fd5b806303683f92146104155780630445b6671461045257806304646a491461047657806306fdde031461048c57600080fd5b3661041057005b600080fd5b34801561042157600080fd5b50610435610430366004612b4c565b610cb6565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561045e57600080fd5b5061046860285481565b604051908152602001610449565b34801561048257600080fd5b50610468601d5481565b34801561049857600080fd5b5060408051808201909152600c81526b4c6f7264204f6620446f676560a01b60208201525b6040516104499190612b65565b3480156104d657600080fd5b506104ea6104e5366004612bc8565b610ce0565b6040519015158152602001610449565b34801561050657600080fd5b5061050f610d48565b005b34801561051d57600080fd5b50600454610468565b34801561053257600080fd5b5061046860165481565b34801561054857600080fd5b506104ea610557366004612bf4565b610dac565b34801561056857600080fd5b50610468610e97565b34801561057d57600080fd5b5060405160128152602001610449565b34801561059957600080fd5b5061050f610ee9565b3480156105ae57600080fd5b50610468610f2f565b3480156105c357600080fd5b506104ea6105d2366004612c35565b600f6020526000908152604090205460ff1681565b3480156105f357600080fd5b5061046860155481565b34801561060957600080fd5b506025546104ea90600160a81b900460ff1681565b34801561062a57600080fd5b5061050f610f41565b34801561063f57600080fd5b5061046860205481565b34801561065557600080fd5b506104ea610664366004612c35565b610f8c565b34801561067557600080fd5b5061050f610684366004612c67565b610f9a565b34801561069557600080fd5b5061050f6106a4366004612c35565b610fef565b3480156106b557600080fd5b5061046860145481565b3480156106cb57600080fd5b5061046860275481565b3480156106e157600080fd5b506104686106f0366004612c35565b6001600160a01b031660009081526008602052604090205490565b34801561071757600080fd5b5061050f610726366004612b4c565b61103a565b34801561073757600080fd5b5061050f611056565b34801561074c57600080fd5b50601954610435906001600160a01b031681565b34801561076c57600080fd5b5061046860265481565b34801561078257600080fd5b5061050f610791366004612b4c565b61108c565b3480156107a257600080fd5b50601a54610435906001600160a01b031681565b3480156107c257600080fd5b506000546001600160a01b0316610435565b3480156107e057600080fd5b506104ea6107ef366004612c35565b60106020526000908152604090205460ff1681565b34801561081057600080fd5b5061046860055481565b34801561082657600080fd5b5061050f6110a8565b34801561083b57600080fd5b5061046860075481565b34801561085157600080fd5b506040805180820190915260058152644c444f474560d81b60208201526104bd565b34801561087f57600080fd5b5061050f611157565b34801561089457600080fd5b5061046860135481565b3480156108aa57600080fd5b5061050f6108b9366004612c35565b611199565b3480156108ca57600080fd5b5061050f6108d9366004612b4c565b611201565b3480156108ea57600080fd5b506022546104ea9060ff1681565b34801561090457600080fd5b5061046860065481565b34801561091a57600080fd5b506104ea610929366004612c35565b600e6020526000908152604090205460ff1681565b34801561094a57600080fd5b50601e54610435906001600160a01b031681565b34801561096a57600080fd5b5061050f610979366004612c9c565b611230565b34801561098a57600080fd5b50610468610999366004612c35565b600a6020526000908152604090205481565b3480156109b757600080fd5b50602554610435906001600160a01b031681565b3480156109d757600080fd5b506104ea6109e6366004612bc8565b611288565b3480156109f757600080fd5b5061050f610a06366004612b4c565b611295565b348015610a1757600080fd5b50610468601b5481565b348015610a2d57600080fd5b50610468601c5481565b348015610a4357600080fd5b50601854610435906001600160a01b031681565b348015610a6357600080fd5b50610a6c611322565b6040516104499190612d19565b348015610a8557600080fd5b5061046860175481565b348015610a9b57600080fd5b5061050f610aaa366004612d2c565b611384565b348015610abb57600080fd5b50610468610aca366004612c35565b600b6020526000908152604090205481565b348015610ae857600080fd5b5061050f610af7366004612b4c565b611436565b348015610b0857600080fd5b5061046860295481565b348015610b1e57600080fd5b50610468610b2d366004612c9c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b6457600080fd5b5061050f610b73366004612d58565b611486565b348015610b8457600080fd5b50610468610b93366004612c35565b600c6020526000908152604090205481565b348015610bb157600080fd5b5061050f610bc0366004612b4c565b6114d2565b348015610bd157600080fd5b50610468610be0366004612c35565b600d6020526000908152604090205481565b348015610bfe57600080fd5b5061050f610c0d366004612c35565b61155f565b348015610c1e57600080fd5b5061050f610c2d366004612c67565b6115f7565b348015610c3e57600080fd5b50610468601f5481565b348015610c5457600080fd5b50602454610435906001600160a01b031681565b348015610c7457600080fd5b5061050f61164c565b348015610c8957600080fd5b506104ea610c98366004612c35565b6001600160a01b031660009081526011602052604090205460ff1690565b60128181548110610cc657600080fd5b6000918252602090912001546001600160a01b0316905081565b3360008181526009602090815260408083206001600160a01b03871680855290835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b8152600401610d7290612d74565b60405180910390fd5b60026013819055600560148190556015819055610da291610d9c908261168c565b9061168c565b6016819055601755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610e7f57610e5a8260405180604001604052806016815260200175496e73756666696369656e7420416c6c6f77616e636560501b81525060096000886001600160a01b03166001600160a01b031681526020019081526020016000206000610e393390565b6001600160a01b0316815260208101919091526040016000205491906116eb565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610e8a848484611725565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ee4906001546001600160a01b0316600090815260086020526040902054610ede9060045490611bd8565b90611bd8565b905090565b6019546001600160a01b03163314610f0057600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610f2c573d6000803e3d6000fd5b50565b6000600754600654610ee49190612dbf565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b8152600401610d7290612d74565b600160138190556014819055600a6015819055610da291610d9c908061168c565b6000610d4282600019610ce0565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6019546001600160a01b0316331461105157600080fd5b600755565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610d7290612d74565b61108a6000611c1a565b565b6019546001600160a01b031633146110a357600080fd5b601d55565b6000546001600160a01b031633146110d25760405162461bcd60e51b8152600401610d7290612d74565b60225460ff16156111185760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610d72565b6022805460ff19166001179055426023819055601954601a80546001600160a01b0319166001600160a01b039092169190911790556000600555600655565b6019546001600160a01b0316331461116e57600080fd5b3060008181526008602052604081205490549091611195916001600160a01b031683611725565b5050565b6000546001600160a01b031633146111c35760405162461bcd60e51b8152600401610d7290612d74565b6023546111d290610a8c612dbf565b42106111dd57600080fd5b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b6000546001600160a01b0316331461122b5760405162461bcd60e51b8152600401610d7290612d74565b602855565b6000546001600160a01b0316331461125a5760405162461bcd60e51b8152600401610d7290612d74565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000610e90338484611725565b6000546001600160a01b031633146112bf5760405162461bcd60e51b8152600401610d7290612d74565b600a6004546112ce9190612dd2565b81101561131d5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610d72565b602655565b6060601280548060200260200160405190810160405280929190818152602001828054801561137a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161135c575b5050505050905090565b6000546001600160a01b031633146113ae5760405162461bcd60e51b8152600401610d7290612d74565b600a8311156113cf5760405162461bcd60e51b8152600401610d7290612df4565b600a8211156113f05760405162461bcd60e51b8152600401610d7290612df4565b600a8111156114115760405162461bcd60e51b8152600401610d7290612df4565b60138390556014829055601581905561142e81610d9c858561168c565b601655505050565b6000546001600160a01b031633146114605760405162461bcd60e51b8152600401610d7290612d74565b60148111156114815760405162461bcd60e51b8152600401610d7290612df4565b601755565b6000546001600160a01b031633146114b05760405162461bcd60e51b8152600401610d7290612d74565b60258054921515600160a81b0260ff60a81b1990931692909217909155602855565b6000546001600160a01b031633146114fc5760405162461bcd60e51b8152600401610d7290612d74565b603260045461150b9190612dd2565b81101561155a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610d72565b602755565b6000546001600160a01b031633146115895760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b0381166115ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d72565b610f2c81611c1a565b6000546001600160a01b031633146116215760405162461bcd60e51b8152600401610d7290612d74565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6019546001600160a01b0316331461166357600080fd5b6025805460ff60a81b191690556000196026819055602755600060148190556015819055601355565b6000806116998385612dbf565b905083811015610e905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d72565b6000818484111561170f5760405162461bcd60e51b8152600401610d729190612b65565b50600061171c8486612e19565b95945050505050565b6001600160a01b03831660009081526011602052604081205460ff16151560011480159061177157506001600160a01b03831660009081526011602052604090205460ff161515600114155b6117ab5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d72565b602554600160a01b900460ff16156117cf576117c8848484611c6a565b9050610e90565b6025546001600160a01b0316336001600160a01b0316141580156117fd5750602554600160a01b900460ff16155b80156118125750602554600160a81b900460ff165b801561182f57506028543060009081526008602052604090205410155b1561184d573060009081526008602052604090205461184d90611d50565b611858848484612343565b61186284846128df565b1561189d5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610d72565b6001600160a01b0384166000908152600f602052604081205460ff161580156118df57506001600160a01b0384166000908152600f602052604090205460ff16155b6118e957826118f4565b6118f485858561296a565b60225490915060ff16151560011480159061191d57506025546001600160a01b03858116911614155b801561193757506000546001600160a01b03868116911614155b801561195157506000546001600160a01b03858116911614155b156119cf576001600160a01b038416600090815260086020526040902054611979908261168c565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546119a89084611bd8565b6001600160a01b0386166000908152600860205260409020556119ca846111dd565b611b80565b60225460ff1615156001148015611a0057504260215460235460b46119f49190612dbf565b6119fe9190612dbf565b115b8015611a1a57506025546001600160a01b03858116911614155b8015611a3457506000546001600160a01b03868116911614155b8015611a4e57506000546001600160a01b03858116911614155b15611a76576001600160a01b038416600090815260086020526040902054611979908261168c565b6000546001600160a01b0386811691161480611a9f57506000546001600160a01b038581169116145b15611b14576001600160a01b038416600090815260086020526040902054611ac7908461168c565b6001600160a01b038086166000908152600860205260408082209390935590871681522054611af69084611bd8565b6001600160a01b038616600090815260086020526040902055611b80565b6001600160a01b038416600090815260086020526040902054611b37908261168c565b6001600160a01b038086166000908152600860205260408082209390935590871681522054611b669084611bd8565b6001600160a01b0386166000908152600860205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc591815260200190565b60405180910390a3506001949350505050565b6000610e9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116eb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611cbb9184906116eb565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cea908361168c565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d3e9086815260200190565b60405180910390a35060019392505050565b6025805460ff60a01b1916600160a01b1790556016546013548291600091611d8991600291611d83919082908790612a2d565b90612aaf565b90506000611d978383611bd8565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611dd157611dd1612e42565b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190612e58565b81600181518110611e6157611e61612e42565b6001600160a01b03928316602091820292909201015260245460405163791ac94760e01b815291169063791ac94790611ea7908590600090869030904290600401612e75565b600060405180830381600087803b158015611ec157600080fd5b505af1158015611ed5573d6000803e3d6000fd5b505060135447925060009150611ef990611ef0906002612aaf565b60165490611bd8565b90506000611f1682611d8360145486612a2d90919063ffffffff16565b90506000611f3383611d8360155487612a2d90919063ffffffff16565b90506000611f556002611d8386611d836013548a612a2d90919063ffffffff16565b6019546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611fac576040519150601f19603f3d011682016040523d82523d6000602084013e611fb1565b606091505b5050601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d806000811461200a576040519150601f19603f3d011682016040523d82523d6000602084013e61200f565b606091505b50506020858155601a546001600160a01b03166000908152600b9091526040812080549293508692909190612045908490612dbf565b9091555050601a80546001600160a01b039081166000908152600a602090815260409182902042905592548151921682529181018690527f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a1601e54601a546001600160a01b039081169116146121df57601a54601e80546001600160a01b0319166001600160a01b039092169190911790556000601c8190556120f3908590612dbf565b601c55601a546001600160a01b03166000908152600d60205260408120805460019290612121908490612dbf565b925050819055506001601f600082825461213b9190612dbf565b9091555050601a546001600160a01b03166000908152600e602052604081205460ff16151590036121b957601a54601280546001810182556000919091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b0319166001600160a01b039092169190911790555b601a546001600160a01b03166000908152600e60205260409020805460ff191660011790555b83601b546121ed9190612dbf565b601b55601e54601a546001600160a01b0391821691160361224b5783601c546122169190612dbf565b601c819055601a546001600160a01b03166000908152600c602052604081208054909190612245908490612dbf565b90915550505b5060009050808915612328576024805460185460405163f305d71960e01b81523060048201529283018d905260006044840181905260648401526001600160a01b0390811660848401524260a4840152169063f305d71990859060c40160606040518083038185885af11580156122c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122eb9190612eb1565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff60a01b1916905550505050505050505050565b6007546006546123539042612e19565b111561236157612361612af1565b6000546001600160a01b0384811691161480159061238d57506000546001600160a01b03838116911614155b80156123b257506001600160a01b03821660009081526010602052604090205460ff16155b80156123cc57506002546001600160a01b03838116911614155b80156123e657506001546001600160a01b03838116911614155b801561240057506025546001600160a01b03838116911614155b801561241557506001600160a01b0382163014155b156127b3576026548111156124555760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610d72565b6001600160a01b03821660009081526008602052604090205460275461247b8383612dbf565b11156124d55760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610d72565b6040805160028082526060820183526000926020830190803683375050602454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190612e58565b8160008151811061257657612576612e42565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106125aa576125aa612e42565b6001600160a01b0392831660209182029290920101526024546040516307c0329d60e21b81526000929190911690631f00ca74906125ee9087908690600401612edf565b600060405180830381865afa15801561260b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126339190810190612f00565b60008151811061264557612645612e42565b6020908102919091018101516001600160a01b0387166000908152600e90925260409091205490915060ff16151560011480156126a65750601d546001600160a01b0386166000908152600a602052604090205442916126a491612dbf565b105b80156126b3575060055481115b1561273357601a8054601e80546001600160a01b038084166001600160a01b0319928316179092559091169087169081179091556000601c5560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16127af565b6005548111156127af57601a8054601e80546001600160a01b038084166001600160a01b03199283161790925590911690871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906127df57506000546001600160a01b03838116911614155b801561280457506001600160a01b03831660009081526010602052604090205460ff16155b801561281e57506025546001600160a01b03848116911614155b801561283357506001600160a01b0382163014155b156128da576026548111156128735760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610d72565b601a546001600160a01b038085169116036128da57601a54600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a16128da612af1565b505050565b6001600160a01b0382166000908152600f602052604081205460ff168061291e57506001600160a01b0382166000908152600f602052604090205460ff165b1561292b57506000610d42565b6025546001600160a01b038481169116148061295457506025546001600160a01b038381169116145b1561296157506000610d42565b50600192915050565b60255460009081906001600160a01b0385811691161461298c57601654612990565b6017545b905060006129a36064611d838685612a2d565b306000908152600860205260409020549091506129c0908261168c565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612a119085815260200190565b60405180910390a3612a238482611bd8565b9695505050505050565b600082600003612a3f57506000610d42565b6000612a4b8385612fbe565b905082612a588583612dd2565b14610e905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d72565b6000610e9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b1e565b601954601a80546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b60008183612b3f5760405162461bcd60e51b8152600401610d729190612b65565b50600061171c8486612dd2565b600060208284031215612b5e57600080fd5b5035919050565b600060208083528351808285015260005b81811015612b9257858101830151858201604001528201612b76565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f2c57600080fd5b60008060408385031215612bdb57600080fd5b8235612be681612bb3565b946020939093013593505050565b600080600060608486031215612c0957600080fd5b8335612c1481612bb3565b92506020840135612c2481612bb3565b929592945050506040919091013590565b600060208284031215612c4757600080fd5b8135610e9081612bb3565b80358015158114612c6257600080fd5b919050565b60008060408385031215612c7a57600080fd5b8235612c8581612bb3565b9150612c9360208401612c52565b90509250929050565b60008060408385031215612caf57600080fd5b8235612cba81612bb3565b91506020830135612cca81612bb3565b809150509250929050565b600081518084526020808501945080840160005b83811015612d0e5781516001600160a01b031687529582019590820190600101612ce9565b509495945050505050565b602081526000610e906020830184612cd5565b600080600060608486031215612d4157600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612d6b57600080fd5b612be683612c52565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d4257610d42612da9565b600082612def57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b81810381811115610d4257610d42612da9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215612e6a57600080fd5b8151610e9081612bb3565b85815284602082015260a060408201526000612e9460a0830186612cd5565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ec657600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612ef86040830184612cd5565b949350505050565b60006020808385031215612f1357600080fd5b825167ffffffffffffffff80821115612f2b57600080fd5b818501915085601f830112612f3f57600080fd5b815181811115612f5157612f51612e2c565b8060051b604051601f19603f83011681018181108582111715612f7657612f76612e2c565b604052918252848201925083810185019188831115612f9457600080fd5b938501935b82851015612fb257845184529385019392850192612f99565b98975050505050505050565b6000816000190483118215151615612fd857612fd8612da9565b50029056fea264697066735822122082df52a26ea3b996fa5090695a2941ef8951fa1f168bacfc1f7444798e68e82664736f6c63430008100033
Deployed Bytecode Sourcemap
11306:19414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12519:26;;;;;;;;;;-1:-1:-1;12519:26:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;12519:26:0;;;;;;;;13503:49;;;;;;;;;;;;;;;;;;;553:25:1;;;541:2;526:18;13503:49:0;407:177:1;12992:37:0;;;;;;;;;;;;;;;;14853:94;;;;;;;;;;-1:-1:-1;14934:5:0;;;;;;;;;;;;-1:-1:-1;;;14934:5:0;;;;14853:94;;;;;;;:::i;16529:252::-;;;;;;;;;;-1:-1:-1;16529:252:0;;;;;:::i;:::-;;:::i;:::-;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;16529:252:0;1598:187:1;18067:239:0;;;;;;;;;;;;;:::i;:::-;;15265:102;;;;;;;;;;-1:-1:-1;15347:12:0;;15265:102;;12716:28;;;;;;;;;;;;;;;;22542:429;;;;;;;;;;-1:-1:-1;22542:429:0;;;;;:::i;:::-;;:::i;15375:142::-;;;;;;;;;;;;;:::i;15061:94::-;;;;;;;;;;-1:-1:-1;15061:94:0;;11499:2;2393:36:1;;2381:2;2366:18;15061:94:0;2251:184:1;29708:157:0;;;;;;;;;;;;;:::i;17703:108::-;;;;;;;;;;;;;:::i;12357:43::-;;;;;;;;;;-1:-1:-1;12357:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12681:26;;;;;;;;;;;;;;;;13349:40;;;;;;;;;;-1:-1:-1;13349:40:0;;;;-1:-1:-1;;;13349:40:0;;;;;;17819:240;;;;;;;;;;;;;:::i;13112:27::-;;;;;;;;;;;;;;;;16789:108;;;;;;;;;;-1:-1:-1;16789:108:0;;;;;:::i;:::-;;:::i;16905:119::-;;;;;;;;;;-1:-1:-1;16905:119:0;;;;;:::i;:::-;;:::i;19148:106::-;;;;;;;;;;-1:-1:-1;19148:106:0;;;;;:::i;:::-;;:::i;12643:31::-;;;;;;;;;;;;;;;;13445:51;;;;;;;;;;;;;;;;15525:119;;;;;;;;;;-1:-1:-1;15525:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15618:18:0;15591:7;15618:18;;;:9;:18;;;;;;;15525:119;30089:174;;;;;;;;;;-1:-1:-1;30089:174:0;;;;;:::i;:::-;;:::i;10559:94::-;;;;;;;;;;;;;:::i;12837:30::-;;;;;;;;;;-1:-1:-1;12837:30:0;;;;-1:-1:-1;;;;;12837:30:0;;;13396:42;;;;;;;;;;;;;;;;30271:176;;;;;;;;;;-1:-1:-1;30271:176:0;;;;;:::i;:::-;;:::i;12874:19::-;;;;;;;;;;-1:-1:-1;12874:19:0;;;;-1:-1:-1;;;;;12874:19:0;;;15163:94;;;;;;;;;;-1:-1:-1;15215:7:0;9981:6;-1:-1:-1;;;;;9981:6:0;15163:94;15375:142;12407:47;;;;;;;;;;-1:-1:-1;12407:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11843:29;;;;;;;;;;;;;;;;18314:273;;;;;;;;;;;;;:::i;11919:39::-;;;;;;;;;;;;;;;;14955:98;;;;;;;;;;-1:-1:-1;15038:7:0;;;;;;;;;;;;-1:-1:-1;;;15038:7:0;;;;14955:98;;29873:208;;;;;;;;;;;;;:::i;12605:31::-;;;;;;;;;;;;;;;;18975:165;;;;;;;;;;-1:-1:-1;18975:165:0;;;;;:::i;:::-;;:::i;17190:108::-;;;;;;;;;;-1:-1:-1;17190:108:0;;;;;:::i;:::-;;:::i;13180:31::-;;;;;;;;;;-1:-1:-1;13180:31:0;;;;;;;;11879:33;;;;;;;;;;;;;;;;12300:50;;;;;;;;;;-1:-1:-1;12300:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13036:28;;;;;;;;;;-1:-1:-1;13036:28:0;;;;-1:-1:-1;;;;;13036:28:0;;;17306:237;;;;;;;;;;-1:-1:-1;17306:237:0;;;;;:::i;:::-;;:::i;12075:49::-;;;;;;;;;;-1:-1:-1;12075:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;13293:19;;;;;;;;;;-1:-1:-1;13293:19:0;;;;-1:-1:-1;;;;;13293:19:0;;;22344:190;;;;;;;;;;-1:-1:-1;22344:190:0;;;;;:::i;:::-;;:::i;18785:182::-;;;;;;;;;;-1:-1:-1;18785:182:0;;;;;:::i;:::-;;:::i;12904:39::-;;;;;;;;;;;;;;;;12950:35;;;;;;;;;;;;;;;;12794:36;;;;;;;;;;-1:-1:-1;12794:36:0;;;;-1:-1:-1;;;;;12794:36:0;;;29602:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12751:36::-;;;;;;;;;;;;;;;;15652:673;;;;;;;;;;-1:-1:-1;15652:673:0;;;;;:::i;:::-;;:::i;12131:47::-;;;;;;;;;;-1:-1:-1;12131:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;22085:251;;;;;;;;;;-1:-1:-1;22085:251:0;;;;;:::i;:::-;;:::i;13559:29::-;;;;;;;;;;;;;;;;16333:188;;;;;;;;;;-1:-1:-1;16333:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;16485:19:0;;;16453:7;16485:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16333:188;21859:218;;;;;;;;;;-1:-1:-1;21859:218:0;;;;;:::i;:::-;;:::i;12185:49::-;;;;;;;;;;-1:-1:-1;12185:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;18595:182;;;;;;;;;;-1:-1:-1;18595:182:0;;;;;:::i;:::-;;:::i;12241:50::-;;;;;;;;;;-1:-1:-1;12241:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;10808:192;;;;;;;;;;-1:-1:-1;10808:192:0;;;;;:::i;:::-;;:::i;17032:150::-;;;;;;;;;;-1:-1:-1;17032:150:0;;;;;:::i;:::-;;:::i;13073:30::-;;;;;;;;;;;;;;;;13254:32;;;;;;;;;;-1:-1:-1;13254:32:0;;;;-1:-1:-1;;;;;13254:32:0;;;30455:253;;;;;;;;;;;;;:::i;19262:120::-;;;;;;;;;;-1:-1:-1;19262:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;19349:25:0;19325:4;19349:25;;;:16;:25;;;;;;;;;19262:120;12519:26;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12519:26:0;;-1:-1:-1;12519:26:0;:::o;16529:252::-;8864:10;16631:4;16653:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16653:34:0;;;;;;;;;;;:43;;;16712:39;;553:25:1;;;16631:4:0;;16653:34;;8864:10;;16712:39;;526:18:1;16712:39:0;;;;;;;-1:-1:-1;16769:4:0;16529:252;;;;;:::o;18067:239::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;;;;;;;;;18144:1:::1;18129:12;:16:::0;;;18171:1:::1;18156:12;:16:::0;;;18183:7:::1;:11:::0;;;18216:43:::1;::::0;:30:::1;::::0;18171:1;18216:16:::1;:30::i;:::-;:34:::0;::::1;:43::i;:::-;18205:8;:54:::0;;;18270:17:::1;:28:::0;18067:239::o;22542:429::-;-1:-1:-1;;;;;22697:19:0;;22676:4;22697:19;;;:11;:19;;;;;;;;8864:10;22697:33;;;;;;;;-1:-1:-1;;22697:40:0;22693:198;;22790:89;22846:6;22790:89;;;;;;;;;;;;;-1:-1:-1;;;22790:89:0;;;:11;:19;22802:6;-1:-1:-1;;;;;22790:19:0;-1:-1:-1;;;;;22790:19:0;;;;;;;;;;;;:33;22810:12;8864:10;;8784:98;22810:12;-1:-1:-1;;;;;22790:33:0;;;;;;;;;;;;-1:-1:-1;22790:33:0;;;:89;:55;:89::i;:::-;-1:-1:-1;;;;;22754:19:0;;;;;;:11;:19;;;;;;;;8864:10;22754:33;;;;;;;:125;22693:198;22901:40;22915:6;22923:9;22934:6;22901:13;:40::i;:::-;;22959:4;22952:11;;22542:429;;;;;;:::o;15375:142::-;15503:4;;-1:-1:-1;;;;;15503:4:0;15428:7;15618:18;;;:9;:18;;;;;;15455:54;;15482:4;;-1:-1:-1;;;;;15482:4:0;15591:7;15618:18;;;:9;:18;;;;;;15455:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;15448:61;;15375:142;:::o;29708:157::-;29777:15;;-1:-1:-1;;;;;29777:15:0;29765:10;:27;29757:36;;;;;;29804:53;;8864:10;;29835:21;29804:53;;;;;;;;;29835:21;8864:10;29804:53;;;;;;;;;;;;;;;;;;;;;29708:157::o;17703:108::-;17748:7;17792:11;;17775:14;;:28;;;;:::i;17819:240::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;17896:1:::1;17881:12;:16:::0;;;17908:12:::1;:16:::0;;;17945:2:::1;17935:7;:12:::0;;;17969:43:::1;::::0;:30:::1;::::0;17896:1;17969:16:::1;:30::i;16789:108::-:0;16844:4;16868:21;16876:7;-1:-1:-1;;16868:7:0;:21::i;16905:119::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16988:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16988:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16905:119::o;19148:106::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19218:22:0::1;19241:5;19218:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;19218:28:0::1;::::0;;19148:106::o;30089:174::-;30200:15;;-1:-1:-1;;;;;30200:15:0;30188:10;:27;30180:36;;;;;;30227:11;:28;30089:174::o;10559:94::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;10624:21:::1;10642:1;10624:9;:21::i;:::-;10559:94::o:0;30271:176::-;30367:15;;-1:-1:-1;;;;;30367:15:0;30355:10;:27;30347:36;;;;;;30394:14;:35;30271:176::o;18314:273::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;18368:11:::1;::::0;::::1;;:20;18359:50;;;::::0;-1:-1:-1;;;18359:50:0;;5935:2:1;18359:50:0::1;::::0;::::1;5917:21:1::0;5974:2;5954:18;;;5947:30;-1:-1:-1;;;5993:18:1;;;5986:46;6049:18;;18359:50:0::1;5733:340:1::0;18359:50:0::1;18420:11;:18:::0;;-1:-1:-1;;18420:18:0::1;18434:4;18420:18;::::0;;18463:15:::1;18449:11;:29:::0;;;18496:15:::1;::::0;18489:4:::1;:22:::0;;-1:-1:-1;;;;;;18489:22:0::1;-1:-1:-1::0;;;;;18496:15:0;;::::1;18489:22:::0;;;::::1;::::0;;18420:11:::1;18522:10;:14:::0;18547::::1;:32:::0;18314:273::o;29873:208::-;29937:15;;-1:-1:-1;;;;;29937:15:0;29925:10;:27;29917:36;;;;;;30004:4;29964:19;15618:18;;;:9;:18;;;;;;9981:6;;15618:18;;30021:52;;-1:-1:-1;;;;;9981:6:0;30060:11;30021:13;:52::i;:::-;;29906:175;29873:208::o;18975:165::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;19067:11:::1;::::0;:24:::1;::::0;19081:10:::1;19067:24;:::i;:::-;19049:15;:42;19041:51;;;::::0;::::1;;-1:-1:-1::0;;;;;19103:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;19103:27:0::1;19126:4;19103:27;::::0;;18975:165::o;17190:108::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;17265:13:::1;:25:::0;17190:108::o;17306:237::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;17444:21:::1;:44:::0;;-1:-1:-1;;;;;17444:44:0;;::::1;-1:-1:-1::0;;;;;;17444:44:0;;::::1;;::::0;;;17499:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;17306:237::o;22344:190::-;22451:4;22480:46;8864:10;22508:9;22519:6;22480:13;:46::i;18785:182::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;18892:2:::1;18878:12;;:16;;;;:::i;:::-;18870:6;:24;;18862:63;;;::::0;-1:-1:-1;;;18862:63:0;;6502:2:1;18862:63:0::1;::::0;::::1;6484:21:1::0;6541:2;6521:18;;;6514:30;6580:28;6560:18;;;6553:56;6626:18;;18862:63:0::1;6300:350:1::0;18862:63:0::1;18936:12;:21:::0;18785:182::o;29602:98::-;29647:16;29683:9;29676:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29676:16:0;;;;;;;;;;;;;;;;;;;;;;;29602:98;:::o;15652:673::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;15868:2:::1;15849:15;:21;;15803:106;;;;-1:-1:-1::0;;;15803:106:0::1;;;;;;;:::i;:::-;15987:2;15968:15;:21;;15922:106;;;;-1:-1:-1::0;;;15922:106:0::1;;;;;;;:::i;:::-;16096:2;16082:10;:16;;16041:96;;;;-1:-1:-1::0;;;16041:96:0::1;;;;;;;:::i;:::-;16150:12;:30:::0;;;16191:12:::1;:30:::0;;;16232:7:::1;:20:::0;;;16274:43:::1;16242:10:::0;16274:30:::1;16165:15:::0;16206;16274:16:::1;:30::i;:43::-;16263:8;:54:::0;-1:-1:-1;;;15652:673:0:o;22085:251::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;22244:2:::1;22230:10;:16;;22189:96;;;;-1:-1:-1::0;;;22189:96:0::1;;;;;;;:::i;:::-;22298:17;:30:::0;22085:251::o;21859:218::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;21988:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;21988:38:0::1;-1:-1:-1::0;;;;21988:38:0;;::::1;::::0;;;::::1;::::0;;;22037:13:::1;:32:::0;21859:218::o;18595:182::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;18698:2:::1;18683:12;;:17;;;;:::i;:::-;18675:6;:25;;18667:64;;;::::0;-1:-1:-1;;;18667:64:0;;6502:2:1;18667:64:0::1;::::0;::::1;6484:21:1::0;6541:2;6521:18;;;6514:30;6580:28;6560:18;;;6553:56;6626:18;;18667:64:0::1;6300:350:1::0;18667:64:0::1;18742:16;:25:::0;18595:182::o;10808:192::-;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10897:22:0;::::1;10889:73;;;::::0;-1:-1:-1;;;10889:73:0;;7197:2:1;10889:73:0::1;::::0;::::1;7179:21:1::0;7236:2;7216:18;;;7209:30;7275:34;7255:18;;;7248:62;-1:-1:-1;;;7326:18:1;;;7319:36;7372:19;;10889:73:0::1;6995:402:1::0;10889:73:0::1;10973:19;10983:8;10973:9;:19::i;17032:150::-:0;9954:7;9981:6;-1:-1:-1;;;;;9981:6:0;8864:10;10128:23;10120:68;;;;-1:-1:-1;;;10120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17142:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17142:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17032:150::o;30455:253::-;30518:15;;-1:-1:-1;;;;;30518:15:0;30506:10;:27;30498:36;;;;;;30545:21;:27;;-1:-1:-1;;;;30545:27:0;;;-1:-1:-1;;30583:12:0;:16;;;30610;:20;30567:5;30641:12;:14;;;30545:21;30666:9;;;-1:-1:-1;30686:14:0;30455:253::o;94:179::-;152:7;;184:5;188:1;184;:5;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;-1:-1:-1;;;200:46:0;;7604:2:1;200:46:0;;;7586:21:1;7643:2;7623:18;;;7616:30;7682:29;7662:18;;;7655:57;7729:18;;200:46:0;7402:351:1;425:224:0;545:7;581:12;573:6;;;;565:29;;;;-1:-1:-1;;;565:29:0;;;;;;;;:::i;:::-;-1:-1:-1;605:9:0;617:5;621:1;617;:5;:::i;:::-;605:17;425:224;-1:-1:-1;;;;;425:224:0:o;22979:2083::-;-1:-1:-1;;;;;23130:24:0;;23105:4;23130:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;23164:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;23130:67;23122:91;;;;-1:-1:-1;;;23122:91:0;;8093:2:1;23122:91:0;;;8075:21:1;8132:2;8112:18;;;8105:30;-1:-1:-1;;;8151:18:1;;;8144:41;8202:18;;23122:91:0;7891:335:1;23122:91:0;23228:16;;-1:-1:-1;;;23228:16:0;;;;23224:97;;;23268:41;23283:6;23291:9;23302:6;23268:14;:41::i;:::-;23261:48;;;;23224:97;23365:4;;-1:-1:-1;;;;;23365:4:0;8864:10;-1:-1:-1;;;;;23349:20:0;;;:54;;;;-1:-1:-1;23387:16:0;;-1:-1:-1;;;23387:16:0;;;;23386:17;23349:54;:92;;;;-1:-1:-1;23420:21:0;;-1:-1:-1;;;23420:21:0;;;;23349:92;:150;;;;-1:-1:-1;23486:13:0;;23476:4;23458:25;;;;:9;:25;;;;;;:41;;23349:150;23331:241;;;23553:4;23535:24;;;;:9;:24;;;;;;23526:34;;:8;:34::i;:::-;23582:40;23596:6;23604:9;23615:6;23582:13;:40::i;:::-;23642:35;23659:6;23667:9;23642:16;:35::i;:::-;23641:36;23633:60;;;;-1:-1:-1;;;23633:60:0;;8433:2:1;23633:60:0;;;8415:21:1;8472:2;8452:18;;;8445:30;-1:-1:-1;;;8491:18:1;;;8484:41;8542:18;;23633:60:0;8231:335:1;23633:60:0;-1:-1:-1;;;;;23732:19:0;;23706:22;23732:19;;;:11;:19;;;;;;;;23731:20;:47;;;;-1:-1:-1;;;;;;23756:22:0;;;;;;:11;:22;;;;;;;;23755:23;23731:47;:119;;23844:6;23731:119;;;23794:34;23802:6;23810:9;23821:6;23794:7;:34::i;:::-;23867:11;;23706:144;;-1:-1:-1;23867:11:0;;:18;;:11;:18;;;;:38;;-1:-1:-1;23901:4:0;;-1:-1:-1;;;;;23889:16:0;;;23901:4;;23889:16;;23867:38;:57;;;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;23909:15:0;;;9981:6;;23909:15;;23867:57;:79;;;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;23928:18:0;;;9981:6;;23928:18;;23867:79;23863:1111;;;-1:-1:-1;;;;;23996:20:0;;;;;;:9;:20;;;;;;:40;;24021:14;23996:24;:40::i;:::-;-1:-1:-1;;;;;23973:20:0;;;;;;;:9;:20;;;;;;:63;;;;24071:17;;;;;;;:29;;24093:6;24071:21;:29::i;:::-;-1:-1:-1;;;;;24051:17:0;;;;;;:9;:17;;;;;:49;24138:24;24152:9;24138:13;:24::i;:::-;23863:1111;;;24195:11;;;;:17;;:11;:17;:72;;;;;24252:15;24242:7;;24216:11;;24230:9;24216:23;;;;:::i;:::-;:33;;;;:::i;:::-;:51;24195:72;:92;;;;-1:-1:-1;24283:4:0;;-1:-1:-1;;;;;24271:16:0;;;24283:4;;24271:16;;24195:92;:111;;;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;24291:15:0;;;9981:6;;24291:15;;24195:111;:133;;;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;24310:18:0;;;9981:6;;24310:18;;24195:133;24191:783;;;-1:-1:-1;;;;;24378:20:0;;;;;;:9;:20;;;;;;:40;;24403:14;24378:24;:40::i;24191:783::-;9954:7;9981:6;-1:-1:-1;;;;;24575:15:0;;;9981:6;;24575:15;;:37;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;24594:18:0;;;9981:6;;24594:18;24575:37;24571:403;;;-1:-1:-1;;;;;24662:20:0;;;;;;:9;:20;;;;;;:32;;24687:6;24662:24;:32::i;:::-;-1:-1:-1;;;;;24639:20:0;;;;;;;:9;:20;;;;;;:55;;;;24729:17;;;;;;;:29;;24751:6;24729:21;:29::i;:::-;-1:-1:-1;;;;;24709:17:0;;;;;;:9;:17;;;;;:49;24571:403;;;-1:-1:-1;;;;;24857:20:0;;;;;;:9;:20;;;;;;:40;;24882:14;24857:24;:40::i;:::-;-1:-1:-1;;;;;24834:20:0;;;;;;;:9;:20;;;;;;:63;;;;24933:17;;;;;;;:29;;24955:6;24933:21;:29::i;:::-;-1:-1:-1;;;;;24913:17:0;;;;;;:9;:17;;;;;:49;24571:403;25006:9;-1:-1:-1;;;;;24989:43:0;24998:6;-1:-1:-1;;;;;24989:43:0;;25017:14;24989:43;;;;553:25:1;;541:2;526:18;;407:177;24989:43:0;;;;;;;;-1:-1:-1;25050:4:0;;22979:2083;-1:-1:-1;;;;22979:2083:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;11008:173::-;11064:16;11083:6;;-1:-1:-1;;;;;11100:17:0;;;-1:-1:-1;;;;;;11100:17:0;;;;;;11133:40;;11083:6;;;;;;;11133:40;;11064:16;11133:40;11053:128;11008:173;:::o;25070:401::-;25234:90;;;;;;;;;;;-1:-1:-1;;;25234:90:0;;;;;;;;-1:-1:-1;;;;;25234:17:0;;25197:4;25234:17;;;:9;:17;;;;;;;:90;;25270:6;;25234:21;:90::i;:::-;-1:-1:-1;;;;;25214:17:0;;;;;;;:9;:17;;;;;;:110;;;;25358:20;;;;;;;:32;;25383:6;25358:24;:32::i;:::-;-1:-1:-1;;;;;25335:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25406:35;;;;;;;;;;25434:6;553:25:1;;541:2;526:18;;407:177;25406:35:0;;;;;;;;-1:-1:-1;25459:4:0;25070:401;;;;;:::o;26322:2777::-;13631:16;:23;;-1:-1:-1;;;;13631:23:0;-1:-1:-1;;;13631:23:0;;;26588:8:::1;::::0;26556:12:::1;::::0;26478:7;;13631:23;;26522:96:::1;::::0;26616:1:::1;::::0;26522:75:::1;::::0;26588:8;26522:75;;26478:7;;26522:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;26496:122:::0;-1:-1:-1;26629:20:0::1;26652:36;:15:::0;26496:122;26652:19:::1;:36::i;:::-;26725:16;::::0;;26739:1:::1;26725:16:::0;;;;;::::1;::::0;;26629:59;;-1:-1:-1;26701:21:0::1;::::0;26725:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26725:16:0::1;26701:40;;26770:4;26752;26757:1;26752:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26752:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;26796:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;26796:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;26752:7;;26796:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26786:4;26791:1;26786:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26786:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;26822:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;26822:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;26894:12;;26822:6:::1;::::0;26937:4;;26964::::1;::::0;26984:15:::1;::::0;26822:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;27110:12:0::1;::::0;27043:21:::1;::::0;-1:-1:-1;27023:17:0::1;::::0;-1:-1:-1;27097:33:0::1;::::0;27110:19:::1;::::0;27127:1:::1;27110:16;:19::i;:::-;27097:8;::::0;;:12:::1;:33::i;:::-;27075:55;;27141:26;27170:68;27216:11;27170:27;27184:12;;27170:9;:13;;:27;;;;:::i;:68::-;27141:97;;27249:21;27273:39;27300:11;27273:22;27287:7;;27273:9;:13;;:22;;;;:::i;:39::-;27249:63;;27323:26;27352:93;27443:1;27352:72;27412:11;27352:41;27380:12;;27352:9;:27;;:41;;;;:::i;:93::-;27488:15;::::0;27480:109:::1;::::0;27323:122;;-1:-1:-1;27459:15:0::1;::::0;-1:-1:-1;;;;;27488:15:0;;::::1;::::0;27569:5:::1;::::0;27531:18;;27459:15;27480:109;27459:15;27480:109;27531:18;27488:15;27569:5;27480:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;27631:4:0::1;::::0;27623:93:::1;::::0;27458:131;;-1:-1:-1;27601:16:0::1;::::0;-1:-1:-1;;;;;27631:4:0;;::::1;::::0;27696:5:::1;::::0;27663:13;;27601:16;27623:93;27601:16;27623:93;27663:13;27631:4;27696:5;27623:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;27729:12:0::1;:26:::0;;;27779:4:::1;::::0;-1:-1:-1;;;;;27779:4:0::1;27766:18;::::0;;;:12:::1;:18:::0;;;;;;:33;;27600:116;;-1:-1:-1;27742:13:0;;27766:18;;;:33:::1;::::0;27742:13;;27766:33:::1;:::i;:::-;::::0;;;-1:-1:-1;;27825:4:0::1;::::0;;-1:-1:-1;;;;;27825:4:0;;::::1;27810:20;::::0;;;:14:::1;:20;::::0;;;;;;;;27833:15:::1;27810:38:::0;;27875:4;;27864:31;;27875:4;::::1;10062:51:1::0;;10129:18;;;10122:34;;;27864:31:0::1;::::0;10035:18:1;27864:31:0::1;;;;;;;27918:13;::::0;27912:4:::1;::::0;-1:-1:-1;;;;;27912:4:0;;::::1;27918:13:::0;::::1;27912:19;27908:452;;27973:4;::::0;27959:13:::1;:18:::0;;-1:-1:-1;;;;;;27959:18:0::1;-1:-1:-1::0;;;;;27973:4:0;;::::1;27959:18:::0;;;::::1;::::0;;27973:4:::1;27992:20;:22:::0;;;28052:34:::1;::::0;28073:13;;28052:34:::1;:::i;:::-;28031:20;:55:::0;28117:4:::1;::::0;-1:-1:-1;;;;;28117:4:0::1;28101:21;::::0;;;:15:::1;:21;::::0;;;;:24;;28124:1:::1;::::0;28101:21;:24:::1;::::0;28124:1;;28101:24:::1;:::i;:::-;;;;;;;;28157:1;28140:15;;:18;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;28195:4:0::1;::::0;-1:-1:-1;;;;;28195:4:0::1;28176:24;::::0;;;:18:::1;:24;::::0;;;;;::::1;;:31;;::::0;;28173:104:::1;;28256:4;::::0;28241:9:::1;:20:::0;;28256:4;28241:20;::::1;::::0;;28256:4:::1;28241:20:::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;28241:20:0::1;-1:-1:-1::0;;;;;28256:4:0;;::::1;28241:20:::0;;;::::1;::::0;;28173:104:::1;28324:4;::::0;-1:-1:-1;;;;;28324:4:0::1;28305:24;::::0;;;:18:::1;:24;::::0;;;;:29;;-1:-1:-1;;28305:29:0::1;28330:4;28305:29;::::0;;27908:452:::1;28414:13;28393:20;;:34;;;;:::i;:::-;28372:20;:55:::0;28450:13:::1;::::0;28444:4:::1;::::0;-1:-1:-1;;;;;28450:13:0;;::::1;28444:4:::0;::::1;:19:::0;28440:175:::1;;28531:13;28510:20;;:34;;;;:::i;:::-;28489:20;:55:::0;;;28574:4:::1;::::0;-1:-1:-1;;;;;28574:4:0::1;28559:20;::::0;;;:14:::1;:20;::::0;;;;:44;;:20;;;:44:::1;::::0;28489:55;;28559:44:::1;:::i;:::-;::::0;;;-1:-1:-1;;28440:175:0::1;-1:-1:-1::0;28680:5:0::1;::::0;-1:-1:-1;28680:5:0;28732:19;;28728:364:::1;;28768:6;::::0;;28942:21:::1;::::0;28768:244:::1;::::0;-1:-1:-1;;;28768:244:0;;28844:4:::1;28768:244;::::0;::::1;10508:34:1::0;10558:18;;;10551:34;;;28768:6:0::1;10601:18:1::0;;;10594:34;;;10644:18;;;10637:34;-1:-1:-1;;;;;28942:21:0;;::::1;10687:19:1::0;;;10680:44;28982:15:0::1;10740:19:1::0;;;10733:35;28768:6:0::1;::::0;:22:::1;::::0;28798:18;;10442:19:1;;28768:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;29032:48:0::1;::::0;;11264:25:1;;;11320:2;11305:18;;11298:34;;;29032:48:0::1;::::0;-1:-1:-1;11237:18:1;29032:48:0::1;;;;;;;28728:364;-1:-1:-1::0;;13677:16:0;:24;;-1:-1:-1;;;;13677:24:0;;;-1:-1:-1;;;;;;;;;;26322:2777:0:o;19489:2125::-;19656:11;;19639:14;;19621:32;;:15;:32;:::i;:::-;:46;19617:87;;;19684:8;:6;:8::i;:::-;9954:7;9981:6;-1:-1:-1;;;;;19732:17:0;;;9981:6;;19732:17;;;;:54;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;19766:20:0;;;9981:6;;19766:20;;19732:54;:98;;;;-1:-1:-1;;;;;;19804:26:0;;;;;;:15;:26;;;;;;;;19803:27;19732:98;:132;;;;-1:-1:-1;19860:4:0;;-1:-1:-1;;;;;19847:17:0;;;19860:4;;19847:17;;19732:132;:166;;;;-1:-1:-1;19894:4:0;;-1:-1:-1;;;;;19881:17:0;;;19894:4;;19881:17;;19732:166;:200;;;;-1:-1:-1;19928:4:0;;-1:-1:-1;;;;;19915:17:0;;;19928:4;;19915:17;;19732:200;:243;;;;-1:-1:-1;;;;;;19949:26:0;;19970:4;19949:26;;19732:243;19714:1486;;;20020:12;;20010:6;:22;;20002:41;;;;-1:-1:-1;;;20002:41:0;;11545:2:1;20002:41:0;;;11527:21:1;11584:1;11564:18;;;11557:29;-1:-1:-1;;;11602:18:1;;;11595:36;11648:18;;20002:41:0;11343:329:1;20002:41:0;-1:-1:-1;;;;;15618:18:0;;20058:32;15618:18;;;:9;:18;;;;;;20191:16;;20154:33;20181:6;15618:18;20154:33;:::i;:::-;:53;;20128:150;;;;-1:-1:-1;;;20128:150:0;;11879:2:1;20128:150:0;;;11861:21:1;11918:2;11898:18;;;11891:30;11957:34;11937:18;;;11930:62;-1:-1:-1;;;12008:18:1;;;12001:33;12051:19;;20128:150:0;11677:399:1;20128:150:0;20319:16;;;20333:1;20319:16;;;;;;;;20295:21;;20319:16;;;;;;;;-1:-1:-1;;20360:6:0;;:13;;;-1:-1:-1;;;20360:13:0;;;;20295:40;;-1:-1:-1;;;;;;20360:6:0;;;;:11;;-1:-1:-1;20360:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20350:4;20355:1;20350:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20350:23:0;;;-1:-1:-1;;;;;20350:23:0;;;;;20406:4;20388;20393:1;20388:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20388:23:0;;;:7;;;;;;;;;:23;20444:6;;:33;;-1:-1:-1;;;20444:33:0;;20426:15;;20444:6;;;;;:19;;:33;;20464:6;;20472:4;;20444:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20444:33:0;;;;;;;;;;;;:::i;:::-;20478:1;20444:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;20497:29:0;;;;;;:18;:29;;;;;;;;20444:36;;-1:-1:-1;20497:29:0;;:35;;:29;:35;:99;;;;-1:-1:-1;20564:14:0;;-1:-1:-1;;;;;20536:25:0;;;;;;:14;:25;;;;;;20581:15;;20536:42;;;:::i;:::-;:60;20497:99;:123;;;;;20610:10;;20600:7;:20;20497:123;20493:696;;;20671:4;;;20655:13;:20;;-1:-1:-1;;;;;20671:4:0;;;-1:-1:-1;;;;;;20655:20:0;;;;;;;20694:16;;;;;;;;;;;;-1:-1:-1;20729:20:0;:24;20772:10;:20;;;20828:15;20811:14;:32;20867:25;;;10062:51:1;;;10144:2;10129:18;;10122:34;;;20867:25:0;;10035:18:1;20867:25:0;;;;;;;20493:696;;;20939:10;;20929:7;:20;20925:264;;;20999:4;;;20983:13;:20;;-1:-1:-1;;;;;20999:4:0;;;-1:-1:-1;;;;;;20983:20:0;;;;;;;21022:16;;;;;;;;;;;;21057:10;:20;;;21113:15;21096:14;:32;21152:25;;;10062:51:1;;;10144:2;10129:18;;10122:34;;;21152:25:0;;10035:18:1;21152:25:0;;;;;;;20925:264;19987:1213;;;19714:1486;9954:7;9981:6;-1:-1:-1;;;;;21228:17:0;;;9981:6;;21228:17;;;;:54;;-1:-1:-1;9954:7:0;9981:6;-1:-1:-1;;;;;21262:20:0;;;9981:6;;21262:20;;21228:54;:95;;;;-1:-1:-1;;;;;;21300:23:0;;;;;;:15;:23;;;;;;;;21299:24;21228:95;:126;;;;-1:-1:-1;21350:4:0;;-1:-1:-1;;;;;21340:14:0;;;21350:4;;21340:14;;21228:126;:169;;;;-1:-1:-1;;;;;;21371:26:0;;21392:4;21371:26;;21228:169;21210:397;;;21442:12;;21432:6;:22;;21424:41;;;;-1:-1:-1;;;21424:41:0;;11545:2:1;21424:41:0;;;11527:21:1;11584:1;11564:18;;;11557:29;-1:-1:-1;;;11602:18:1;;;11595:36;11648:18;;21424:41:0;11343:329:1;21424:41:0;21484:4;;-1:-1:-1;;;;;21484:14:0;;;:4;;:14;21480:113;;21533:4;;21539:10;;21524:26;;;-1:-1:-1;;;;;21533:4:0;;;10062:51:1;;10144:2;10129:18;;10122:34;;;;21524:26:0;;10035:18:1;21524:26:0;;;;;;;21569:8;:6;:8::i;:::-;19489:2125;;;:::o;25972:342::-;-1:-1:-1;;;;;26109:19:0;;26083:4;26109:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;26132:22:0;;;;;;:11;:22;;;;;;;;26109:45;26105:90;;;-1:-1:-1;26178:5:0;26171:12;;26105:90;26219:4;;-1:-1:-1;;;;;26209:14:0;;;26219:4;;26209:14;;:35;;-1:-1:-1;26240:4:0;;-1:-1:-1;;;;;26227:17:0;;;26240:4;;26227:17;26209:35;26205:80;;;-1:-1:-1;26268:5:0;26261:12;;26205:80;-1:-1:-1;26302:4:0;25972:342;;;;:::o;25479:485::-;25643:4;;25599:7;;;;-1:-1:-1;;;;;25643:17:0;;;:4;;:17;:74;;25709:8;;25643:74;;;25676:17;;25643:74;25619:98;-1:-1:-1;25728:17:0;25748:34;25778:3;25748:25;:6;25619:98;25748:10;:25::i;:34::-;25838:4;25820:24;;;;:9;:24;;;;;;25728:54;;-1:-1:-1;25820:39:0;;25728:54;25820:28;:39::i;:::-;25811:4;25793:24;;;;:9;:24;;;;;;;:66;;;;25875:42;;-1:-1:-1;;;;;25875:42:0;;;;;;;25907:9;553:25:1;;541:2;526:18;;407:177;25875:42:0;;;;;;;;25935:21;:6;25946:9;25935:10;:21::i;:::-;25928:28;25479:485;-1:-1:-1;;;;;;25479:485:0:o;657:246::-;715:7;739:1;744;739:6;735:47;;-1:-1:-1;769:1:0;762:8;;735:47;792:9;804:5;808:1;804;:5;:::i;:::-;792:17;-1:-1:-1;837:1:0;828:5;832:1;792:17;828:5;:::i;:::-;:10;820:56;;;;-1:-1:-1;;;820:56:0;;13903:2:1;820:56:0;;;13885:21:1;13942:2;13922:18;;;13915:30;13981:34;13961:18;;;13954:62;-1:-1:-1;;;14032:18:1;;;14025:31;14073:19;;820:56:0;13701:397:1;911:132:0;969:7;996:39;1000:1;1003;996:39;;;;;;;;;;;;;;;;;:3;:39::i;17559:136::-;17604:15;;17597:4;:22;;-1:-1:-1;;;;;;17597:22:0;-1:-1:-1;;;;;17604:15:0;;;17597:22;;;;;;17604:15;17630:10;:14;17672:15;17655:14;:32;17559:136::o;1051:223::-;1171:7;1206:12;1199:5;1191:28;;;;-1:-1:-1;;;1191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1230:9:0;1242:5;1246:1;1242;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;589:548::-;701:4;730:2;759;748:9;741:21;791:6;785:13;834:6;829:2;818:9;814:18;807:34;859:1;869:140;883:6;880:1;877:13;869:140;;;978:14;;;974:23;;968:30;944:17;;;963:2;940:26;933:66;898:10;;869:140;;;873:3;1058:1;1053:2;1044:6;1033:9;1029:22;1025:31;1018:42;1128:2;1121;1117:7;1112:2;1104:6;1100:15;1096:29;1085:9;1081:45;1077:54;1069:62;;;;589:548;;;;:::o;1142:131::-;-1:-1:-1;;;;;1217:31:1;;1207:42;;1197:70;;1263:1;1260;1253:12;1278:315;1346:6;1354;1407:2;1395:9;1386:7;1382:23;1378:32;1375:52;;;1423:1;1420;1413:12;1375:52;1462:9;1449:23;1481:31;1506:5;1481:31;:::i;:::-;1531:5;1583:2;1568:18;;;;1555:32;;-1:-1:-1;;;1278:315:1:o;1790:456::-;1867:6;1875;1883;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;-1:-1:-1;2117:2:1;2102:18;;2089:32;2130:33;2089:32;2130:33;:::i;:::-;1790:456;;2182:7;;-1:-1:-1;;;2236:2:1;2221:18;;;;2208:32;;1790:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2786:60;2692:160;;;:::o;2857:315::-;2922:6;2930;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;3038:9;3025:23;3057:31;3082:5;3057:31;:::i;:::-;3107:5;-1:-1:-1;3131:35:1;3162:2;3147:18;;3131:35;:::i;:::-;3121:45;;2857:315;;;;;:::o;3177:388::-;3245:6;3253;3306:2;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;3361:9;3348:23;3380:31;3405:5;3380:31;:::i;:::-;3430:5;-1:-1:-1;3487:2:1;3472:18;;3459:32;3500:33;3459:32;3500:33;:::i;:::-;3552:7;3542:17;;;3177:388;;;;;:::o;3570:461::-;3623:3;3661:5;3655:12;3688:6;3683:3;3676:19;3714:4;3743:2;3738:3;3734:12;3727:19;;3780:2;3773:5;3769:14;3801:1;3811:195;3825:6;3822:1;3819:13;3811:195;;;3890:13;;-1:-1:-1;;;;;3886:39:1;3874:52;;3946:12;;;;3981:15;;;;3922:1;3840:9;3811:195;;;-1:-1:-1;4022:3:1;;3570:461;-1:-1:-1;;;;;3570:461:1:o;4036:261::-;4215:2;4204:9;4197:21;4178:4;4235:56;4287:2;4276:9;4272:18;4264:6;4235:56;:::i;4302:316::-;4379:6;4387;4395;4448:2;4436:9;4427:7;4423:23;4419:32;4416:52;;;4464:1;4461;4454:12;4416:52;-1:-1:-1;;4487:23:1;;;4557:2;4542:18;;4529:32;;-1:-1:-1;4608:2:1;4593:18;;;4580:32;;4302:316;-1:-1:-1;4302:316:1:o;4623:248::-;4688:6;4696;4749:2;4737:9;4728:7;4724:23;4720:32;4717:52;;;4765:1;4762;4755:12;4717:52;4788:26;4804:9;4788:26;:::i;5110:356::-;5312:2;5294:21;;;5331:18;;;5324:30;5390:34;5385:2;5370:18;;5363:62;5457:2;5442:18;;5110:356::o;5471:127::-;5532:10;5527:3;5523:20;5520:1;5513:31;5563:4;5560:1;5553:15;5587:4;5584:1;5577:15;5603:125;5668:9;;;5689:10;;;5686:36;;;5702:18;;:::i;6078:217::-;6118:1;6144;6134:132;;6188:10;6183:3;6179:20;6176:1;6169:31;6223:4;6220:1;6213:15;6251:4;6248:1;6241:15;6134:132;-1:-1:-1;6280:9:1;;6078:217::o;6655:335::-;6857:2;6839:21;;;6896:2;6876:18;;;6869:30;-1:-1:-1;;;6930:2:1;6915:18;;6908:41;6981:2;6966:18;;6655:335::o;7758:128::-;7825:9;;;7846:11;;;7843:37;;;7860:18;;:::i;8571:127::-;8632:10;8627:3;8623:20;8620:1;8613:31;8663:4;8660:1;8653:15;8687:4;8684:1;8677:15;8703:127;8764:10;8759:3;8755:20;8752:1;8745:31;8795:4;8792:1;8785:15;8819:4;8816:1;8809:15;8835:251;8905:6;8958:2;8946:9;8937:7;8933:23;8929:32;8926:52;;;8974:1;8971;8964:12;8926:52;9006:9;9000:16;9025:31;9050:5;9025:31;:::i;9091:582::-;9390:6;9379:9;9372:25;9433:6;9428:2;9417:9;9413:18;9406:34;9476:3;9471:2;9460:9;9456:18;9449:31;9353:4;9497:57;9549:3;9538:9;9534:19;9526:6;9497:57;:::i;:::-;-1:-1:-1;;;;;9590:32:1;;;;9585:2;9570:18;;9563:60;-1:-1:-1;9654:3:1;9639:19;9632:35;9489:65;9091:582;-1:-1:-1;;;9091:582:1:o;10779:306::-;10867:6;10875;10883;10936:2;10924:9;10915:7;10911:23;10907:32;10904:52;;;10952:1;10949;10942:12;10904:52;10981:9;10975:16;10965:26;;11031:2;11020:9;11016:18;11010:25;11000:35;;11075:2;11064:9;11060:18;11054:25;11044:35;;10779:306;;;;;:::o;12081:332::-;12288:6;12277:9;12270:25;12331:2;12326;12315:9;12311:18;12304:30;12251:4;12351:56;12403:2;12392:9;12388:18;12380:6;12351:56;:::i;:::-;12343:64;12081:332;-1:-1:-1;;;;12081:332:1:o;12418:1105::-;12513:6;12544:2;12587;12575:9;12566:7;12562:23;12558:32;12555:52;;;12603:1;12600;12593:12;12555:52;12636:9;12630:16;12665:18;12706:2;12698:6;12695:14;12692:34;;;12722:1;12719;12712:12;12692:34;12760:6;12749:9;12745:22;12735:32;;12805:7;12798:4;12794:2;12790:13;12786:27;12776:55;;12827:1;12824;12817:12;12776:55;12856:2;12850:9;12878:2;12874;12871:10;12868:36;;;12884:18;;:::i;:::-;12930:2;12927:1;12923:10;12962:2;12956:9;13025:2;13021:7;13016:2;13012;13008:11;13004:25;12996:6;12992:38;13080:6;13068:10;13065:22;13060:2;13048:10;13045:18;13042:46;13039:72;;;13091:18;;:::i;:::-;13127:2;13120:22;13177:18;;;13211:15;;;;-1:-1:-1;13253:11:1;;;13249:20;;;13281:19;;;13278:39;;;13313:1;13310;13303:12;13278:39;13337:11;;;;13357:135;13373:6;13368:3;13365:15;13357:135;;;13439:10;;13427:23;;13390:12;;;;13470;;;;13357:135;;;13511:6;12418:1105;-1:-1:-1;;;;;;;;12418:1105:1:o;13528:168::-;13568:7;13634:1;13630;13626:6;13622:14;13619:1;13616:21;13611:1;13604:9;13597:17;13593:45;13590:71;;;13641:18;;:::i;:::-;-1:-1:-1;13681:9:1;;13528:168::o
Swarm Source
ipfs://82df52a26ea3b996fa5090695a2941ef8951fa1f168bacfc1f7444798e68e826
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.