Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 REVIVE
Holders
62
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,924.363433864363000032 REVIVEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ReviveEth
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-27 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } interface IERC20Upgradeable { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ReviveEth is Context, IERC20Upgradeable { address private _owner; // address of the contract owner. mapping (address => uint256) private _rOd; mapping (address => uint256) private _tOd; mapping (address => bool) lpPs; uint256 private tSLP = 0; mapping (address => mapping (address => uint256)) private _als; mapping (address => bool) private _iEFF; mapping (address => bool) private _iE; address[] private _excluded; mapping (address => bool) private _lH; uint256 private sS; string private _nm; string private _s; uint256 public _reF = 0; uint256 public _liF = 0; uint256 public _maF = 2000; uint256 public _bReF = _reF; uint256 public _bLiF = _liF; uint256 public _bMaF = _maF; uint256 public _sLiF = 0; uint256 public _sReF = 0; uint256 public _sMaF = 2000; uint256 public _tReF = 0; uint256 public _tLiF = 0; uint256 public _tMaF = 0; uint256 private maxReF = 1000; uint256 private maxLiF = 1000; uint256 private maxMaF = 2200; uint256 public _liquidityRatio = 0; uint256 public _mR = 2000; uint256 private masterTaxDivisor = 10000; uint256 private MaS = 20; uint256 private DeS = 20; uint256 private VaD = 40; uint256 private constant MAX = ~uint256(0); uint8 private _decimals; uint256 private _decimalsMul; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; IUniswapV2Router02 public dexRouter; address public lpPair; address public _routerAddress; address public DEAD = 0x000000000000000000000000000000000000dEaD; address public ZERO = 0x0000000000000000000000000000000000000000; address payable private _dW; address payable private _marketWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private _mTA; uint256 public mTAUI; uint256 private _mWS; uint256 public mWSUI; uint256 private swapThreshold; uint256 private swapAmount; bool Risen = false; bool public _LiqHasBeenAdded = false; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; bool private sameBlockActive = true; mapping (address => uint256) private lastTrade; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SniperCaught(address sniperAddress); uint256 Planted; bool rft = false; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } constructor () payable { _owner = msg.sender; if (block.chainid == 56) { _routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E; } else if (block.chainid == 97) { _routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) { _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else { revert(); } _iEFF[owner()] = true; _iEFF[address(this)] = true; _lH[owner()] = true; _approve(_msgSender(), _routerAddress, MAX); _approve(address(this), _routerAddress, MAX); } receive() external payable {} function Rest(address payable setMarketWallet, address payable setDW, string memory _tokenname, string memory _tokensymbol) external onlyOwner { require(!rft); _marketWallet = payable(setMarketWallet); _dW = payable(setDW); _iEFF[_marketWallet] = true; _iEFF[_dW] = true; _nm = _tokenname; _s = _tokensymbol; sS = 10_000_000; if (sS < 100000000000) { _decimals = 18; _decimalsMul = _decimals; } else { _decimals = 9; _decimalsMul = _decimals; } _tTotal = sS * (10**_decimalsMul); _rTotal = (MAX - (MAX % _tTotal)); dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPs[lpPair] = true; _als[address(this)][address(dexRouter)] = type(uint256).max; _mTA = (_tTotal * 1000) / 100000; mTAUI = (sS * 500) / 100000; _mWS = (_tTotal * 10) / 1000; mWSUI = (sS * 10) / 1000; swapThreshold = (_tTotal * 5) / 10000; swapAmount = (_tTotal * 25) / 10000; approve(_routerAddress, type(uint256).max); rft = true; _rOd[owner()] = _rTotal; emit Transfer(ZERO, owner(), _tTotal); _approve(address(this), address(dexRouter), type(uint256).max); _t(owner(), address(this), balanceOf(owner())); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); Planted = block.number; } function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFee(_owner, false); setExcludedFromFee(newOwner, true); setExcludedFromReward(newOwner, true); if (_dW == payable(_owner)) _dW = payable(newOwner); _als[_owner][newOwner] = balanceOf(_owner); if(balanceOf(_owner) > 0) { _t(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFee(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external view returns (uint8) { return _decimals; } function symbol() external view returns (string memory) { return _s; } function name() external view returns (string memory) { return _nm; } function getOwner() external view returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _als[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { if (_iE[account]) return _tOd[account]; return tokenFromReflection(_rOd[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _t(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _t(sender, recipient, amount); _approve(sender, _msgSender(), _als[sender][_msgSender()] - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _als[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _als[_msgSender()][spender] - subtractedValue); return true; } function setNewRouter(address newRouter) external onlyOwner() { IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter); address g_p = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (g_p == address(0)) { lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = g_p; } dexRouter = _newRouter; _approve(address(this), newRouter, MAX); } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPs[pair] = false; } else { if (tSLP != 0) { require(block.timestamp - tSLP > 1 weeks, "Cannot set a new pair this week!"); } lpPs[pair] = true; tSLP = block.timestamp; } } function isExcludedFromReward(address account) public view returns (bool) { return _iE[account]; } function iEFF(address account) public view returns(bool) { return _iEFF[account]; } function setTB(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF && liquidity <= maxLiF && marketing <= maxMaF ); require(reflect + liquidity + marketing <= 4900); _bReF = reflect; _bLiF = liquidity; _bMaF = marketing; } function setTS(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF && liquidity <= maxLiF && marketing <= maxMaF ); require(reflect + liquidity + marketing <= 4900); _sReF = reflect; _sLiF = liquidity; _sMaF = marketing; } function setTT(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF && liquidity <= maxLiF && marketing <= maxMaF ); require(reflect + liquidity + marketing <= 4900); _tReF = reflect; _tLiF = liquidity; _tMaF = marketing; } function setValues(uint256 ms, uint256 ds, uint256 vd) external onlyOwner { MaS = ms; DeS = ds; VaD = vd; } function setRatios(uint256 liquidity, uint256 marketing) external onlyOwner { _liquidityRatio = liquidity; _mR = marketing; } function setMTP(uint256 percent, uint256 divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _mTA = check; mTAUI = (sS * percent) / divisor; } function setMWS(uint256 p, uint256 d) external onlyOwner { uint256 check = (_tTotal * p) / d; require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _mWS = check; mWSUI = (sS * p) / d; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; } function setNewMarketWallet(address payable newWallet) external onlyOwner { require(_marketWallet != newWallet, "Wallet already set!"); _marketWallet = payable(newWallet); } function setNewDW(address payable newWallet) external onlyOwner { require(_dW != newWallet, "Wallet already set!"); _dW = payable(newWallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setExcludedFromFee(address account, bool enabled) public onlyOwner { _iEFF[account] = enabled; } function setExcludedFromReward(address account, bool enabled) public onlyOwner { if (enabled == true) { require(!_iE[account], "Account is already excluded."); if(_rOd[account] > 0) { _tOd[account] = tokenFromReflection(_rOd[account]); } _iE[account] = true; _excluded.push(account); } else if (enabled == false) { require(_iE[account], "Account is already included."); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOd[account] = 0; _iE[account] = false; _excluded.pop(); break; } } } } function totalFees() public view returns (uint256) { return _tFeeTotal; } function _hasLimits(address from, address to) internal view returns (bool) { return from != owner() && to != owner() && !_lH[to] && !_lH[from] && to != DEAD && to != address(0) && from != address(this); } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount / currentRate; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "Cannot approve from the zero address"); require(spender != address(0), "Cannot approve to the zero address"); _als[sender][spender] = amount; emit Approval(sender, spender, amount); } function _t(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "Cannot transfer from the zero address"); require(to != address(0), "Cannot transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(_hasLimits(from, to)) { if(!Risen) { revert("Trading not yet enabled!"); } if (sameBlockActive) { if (lpPs[from]){ require(lastTrade[to] != block.number + 1); lastTrade[to] = block.number; } else { require(lastTrade[from] != block.number + 1); lastTrade[from] = block.number; } } require(amount <= _mTA, "Transfer exceeds the maxTxAmount."); if(to != _routerAddress && !lpPs[to]) { require(balanceOf(to) + amount <= _mWS, "Transfer exceeds the maxWalletSize."); } } bool takeFee = true; if(_iEFF[from] || _iEFF[to]){ takeFee = false; } if (lpPs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _ftt(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) internal lockTheSwap { if (_liquidityRatio + _mR == 0) return; uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _mR)) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( toSwapForEth, 0, path, address(this), block.timestamp ); uint256 liquidityBalance = ((address(this).balance * _liquidityRatio) / (_liquidityRatio + _mR)) / 2; if (toLiquify > 0) { dexRouter.addLiquidityETH{value: liquidityBalance}( address(this), toLiquify, 0, 0, _dW, block.timestamp ); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (contractTokenBalance - toLiquify > 0) { uint256 OperationsFee = (address(this).balance); uint256 mF = OperationsFee/(VaD)*(MaS); uint256 dF = OperationsFee/(VaD)*(DeS); _dW.transfer(dF); _marketWallet.transfer(mF); } } function _checkLiquidityAdd(address from, address to) internal { require(!_LiqHasBeenAdded, "Liquidity is already added."); if (!_hasLimits(from, to) && to == lpPair) { _lH[from] = true; _LiqHasBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } } function Rise() public onlyOwner { require(!Risen, "Trading is already enabled!"); setExcludedFromReward(address(this), true); setExcludedFromReward(lpPair, true); Risen = true; swapAndLiquifyEnabled = true; } struct ExtraValues { uint256 tTransferAmount; uint256 tFee; uint256 tLiquidity; uint256 rTransferAmount; uint256 rAmount; uint256 rFee; } function _ftt(address from, address to, uint256 tAmount, bool takeFee) internal returns (bool) { if (!_LiqHasBeenAdded) { _checkLiquidityAdd(from, to); if (!_LiqHasBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } ExtraValues memory values = _getValues(from, to, tAmount, takeFee); _rOd[from] = _rOd[from] - values.rAmount; _rOd[to] = _rOd[to] + values.rTransferAmount; if (_iE[from] && !_iE[to]) { _tOd[from] = _tOd[from] - tAmount; } else if (!_iE[from] && _iE[to]) { _tOd[to] = _tOd[to] + values.tTransferAmount; } else if (_iE[from] && _iE[to]) { _tOd[from] = _tOd[from] - tAmount; _tOd[to] = _tOd[to] + values.tTransferAmount; } if (values.tLiquidity > 0) _takeLiquidity(from, values.tLiquidity); if (values.rFee > 0 || values.tFee > 0) _takeReflect(values.rFee, values.tFee); emit Transfer(from, to, values.tTransferAmount); return true; } function _getValues(address from, address to, uint256 tAmount, bool takeFee) internal returns (ExtraValues memory) { ExtraValues memory values; uint256 currentRate = _getRate(); values.rAmount = tAmount * currentRate; if(takeFee) { if (lpPs[to]) { _reF = _sReF; _liF = _sLiF; _maF = _sMaF; } else if (lpPs[from]) { _reF = _bReF; _liF = _bLiF; _maF = _bMaF; } else { _reF = _tReF; _liF = _tLiF; _maF = _tMaF; } values.tFee = (tAmount * _reF) / masterTaxDivisor; values.tLiquidity = (tAmount * (_liF + _maF)) / masterTaxDivisor; values.tTransferAmount = tAmount - (values.tFee + values.tLiquidity); values.rFee = values.tFee * currentRate; } else { values.tFee = 0; values.tLiquidity = 0; values.tTransferAmount = tAmount; values.rFee = 0; } values.rTransferAmount = values.rAmount - (values.rFee + (values.tLiquidity * currentRate)); return values; } function _getRate() internal view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply / tSupply; } function _getCurrentSupply() internal view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOd[_excluded[i]] > rSupply || _tOd[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply - _rOd[_excluded[i]]; tSupply = tSupply - _tOd[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeReflect(uint256 rFee, uint256 tFee) internal { _rTotal = _rTotal - rFee; _tFeeTotal = _tFeeTotal + tFee; } function withdrawETHstuck() external onlyOwner { payable(owner()).transfer(address(this).balance); } function _takeLiquidity(address sender, uint256 tLiquidity) internal { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity * currentRate; _rOd[address(this)] = _rOd[address(this)] + rLiquidity; if(_iE[address(this)]) _tOd[address(this)] = _tOd[address(this)] + tLiquidity; emit Transfer(sender, address(this), tLiquidity); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"setMarketWallet","type":"address"},{"internalType":"address payable","name":"setDW","type":"address"},{"internalType":"string","name":"_tokenname","type":"string"},{"internalType":"string","name":"_tokensymbol","type":"string"}],"name":"Rest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Rise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_LiqHasBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","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":"iEFF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTAUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWSUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMTP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p","type":"uint256"},{"internalType":"uint256","name":"d","type":"uint256"}],"name":"setMWS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setNewDW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setNewMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ms","type":"uint256"},{"internalType":"uint256","name":"ds","type":"uint256"},{"internalType":"uint256","name":"vd","type":"uint256"}],"name":"setValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETHstuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260006004819055600d819055600e8190556107d0600f8190556010829055601182905560128190556013829055601482815560158290556016839055601783905560188390556103e86019819055601a55610898601b55601c839055601d91909155612710601e55601f8190556020556028602155602a80546001600160a01b031990811661dead17909155602b805482169055602d805460ff60a81b191690556034805461ffff19169055603582905560368290556037805460ff19908116600117909155603a8054909116905581541633179055466038036200010f57602980546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000197565b466061036200014457602980546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c317905562000197565b4660011480620001545750466004145b80620001605750466003145b156200019257602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000197565b600080fd5b600160066000620001b06000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080549092166001908117909255600990620002096000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620002526200023d3390565b6029546001600160a01b031660001962000274565b6029546200026e9030906001600160a01b031660001962000274565b620003a0565b6001600160a01b038316620002dc5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200033f5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002d3565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b613dc980620003b06000396000f3fe6080604052600436106103a65760003560e01c80636612e66f116101e7578063a457c2d71161010d578063d8742467116100a0578063eafb5a3c1161006f578063eafb5a3c14610a71578063f17b67fa14610a91578063fb78680d14610ab1578063fb8bc55f14610ad157600080fd5b8063d8742467146109df578063d9e66460146109f5578063da37be2414610a15578063dd62ed3e14610a2b57600080fd5b8063bbd39ab2116100dc578063bbd39ab21461097e578063be5a463014610993578063c3183e7e146109a9578063c49b9a80146109bf57600080fd5b8063a457c2d714610908578063a9059cbb14610928578063b1263c9114610948578063b46def551461096857600080fd5b806380c581d1116101855780638da5cb5b116101545780638da5cb5b146108a1578063901b94c0146108bf57806395d89b41146108d45780639a09a61b146108e957600080fd5b806380c581d1146108285780638870b3c01461084857806388f8202014610868578063893d20e8146108a157600080fd5b80636aa7a071116101c15780636aa7a071146107c75780636ed515e6146107dd57806370a08231146107f3578063715018a61461081357600080fd5b80636612e66f146107715780636639dd9314610791578063668357da146107b157600080fd5b8063313ce567116102cc5780634a74bb021161026a57806358a142b91161023957806358a142b91461070f57806358fa63ca146107255780635b8e4046146107455780635e0f65841461075b57600080fd5b80634a74bb02146106985780634f6e7bb9146106b95780634fb2e45d146106cf578063571ac8b0146106ef57600080fd5b80633895aa25116102a65780633895aa2514610622578063395093511461063857806343a82b1f14610658578063452ed4f11461067857600080fd5b8063313ce567146105b157806337a9314f146105d3578063384f6b511461060c57600080fd5b8063111be3161161034457806323b872dd1161031357806323b872dd1461053157806328825ff1146105515780632b962ec6146105715780632d8381191461059157600080fd5b8063111be316146104c757806313114a9d146104e757806313e46192146104fc57806318160ddd1461051c57600080fd5b80630758d924116103805780630758d92414610433578063095ea7b3146104535780630c2cdb0e146104835780630cdc8226146104a357600080fd5b806303fd2a45146103b2578063050a9942146103ef57806306fdde031461041157600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b50602a546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103fb57600080fd5b5061040f61040a366004613561565b610ae7565b005b34801561041d57600080fd5b50610426610b76565b6040516103e6919061358d565b34801561043f57600080fd5b506027546103d2906001600160a01b031681565b34801561045f57600080fd5b5061047361046e3660046135f0565b610c08565b60405190151581526020016103e6565b34801561048f57600080fd5b5061040f61049e36600461361c565b610c1f565b3480156104af57600080fd5b506104b9600f5481565b6040519081526020016103e6565b3480156104d357600080fd5b5061040f6104e2366004613561565b610cbc565b3480156104f357600080fd5b506026546104b9565b34801561050857600080fd5b5061040f610517366004613653565b610cf4565b34801561052857600080fd5b506024546104b9565b34801561053d57600080fd5b5061047361054c366004613688565b610feb565b34801561055d57600080fd5b5061040f61056c366004613561565b61103e565b34801561057d57600080fd5b5061040f61058c36600461361c565b6110c4565b34801561059d57600080fd5b506104b96105ac3660046136c9565b611161565b3480156105bd57600080fd5b5060225460405160ff90911681526020016103e6565b3480156105df57600080fd5b506104736105ee3660046136e2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561061857600080fd5b506104b9601c5481565b34801561062e57600080fd5b506104b9600e5481565b34801561064457600080fd5b506104736106533660046135f0565b6111e5565b34801561066457600080fd5b5061040f610673366004613561565b61121c565b34801561068457600080fd5b506028546103d2906001600160a01b031681565b3480156106a457600080fd5b50602d5461047390600160a81b900460ff1681565b3480156106c557600080fd5b506104b9601d5481565b3480156106db57600080fd5b5061040f6106ea3660046136e2565b6112a2565b3480156106fb57600080fd5b5061047361070a3660046136e2565b611443565b34801561071b57600080fd5b506104b9602f5481565b34801561073157600080fd5b50602b546103d2906001600160a01b031681565b34801561075157600080fd5b506104b960115481565b34801561076757600080fd5b506104b960315481565b34801561077d57600080fd5b5061040f61078c366004613653565b611451565b34801561079d57600080fd5b5061040f6107ac36600461361c565b6114a6565b3480156107bd57600080fd5b506104b9600d5481565b3480156107d357600080fd5b506104b960145481565b3480156107e957600080fd5b506104b960155481565b3480156107ff57600080fd5b506104b961080e3660046136e2565b6114db565b34801561081f57600080fd5b5061040f61153a565b34801561083457600080fd5b5061040f610843366004613653565b6115b9565b34801561085457600080fd5b5061040f6108633660046137a2565b6116a1565b34801561087457600080fd5b506104736108833660046136e2565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108ad57600080fd5b506000546001600160a01b03166103d2565b3480156108cb57600080fd5b5061040f611bd2565b3480156108e057600080fd5b50610426611c93565b3480156108f557600080fd5b5060345461047390610100900460ff1681565b34801561091457600080fd5b506104736109233660046135f0565b611ca2565b34801561093457600080fd5b506104736109433660046135f0565b611cd9565b34801561095457600080fd5b5061040f6109633660046136e2565b611ce6565b34801561097457600080fd5b506104b960175481565b34801561098a57600080fd5b5061040f611d85565b34801561099f57600080fd5b506104b960125481565b3480156109b557600080fd5b506104b960165481565b3480156109cb57600080fd5b5061040f6109da36600461382b565b611dec565b3480156109eb57600080fd5b506104b960105481565b348015610a0157600080fd5b506029546103d2906001600160a01b031681565b348015610a2157600080fd5b506104b960185481565b348015610a3757600080fd5b506104b9610a46366004613846565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b5061040f610a8c3660046136e2565b611e6e565b348015610a9d57600080fd5b5061040f610aac3660046136e2565b61219e565b348015610abd57600080fd5b5061040f610acc36600461387f565b61223d565b348015610add57600080fd5b506104b960135481565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610b11906138b1565b60405180910390fd5b6019548311158015610b2e5750601a548211155b8015610b3c5750601b548111155b610b4557600080fd5b61132481610b5384866138fc565b610b5d91906138fc565b1115610b6857600080fd5b601492909255601355601555565b6060600b8054610b859061390f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb19061390f565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c153384846122a6565b5060015b92915050565b6000546001600160a01b03163314610c495760405162461bcd60e51b8152600401610b11906138b1565b60008183602454610c5a9190613949565b610c64919061397e565b90506103e8602454610c76919061397e565b811015610c955760405162461bcd60e51b8152600401610b1190613992565b602e819055600a548290610caa908590613949565b610cb4919061397e565b602f55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610b11906138b1565b601f92909255602055602155565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152600401610b11906138b1565b801515600103610e52576001600160a01b03821660009081526007602052604090205460ff1615610d915760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b11565b6001600160a01b03821660009081526001602052604090205415610deb576001600160a01b038216600090815260016020526040902054610dd190611161565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b801515600003610fe7576001600160a01b03821660009081526007602052604090205460ff16610ec45760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b11565b60005b600854811015610fe557826001600160a01b031660088281548110610eee57610eee6139d5565b6000918252602090912001546001600160a01b031603610fd35760088054610f18906001906139eb565b81548110610f2857610f286139d5565b600091825260209091200154600880546001600160a01b039092169183908110610f5457610f546139d5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610fac57610fac6139fe565b600082815260209020810160001990810180546001600160a01b0319169055019055610fe5565b80610fdd81613a14565b915050610ec7565b505b5050565b6000610ff88484846123ca565b506001600160a01b03841660009081526005602090815260408083203380855292529091205461103491869161102f9086906139eb565b6122a6565b5060019392505050565b6000546001600160a01b031633146110685760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561107c5750601a548211155b801561108a5750601b548111155b61109357600080fd5b611324816110a184866138fc565b6110ab91906138fc565b11156110b657600080fd5b601092909255601155601255565b6000546001600160a01b031633146110ee5760405162461bcd60e51b8152600401610b11906138b1565b600081836024546110ff9190613949565b611109919061397e565b90506103e860245461111b919061397e565b81101561113a5760405162461bcd60e51b8152600401610b1190613992565b6030819055600a54829061114f908590613949565b611159919061397e565b603155505050565b60006025548211156111c85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b11565b60006111d26127fa565b90506111de818461397e565b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c1591859061102f9086906138fc565b6000546001600160a01b031633146112465760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561125a5750601a548211155b80156112685750601b548111155b61127157600080fd5b6113248161127f84866138fc565b61128991906138fc565b111561129457600080fd5b601692909255601755601855565b6000546001600160a01b031633146112cc5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b0381166112f25760405162461bcd60e51b8152600401610b1190613a2d565b602a546001600160a01b03908116908216036113205760405162461bcd60e51b8152600401610b1190613a2d565b60008054611339916001600160a01b0390911690611451565b611344816001611451565b61134f816001610cf4565b600054602c546001600160a01b0391821691160361138357602c80546001600160a01b0319166001600160a01b0383161790555b600054611398906001600160a01b03166114db565b600080546001600160a01b0390811682526005602090815260408084208684168552909152822092909255805490916113d191166114db565b11156113f8576000546113f6906001600160a01b0316826113f1826114db565b6123ca565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610c1982600019610c08565b6000546001600160a01b0316331461147b5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114d05760405162461bcd60e51b8152600401610b11906138b1565b601c91909155601d55565b6001600160a01b03811660009081526007602052604081205460ff161561151857506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c1990611161565b6000546001600160a01b031633146115645760405162461bcd60e51b8152600401610b11906138b1565b6000805461157d916001600160a01b0390911690611451565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633146115e35760405162461bcd60e51b8152600401610b11906138b1565b80151560000361160f57506001600160a01b03166000908152600360205260409020805460ff19169055565b600454156116765762093a806004544261162991906139eb565b116116765760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b11565b6001600160a01b0382166000908152600360205260409020805460ff19166001179055426004555050565b6000546001600160a01b031633146116cb5760405162461bcd60e51b8152600401610b11906138b1565b603a5460ff16156116db57600080fd5b602d80546001600160a01b03199081166001600160a01b03878116918217909355602c8054909216868416178255600090815260066020526040808220805460ff19908116600190811790925593549094168252902080549091169091179055600b6117478382613ad8565b50600c6117548282613ad8565b5062989680600a556022805460ff1916601290811790915560235560235461177d90600a613c7c565b600a5461178a9190613949565b602481905561179b90600019613c88565b6117a7906000196139eb565b602555602954602780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190613c9c565b6001600160a01b031663c9c65396602760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190613c9c565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190613c9c565b602880546001600160a01b0319166001600160a01b039283169081179091556000908152600360209081526040808320805460ff19166001179055308352600582528083206027549094168352929052206000199055602454620186a090611989906103e8613949565b611993919061397e565b602e55600a54620186a0906119aa906101f4613949565b6119b4919061397e565b602f556024546103e8906119c990600a613949565b6119d3919061397e565b603055600a80546103e8916119e89190613949565b6119f2919061397e565b60315560245461271090611a07906005613949565b611a11919061397e565b60325560245461271090611a26906019613949565b611a30919061397e565b603355602954611a4b906001600160a01b0316600019610c08565b50603a805460ff19166001908117909155602554906000611a746000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611aa06000546001600160a01b031690565b602b546024546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3602754611b039030906001600160a01b03166000196122a6565b611b2e611b186000546001600160a01b031690565b306113f161080e6000546001600160a01b031690565b506027546001600160a01b031663f305d7194730611b4b816114db565b600080611b606000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611b8296959493929190613cb9565b60606040518083038185885af1158015611ba0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bc59190613cf4565b5050436039555050505050565b6000546001600160a01b03163314611bfc5760405162461bcd60e51b8152600401610b11906138b1565b60345460ff1615611c4f5760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720697320616c726561647920656e61626c65642100000000006044820152606401610b11565b611c5a306001610cf4565b602854611c71906001600160a01b03166001610cf4565b6034805460ff19166001179055602d805460ff60a81b1916600160a81b179055565b6060600c8054610b859061390f565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c1591859061102f9086906139eb565b60006110343384846123ca565b6000546001600160a01b03163314611d105760405162461bcd60e51b8152600401610b11906138b1565b602c546001600160a01b03808316911603611d635760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611daf5760405162461bcd60e51b8152600401610b11906138b1565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611de9573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611e165760405162461bcd60e51b8152600401610b11906138b1565b602d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6390831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611e985760405162461bcd60e51b8152600401610b11906138b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f019190613c9c565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190613c9c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190613c9c565b90506001600160a01b03811661215a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190613c9c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190613c9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121359190613c9c565b602880546001600160a01b0319166001600160a01b0392909216919091179055612176565b602880546001600160a01b0319166001600160a01b0383161790555b602780546001600160a01b0319166001600160a01b038416179055610fe530846000196122a6565b6000546001600160a01b031633146121c85760405162461bcd60e51b8152600401610b11906138b1565b602d546001600160a01b0380831691160361221b5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122675760405162461bcd60e51b8152600401610b11906138b1565b82846024546122769190613949565b612280919061397e565b6032556024548190612293908490613949565b61229d919061397e565b60335550505050565b6001600160a01b0383166123085760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b11565b6001600160a01b0382166123695760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b11565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166124305760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b11565b6001600160a01b0383166124925760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b11565b600082116124f45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b11565b6124fe848461281d565b156127225760345460ff166125555760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b11565b60375460ff1615612619576001600160a01b03841660009081526003602052604090205460ff16156125cf5761258c4360016138fc565b6001600160a01b038416600090815260386020526040902054036125af57600080fd5b6001600160a01b0383166000908152603860205260409020439055612619565b6125da4360016138fc565b6001600160a01b038516600090815260386020526040902054036125fd57600080fd5b6001600160a01b03841660009081526038602052604090204390555b602e548211156126755760405162461bcd60e51b815260206004820152602160248201527f5472616e73666572206578636565647320746865206d61785478416d6f756e746044820152601760f91b6064820152608401610b11565b6029546001600160a01b038481169116148015906126ac57506001600160a01b03831660009081526003602052604090205460ff16155b1561272257603054826126be856114db565b6126c891906138fc565b11156127225760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572206578636565647320746865206d617857616c6c657453696044820152623d329760e91b6064820152608401610b11565b6001600160a01b03841660009081526006602052604090205460019060ff168061276457506001600160a01b03841660009081526006602052604090205460ff165b1561276d575060005b6001600160a01b03841660009081526003602052604090205460ff16156127e557602d54600160a01b900460ff161580156127b15750602d54600160a81b900460ff165b156127e55760006127c1306114db565b905060325481106127e35760335481106127da57506033545b6127e3816128dd565b505b6127f185858584612c6f565b95945050505050565b6000806000612807612ff0565b9092509050612816818361397e565b9250505090565b600080546001600160a01b0384811691161480159061284a57506000546001600160a01b03838116911614155b801561286f57506001600160a01b03821660009081526009602052604090205460ff16155b801561289457506001600160a01b03831660009081526009602052604090205460ff16155b80156128ae5750602a546001600160a01b03838116911614155b80156128c257506001600160a01b03821615155b80156111de57506001600160a01b0383163014159392505050565b602d805460ff60a01b1916600160a01b179055601d54601c5461290091906138fc565b15612c5f5760006002601d54601c5461291991906138fc565b601c546129269085613949565b612930919061397e565b61293a919061397e565b9050600061294882846139eb565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612982576129826139d5565b6001600160a01b03928316602091820292909201810191909152602754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156129db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ff9190613c9c565b81600181518110612a1257612a126139d5565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815291169063791ac94790612a58908590600090869030904290600401613d22565b600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b5050505060006002601d54601c54612a9e91906138fc565b601c54612aab9047613949565b612ab5919061397e565b612abf919061397e565b90508315612b8f57602754602c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592612b079230928b92600092839216904290600401613cb9565b60606040518083038185885af1158015612b25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b4a9190613cf4565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000612b9b85876139eb565b1115612c5a57601f546021544791600091612bb6908461397e565b612bc09190613949565b9050600060205460215484612bd5919061397e565b612bdf9190613949565b602c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612c1a573d6000803e3d6000fd5b50602d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612c55573d6000803e3d6000fd5b505050505b505050505b50602d805460ff60a01b19169055565b603454600090610100900460ff16612d0357612c8b8585613173565b603454610100900460ff16158015612ca85750612ca8858561281d565b15612d035760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610b11565b6000612d1186868686613281565b60808101516001600160a01b038816600090815260016020526040902054919250612d3b916139eb565b6001600160a01b0380881660009081526001602052604080822093909355606084015191881681529190912054612d7291906138fc565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff168015612dc657506001600160a01b03851660009081526007602052604090205460ff16155b15612e0d576001600160a01b038616600090815260026020526040902054612def9085906139eb565b6001600160a01b038716600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff16158015612e4e57506001600160a01b03851660009081526007602052604090205460ff165b15612e965780516001600160a01b038616600090815260026020526040902054612e7891906138fc565b6001600160a01b038616600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff168015612ed657506001600160a01b03851660009081526007602052604090205460ff165b15612f4d576001600160a01b038616600090815260026020526040902054612eff9085906139eb565b6001600160a01b0380881660009081526002602052604080822093909355835191881681529190912054612f3391906138fc565b6001600160a01b0386166000908152600260205260409020555b604081015115612f6557612f6586826040015161346f565b60008160a001511180612f7c575060008160200151115b15612f9357612f938160a00151826020015161353b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360000151604051612fdc91815260200190565b60405180910390a350600195945050505050565b6025546024546000918291825b6008548110156131425782600160006008848154811061301f5761301f6139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061308a5750816002600060088481548110613063576130636139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156130a057602554602454945094505050509091565b60016000600883815481106130b7576130b76139d5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546130e690846139eb565b925060026000600883815481106130ff576130ff6139d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461312e90836139eb565b91508061313a81613a14565b915050612ffd565b50602454602554613153919061397e565b82101561316a576025546024549350935050509091565b90939092509050565b603454610100900460ff16156131cb5760405162461bcd60e51b815260206004820152601b60248201527f4c697175696469747920697320616c72656164792061646465642e00000000006044820152606401610b11565b6131d5828261281d565b1580156131ef57506028546001600160a01b038281169116145b15610fe7576001600160a01b03821660009081526009602052604090819020805460ff191660019081179091556034805461ff00191661010017905542603655602d805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599161327591901515815260200190565b60405180910390a15050565b6132ba6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6132f36040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006132fd6127fa565b90506133098186613949565b60808301528315613419576001600160a01b03861660009081526003602052604090205460ff161561334c57601454600d55601354600e55601554600f55613397565b6001600160a01b03871660009081526003602052604090205460ff161561338457601054600d55601154600e55601254600f55613397565b601654600d55601754600e55601854600f555b601e54600d546133a79087613949565b6133b1919061397e565b6020830152601e54600f54600e546133c991906138fc565b6133d39087613949565b6133dd919061397e565b6040830181905260208301516133f391906138fc565b6133fd90866139eb565b8252602082015161340f908290613949565b60a0830152613432565b6000602083018190526040830181905285835260a08301525b8082604001516134429190613949565b8260a0015161345191906138fc565b826080015161346091906139eb565b60608301525095945050505050565b60006134796127fa565b905060006134878284613949565b306000908152600160205260409020549091506134a59082906138fc565b3060009081526001602090815260408083209390935560079052205460ff16156134f557306000908152600260205260409020546134e49084906138fc565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b8160255461354991906139eb565b60255560265461355a9082906138fc565b6026555050565b60008060006060848603121561357657600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156135ba5785810183015185820160400152820161359e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611de957600080fd5b6000806040838503121561360357600080fd5b823561360e816135db565b946020939093013593505050565b6000806040838503121561362f57600080fd5b50508035926020909101359150565b8035801515811461364e57600080fd5b919050565b6000806040838503121561366657600080fd5b8235613671816135db565b915061367f6020840161363e565b90509250929050565b60008060006060848603121561369d57600080fd5b83356136a8816135db565b925060208401356136b8816135db565b929592945050506040919091013590565b6000602082840312156136db57600080fd5b5035919050565b6000602082840312156136f457600080fd5b81356111de816135db565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261372657600080fd5b813567ffffffffffffffff80821115613741576137416136ff565b604051601f8301601f19908116603f01168101908282118183101715613769576137696136ff565b8160405283815286602085880101111561378257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156137b857600080fd5b84356137c3816135db565b935060208501356137d3816135db565b9250604085013567ffffffffffffffff808211156137f057600080fd5b6137fc88838901613715565b9350606087013591508082111561381257600080fd5b5061381f87828801613715565b91505092959194509250565b60006020828403121561383d57600080fd5b6111de8261363e565b6000806040838503121561385957600080fd5b8235613864816135db565b91506020830135613874816135db565b809150509250929050565b6000806000806080858703121561389557600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1957610c196138e6565b600181811c9082168061392357607f821691505b60208210810361394357634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615613963576139636138e6565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261398d5761398d613968565b500490565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610c1957610c196138e6565b634e487b7160e01b600052603160045260246000fd5b600060018201613a2657613a266138e6565b5060010190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b601f821115610fe557600081815260208120601f850160051c81016020861015613ab15750805b601f850160051c820191505b81811015613ad057828155600101613abd565b505050505050565b815167ffffffffffffffff811115613af257613af26136ff565b613b0681613b00845461390f565b84613a8a565b602080601f831160018114613b3b5760008415613b235750858301515b600019600386901b1c1916600185901b178555613ad0565b600085815260208120601f198616915b82811015613b6a57888601518255948401946001909101908401613b4b565b5085821015613b885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115613bd3578160001904821115613bb957613bb96138e6565b80851615613bc657918102915b93841c9390800290613b9d565b509250929050565b600082613bea57506001610c19565b81613bf757506000610c19565b8160018114613c0d5760028114613c1757613c33565b6001915050610c19565b60ff841115613c2857613c286138e6565b50506001821b610c19565b5060208310610133831016604e8410600b8410161715613c56575081810a610c19565b613c608383613b98565b8060001904821115613c7457613c746138e6565b029392505050565b60006111de8383613bdb565b600082613c9757613c97613968565b500690565b600060208284031215613cae57600080fd5b81516111de816135db565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613d0957600080fd5b8351925060208401519150604084015190509250925092565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d725784516001600160a01b031683529383019391830191600101613d4d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cc7617c0bf5e3f6b49b125af58a41655b9932b3b1aa2b122220a04a46eab009664736f6c63430008100033
Deployed Bytecode
0x6080604052600436106103a65760003560e01c80636612e66f116101e7578063a457c2d71161010d578063d8742467116100a0578063eafb5a3c1161006f578063eafb5a3c14610a71578063f17b67fa14610a91578063fb78680d14610ab1578063fb8bc55f14610ad157600080fd5b8063d8742467146109df578063d9e66460146109f5578063da37be2414610a15578063dd62ed3e14610a2b57600080fd5b8063bbd39ab2116100dc578063bbd39ab21461097e578063be5a463014610993578063c3183e7e146109a9578063c49b9a80146109bf57600080fd5b8063a457c2d714610908578063a9059cbb14610928578063b1263c9114610948578063b46def551461096857600080fd5b806380c581d1116101855780638da5cb5b116101545780638da5cb5b146108a1578063901b94c0146108bf57806395d89b41146108d45780639a09a61b146108e957600080fd5b806380c581d1146108285780638870b3c01461084857806388f8202014610868578063893d20e8146108a157600080fd5b80636aa7a071116101c15780636aa7a071146107c75780636ed515e6146107dd57806370a08231146107f3578063715018a61461081357600080fd5b80636612e66f146107715780636639dd9314610791578063668357da146107b157600080fd5b8063313ce567116102cc5780634a74bb021161026a57806358a142b91161023957806358a142b91461070f57806358fa63ca146107255780635b8e4046146107455780635e0f65841461075b57600080fd5b80634a74bb02146106985780634f6e7bb9146106b95780634fb2e45d146106cf578063571ac8b0146106ef57600080fd5b80633895aa25116102a65780633895aa2514610622578063395093511461063857806343a82b1f14610658578063452ed4f11461067857600080fd5b8063313ce567146105b157806337a9314f146105d3578063384f6b511461060c57600080fd5b8063111be3161161034457806323b872dd1161031357806323b872dd1461053157806328825ff1146105515780632b962ec6146105715780632d8381191461059157600080fd5b8063111be316146104c757806313114a9d146104e757806313e46192146104fc57806318160ddd1461051c57600080fd5b80630758d924116103805780630758d92414610433578063095ea7b3146104535780630c2cdb0e146104835780630cdc8226146104a357600080fd5b806303fd2a45146103b2578063050a9942146103ef57806306fdde031461041157600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b50602a546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103fb57600080fd5b5061040f61040a366004613561565b610ae7565b005b34801561041d57600080fd5b50610426610b76565b6040516103e6919061358d565b34801561043f57600080fd5b506027546103d2906001600160a01b031681565b34801561045f57600080fd5b5061047361046e3660046135f0565b610c08565b60405190151581526020016103e6565b34801561048f57600080fd5b5061040f61049e36600461361c565b610c1f565b3480156104af57600080fd5b506104b9600f5481565b6040519081526020016103e6565b3480156104d357600080fd5b5061040f6104e2366004613561565b610cbc565b3480156104f357600080fd5b506026546104b9565b34801561050857600080fd5b5061040f610517366004613653565b610cf4565b34801561052857600080fd5b506024546104b9565b34801561053d57600080fd5b5061047361054c366004613688565b610feb565b34801561055d57600080fd5b5061040f61056c366004613561565b61103e565b34801561057d57600080fd5b5061040f61058c36600461361c565b6110c4565b34801561059d57600080fd5b506104b96105ac3660046136c9565b611161565b3480156105bd57600080fd5b5060225460405160ff90911681526020016103e6565b3480156105df57600080fd5b506104736105ee3660046136e2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561061857600080fd5b506104b9601c5481565b34801561062e57600080fd5b506104b9600e5481565b34801561064457600080fd5b506104736106533660046135f0565b6111e5565b34801561066457600080fd5b5061040f610673366004613561565b61121c565b34801561068457600080fd5b506028546103d2906001600160a01b031681565b3480156106a457600080fd5b50602d5461047390600160a81b900460ff1681565b3480156106c557600080fd5b506104b9601d5481565b3480156106db57600080fd5b5061040f6106ea3660046136e2565b6112a2565b3480156106fb57600080fd5b5061047361070a3660046136e2565b611443565b34801561071b57600080fd5b506104b9602f5481565b34801561073157600080fd5b50602b546103d2906001600160a01b031681565b34801561075157600080fd5b506104b960115481565b34801561076757600080fd5b506104b960315481565b34801561077d57600080fd5b5061040f61078c366004613653565b611451565b34801561079d57600080fd5b5061040f6107ac36600461361c565b6114a6565b3480156107bd57600080fd5b506104b9600d5481565b3480156107d357600080fd5b506104b960145481565b3480156107e957600080fd5b506104b960155481565b3480156107ff57600080fd5b506104b961080e3660046136e2565b6114db565b34801561081f57600080fd5b5061040f61153a565b34801561083457600080fd5b5061040f610843366004613653565b6115b9565b34801561085457600080fd5b5061040f6108633660046137a2565b6116a1565b34801561087457600080fd5b506104736108833660046136e2565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108ad57600080fd5b506000546001600160a01b03166103d2565b3480156108cb57600080fd5b5061040f611bd2565b3480156108e057600080fd5b50610426611c93565b3480156108f557600080fd5b5060345461047390610100900460ff1681565b34801561091457600080fd5b506104736109233660046135f0565b611ca2565b34801561093457600080fd5b506104736109433660046135f0565b611cd9565b34801561095457600080fd5b5061040f6109633660046136e2565b611ce6565b34801561097457600080fd5b506104b960175481565b34801561098a57600080fd5b5061040f611d85565b34801561099f57600080fd5b506104b960125481565b3480156109b557600080fd5b506104b960165481565b3480156109cb57600080fd5b5061040f6109da36600461382b565b611dec565b3480156109eb57600080fd5b506104b960105481565b348015610a0157600080fd5b506029546103d2906001600160a01b031681565b348015610a2157600080fd5b506104b960185481565b348015610a3757600080fd5b506104b9610a46366004613846565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b5061040f610a8c3660046136e2565b611e6e565b348015610a9d57600080fd5b5061040f610aac3660046136e2565b61219e565b348015610abd57600080fd5b5061040f610acc36600461387f565b61223d565b348015610add57600080fd5b506104b960135481565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610b11906138b1565b60405180910390fd5b6019548311158015610b2e5750601a548211155b8015610b3c5750601b548111155b610b4557600080fd5b61132481610b5384866138fc565b610b5d91906138fc565b1115610b6857600080fd5b601492909255601355601555565b6060600b8054610b859061390f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb19061390f565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c153384846122a6565b5060015b92915050565b6000546001600160a01b03163314610c495760405162461bcd60e51b8152600401610b11906138b1565b60008183602454610c5a9190613949565b610c64919061397e565b90506103e8602454610c76919061397e565b811015610c955760405162461bcd60e51b8152600401610b1190613992565b602e819055600a548290610caa908590613949565b610cb4919061397e565b602f55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610b11906138b1565b601f92909255602055602155565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152600401610b11906138b1565b801515600103610e52576001600160a01b03821660009081526007602052604090205460ff1615610d915760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b11565b6001600160a01b03821660009081526001602052604090205415610deb576001600160a01b038216600090815260016020526040902054610dd190611161565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b801515600003610fe7576001600160a01b03821660009081526007602052604090205460ff16610ec45760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b11565b60005b600854811015610fe557826001600160a01b031660088281548110610eee57610eee6139d5565b6000918252602090912001546001600160a01b031603610fd35760088054610f18906001906139eb565b81548110610f2857610f286139d5565b600091825260209091200154600880546001600160a01b039092169183908110610f5457610f546139d5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610fac57610fac6139fe565b600082815260209020810160001990810180546001600160a01b0319169055019055610fe5565b80610fdd81613a14565b915050610ec7565b505b5050565b6000610ff88484846123ca565b506001600160a01b03841660009081526005602090815260408083203380855292529091205461103491869161102f9086906139eb565b6122a6565b5060019392505050565b6000546001600160a01b031633146110685760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561107c5750601a548211155b801561108a5750601b548111155b61109357600080fd5b611324816110a184866138fc565b6110ab91906138fc565b11156110b657600080fd5b601092909255601155601255565b6000546001600160a01b031633146110ee5760405162461bcd60e51b8152600401610b11906138b1565b600081836024546110ff9190613949565b611109919061397e565b90506103e860245461111b919061397e565b81101561113a5760405162461bcd60e51b8152600401610b1190613992565b6030819055600a54829061114f908590613949565b611159919061397e565b603155505050565b60006025548211156111c85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b11565b60006111d26127fa565b90506111de818461397e565b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c1591859061102f9086906138fc565b6000546001600160a01b031633146112465760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561125a5750601a548211155b80156112685750601b548111155b61127157600080fd5b6113248161127f84866138fc565b61128991906138fc565b111561129457600080fd5b601692909255601755601855565b6000546001600160a01b031633146112cc5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b0381166112f25760405162461bcd60e51b8152600401610b1190613a2d565b602a546001600160a01b03908116908216036113205760405162461bcd60e51b8152600401610b1190613a2d565b60008054611339916001600160a01b0390911690611451565b611344816001611451565b61134f816001610cf4565b600054602c546001600160a01b0391821691160361138357602c80546001600160a01b0319166001600160a01b0383161790555b600054611398906001600160a01b03166114db565b600080546001600160a01b0390811682526005602090815260408084208684168552909152822092909255805490916113d191166114db565b11156113f8576000546113f6906001600160a01b0316826113f1826114db565b6123ca565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610c1982600019610c08565b6000546001600160a01b0316331461147b5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114d05760405162461bcd60e51b8152600401610b11906138b1565b601c91909155601d55565b6001600160a01b03811660009081526007602052604081205460ff161561151857506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c1990611161565b6000546001600160a01b031633146115645760405162461bcd60e51b8152600401610b11906138b1565b6000805461157d916001600160a01b0390911690611451565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633146115e35760405162461bcd60e51b8152600401610b11906138b1565b80151560000361160f57506001600160a01b03166000908152600360205260409020805460ff19169055565b600454156116765762093a806004544261162991906139eb565b116116765760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b11565b6001600160a01b0382166000908152600360205260409020805460ff19166001179055426004555050565b6000546001600160a01b031633146116cb5760405162461bcd60e51b8152600401610b11906138b1565b603a5460ff16156116db57600080fd5b602d80546001600160a01b03199081166001600160a01b03878116918217909355602c8054909216868416178255600090815260066020526040808220805460ff19908116600190811790925593549094168252902080549091169091179055600b6117478382613ad8565b50600c6117548282613ad8565b5062989680600a556022805460ff1916601290811790915560235560235461177d90600a613c7c565b600a5461178a9190613949565b602481905561179b90600019613c88565b6117a7906000196139eb565b602555602954602780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190613c9c565b6001600160a01b031663c9c65396602760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190613c9c565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190613c9c565b602880546001600160a01b0319166001600160a01b039283169081179091556000908152600360209081526040808320805460ff19166001179055308352600582528083206027549094168352929052206000199055602454620186a090611989906103e8613949565b611993919061397e565b602e55600a54620186a0906119aa906101f4613949565b6119b4919061397e565b602f556024546103e8906119c990600a613949565b6119d3919061397e565b603055600a80546103e8916119e89190613949565b6119f2919061397e565b60315560245461271090611a07906005613949565b611a11919061397e565b60325560245461271090611a26906019613949565b611a30919061397e565b603355602954611a4b906001600160a01b0316600019610c08565b50603a805460ff19166001908117909155602554906000611a746000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611aa06000546001600160a01b031690565b602b546024546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3602754611b039030906001600160a01b03166000196122a6565b611b2e611b186000546001600160a01b031690565b306113f161080e6000546001600160a01b031690565b506027546001600160a01b031663f305d7194730611b4b816114db565b600080611b606000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611b8296959493929190613cb9565b60606040518083038185885af1158015611ba0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bc59190613cf4565b5050436039555050505050565b6000546001600160a01b03163314611bfc5760405162461bcd60e51b8152600401610b11906138b1565b60345460ff1615611c4f5760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720697320616c726561647920656e61626c65642100000000006044820152606401610b11565b611c5a306001610cf4565b602854611c71906001600160a01b03166001610cf4565b6034805460ff19166001179055602d805460ff60a81b1916600160a81b179055565b6060600c8054610b859061390f565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c1591859061102f9086906139eb565b60006110343384846123ca565b6000546001600160a01b03163314611d105760405162461bcd60e51b8152600401610b11906138b1565b602c546001600160a01b03808316911603611d635760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611daf5760405162461bcd60e51b8152600401610b11906138b1565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611de9573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611e165760405162461bcd60e51b8152600401610b11906138b1565b602d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6390831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611e985760405162461bcd60e51b8152600401610b11906138b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f019190613c9c565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190613c9c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190613c9c565b90506001600160a01b03811661215a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190613c9c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190613c9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121359190613c9c565b602880546001600160a01b0319166001600160a01b0392909216919091179055612176565b602880546001600160a01b0319166001600160a01b0383161790555b602780546001600160a01b0319166001600160a01b038416179055610fe530846000196122a6565b6000546001600160a01b031633146121c85760405162461bcd60e51b8152600401610b11906138b1565b602d546001600160a01b0380831691160361221b5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122675760405162461bcd60e51b8152600401610b11906138b1565b82846024546122769190613949565b612280919061397e565b6032556024548190612293908490613949565b61229d919061397e565b60335550505050565b6001600160a01b0383166123085760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b11565b6001600160a01b0382166123695760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b11565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166124305760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b11565b6001600160a01b0383166124925760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b11565b600082116124f45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b11565b6124fe848461281d565b156127225760345460ff166125555760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b11565b60375460ff1615612619576001600160a01b03841660009081526003602052604090205460ff16156125cf5761258c4360016138fc565b6001600160a01b038416600090815260386020526040902054036125af57600080fd5b6001600160a01b0383166000908152603860205260409020439055612619565b6125da4360016138fc565b6001600160a01b038516600090815260386020526040902054036125fd57600080fd5b6001600160a01b03841660009081526038602052604090204390555b602e548211156126755760405162461bcd60e51b815260206004820152602160248201527f5472616e73666572206578636565647320746865206d61785478416d6f756e746044820152601760f91b6064820152608401610b11565b6029546001600160a01b038481169116148015906126ac57506001600160a01b03831660009081526003602052604090205460ff16155b1561272257603054826126be856114db565b6126c891906138fc565b11156127225760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572206578636565647320746865206d617857616c6c657453696044820152623d329760e91b6064820152608401610b11565b6001600160a01b03841660009081526006602052604090205460019060ff168061276457506001600160a01b03841660009081526006602052604090205460ff165b1561276d575060005b6001600160a01b03841660009081526003602052604090205460ff16156127e557602d54600160a01b900460ff161580156127b15750602d54600160a81b900460ff165b156127e55760006127c1306114db565b905060325481106127e35760335481106127da57506033545b6127e3816128dd565b505b6127f185858584612c6f565b95945050505050565b6000806000612807612ff0565b9092509050612816818361397e565b9250505090565b600080546001600160a01b0384811691161480159061284a57506000546001600160a01b03838116911614155b801561286f57506001600160a01b03821660009081526009602052604090205460ff16155b801561289457506001600160a01b03831660009081526009602052604090205460ff16155b80156128ae5750602a546001600160a01b03838116911614155b80156128c257506001600160a01b03821615155b80156111de57506001600160a01b0383163014159392505050565b602d805460ff60a01b1916600160a01b179055601d54601c5461290091906138fc565b15612c5f5760006002601d54601c5461291991906138fc565b601c546129269085613949565b612930919061397e565b61293a919061397e565b9050600061294882846139eb565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612982576129826139d5565b6001600160a01b03928316602091820292909201810191909152602754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156129db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ff9190613c9c565b81600181518110612a1257612a126139d5565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815291169063791ac94790612a58908590600090869030904290600401613d22565b600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b5050505060006002601d54601c54612a9e91906138fc565b601c54612aab9047613949565b612ab5919061397e565b612abf919061397e565b90508315612b8f57602754602c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592612b079230928b92600092839216904290600401613cb9565b60606040518083038185885af1158015612b25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b4a9190613cf4565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000612b9b85876139eb565b1115612c5a57601f546021544791600091612bb6908461397e565b612bc09190613949565b9050600060205460215484612bd5919061397e565b612bdf9190613949565b602c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612c1a573d6000803e3d6000fd5b50602d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612c55573d6000803e3d6000fd5b505050505b505050505b50602d805460ff60a01b19169055565b603454600090610100900460ff16612d0357612c8b8585613173565b603454610100900460ff16158015612ca85750612ca8858561281d565b15612d035760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610b11565b6000612d1186868686613281565b60808101516001600160a01b038816600090815260016020526040902054919250612d3b916139eb565b6001600160a01b0380881660009081526001602052604080822093909355606084015191881681529190912054612d7291906138fc565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff168015612dc657506001600160a01b03851660009081526007602052604090205460ff16155b15612e0d576001600160a01b038616600090815260026020526040902054612def9085906139eb565b6001600160a01b038716600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff16158015612e4e57506001600160a01b03851660009081526007602052604090205460ff165b15612e965780516001600160a01b038616600090815260026020526040902054612e7891906138fc565b6001600160a01b038616600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff168015612ed657506001600160a01b03851660009081526007602052604090205460ff165b15612f4d576001600160a01b038616600090815260026020526040902054612eff9085906139eb565b6001600160a01b0380881660009081526002602052604080822093909355835191881681529190912054612f3391906138fc565b6001600160a01b0386166000908152600260205260409020555b604081015115612f6557612f6586826040015161346f565b60008160a001511180612f7c575060008160200151115b15612f9357612f938160a00151826020015161353b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360000151604051612fdc91815260200190565b60405180910390a350600195945050505050565b6025546024546000918291825b6008548110156131425782600160006008848154811061301f5761301f6139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061308a5750816002600060088481548110613063576130636139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156130a057602554602454945094505050509091565b60016000600883815481106130b7576130b76139d5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546130e690846139eb565b925060026000600883815481106130ff576130ff6139d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461312e90836139eb565b91508061313a81613a14565b915050612ffd565b50602454602554613153919061397e565b82101561316a576025546024549350935050509091565b90939092509050565b603454610100900460ff16156131cb5760405162461bcd60e51b815260206004820152601b60248201527f4c697175696469747920697320616c72656164792061646465642e00000000006044820152606401610b11565b6131d5828261281d565b1580156131ef57506028546001600160a01b038281169116145b15610fe7576001600160a01b03821660009081526009602052604090819020805460ff191660019081179091556034805461ff00191661010017905542603655602d805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599161327591901515815260200190565b60405180910390a15050565b6132ba6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6132f36040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006132fd6127fa565b90506133098186613949565b60808301528315613419576001600160a01b03861660009081526003602052604090205460ff161561334c57601454600d55601354600e55601554600f55613397565b6001600160a01b03871660009081526003602052604090205460ff161561338457601054600d55601154600e55601254600f55613397565b601654600d55601754600e55601854600f555b601e54600d546133a79087613949565b6133b1919061397e565b6020830152601e54600f54600e546133c991906138fc565b6133d39087613949565b6133dd919061397e565b6040830181905260208301516133f391906138fc565b6133fd90866139eb565b8252602082015161340f908290613949565b60a0830152613432565b6000602083018190526040830181905285835260a08301525b8082604001516134429190613949565b8260a0015161345191906138fc565b826080015161346091906139eb565b60608301525095945050505050565b60006134796127fa565b905060006134878284613949565b306000908152600160205260409020549091506134a59082906138fc565b3060009081526001602090815260408083209390935560079052205460ff16156134f557306000908152600260205260409020546134e49084906138fc565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b8160255461354991906139eb565b60255560265461355a9082906138fc565b6026555050565b60008060006060848603121561357657600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156135ba5785810183015185820160400152820161359e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611de957600080fd5b6000806040838503121561360357600080fd5b823561360e816135db565b946020939093013593505050565b6000806040838503121561362f57600080fd5b50508035926020909101359150565b8035801515811461364e57600080fd5b919050565b6000806040838503121561366657600080fd5b8235613671816135db565b915061367f6020840161363e565b90509250929050565b60008060006060848603121561369d57600080fd5b83356136a8816135db565b925060208401356136b8816135db565b929592945050506040919091013590565b6000602082840312156136db57600080fd5b5035919050565b6000602082840312156136f457600080fd5b81356111de816135db565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261372657600080fd5b813567ffffffffffffffff80821115613741576137416136ff565b604051601f8301601f19908116603f01168101908282118183101715613769576137696136ff565b8160405283815286602085880101111561378257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156137b857600080fd5b84356137c3816135db565b935060208501356137d3816135db565b9250604085013567ffffffffffffffff808211156137f057600080fd5b6137fc88838901613715565b9350606087013591508082111561381257600080fd5b5061381f87828801613715565b91505092959194509250565b60006020828403121561383d57600080fd5b6111de8261363e565b6000806040838503121561385957600080fd5b8235613864816135db565b91506020830135613874816135db565b809150509250929050565b6000806000806080858703121561389557600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1957610c196138e6565b600181811c9082168061392357607f821691505b60208210810361394357634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615613963576139636138e6565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261398d5761398d613968565b500490565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610c1957610c196138e6565b634e487b7160e01b600052603160045260246000fd5b600060018201613a2657613a266138e6565b5060010190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b601f821115610fe557600081815260208120601f850160051c81016020861015613ab15750805b601f850160051c820191505b81811015613ad057828155600101613abd565b505050505050565b815167ffffffffffffffff811115613af257613af26136ff565b613b0681613b00845461390f565b84613a8a565b602080601f831160018114613b3b5760008415613b235750858301515b600019600386901b1c1916600185901b178555613ad0565b600085815260208120601f198616915b82811015613b6a57888601518255948401946001909101908401613b4b565b5085821015613b885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115613bd3578160001904821115613bb957613bb96138e6565b80851615613bc657918102915b93841c9390800290613b9d565b509250929050565b600082613bea57506001610c19565b81613bf757506000610c19565b8160018114613c0d5760028114613c1757613c33565b6001915050610c19565b60ff841115613c2857613c286138e6565b50506001821b610c19565b5060208310610133831016604e8410600b8410161715613c56575081810a610c19565b613c608383613b98565b8060001904821115613c7457613c746138e6565b029392505050565b60006111de8383613bdb565b600082613c9757613c97613968565b500690565b600060208284031215613cae57600080fd5b81516111de816135db565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613d0957600080fd5b8351925060208401519150604084015190509250925092565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d725784516001600160a01b031683529383019391830191600101613d4d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cc7617c0bf5e3f6b49b125af58a41655b9932b3b1aa2b122220a04a46eab009664736f6c63430008100033
Deployed Bytecode Sourcemap
6046:22322:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7626:64;;;;;;;;;;-1:-1:-1;7626:64:0;;;;-1:-1:-1;;;;;7626:64:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7626:64:0;;;;;;;;16104:373;;;;;;;;;;-1:-1:-1;16104:373:0;;;;;:::i;:::-;;:::i;:::-;;12920:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7517:35::-;;;;;;;;;;-1:-1:-1;7517:35:0;;;;-1:-1:-1;;;;;7517:35:0;;;13566:161;;;;;;;;;;-1:-1:-1;13566:161:0;;;;;:::i;:::-;;:::i;:::-;;;1951:14:1;;1944:22;1926:41;;1914:2;1899:18;13566:161:0;1786:187:1;17169:283:0;;;;;;;;;;-1:-1:-1;17169:283:0;;;;;:::i;:::-;;:::i;6699:26::-;;;;;;;;;;;;;;;;;;;2377:25:1;;;2365:2;2350:18;6699:26:0;2231:177:1;16866:139:0;;;;;;;;;;-1:-1:-1;16866:139:0;;;;;:::i;:::-;;:::i;19565:87::-;;;;;;;;;;-1:-1:-1;19634:10:0;;19565:87;;18695:862;;;;;;;;;;-1:-1:-1;18695:862:0;;;;;:::i;:::-;;:::i;12676:83::-;;;;;;;;;;-1:-1:-1;12749:7:0;;12676:83;;13863:252;;;;;;;;;;-1:-1:-1;13863:252:0;;;;;:::i;:::-;;:::i;15723:373::-;;;;;;;;;;-1:-1:-1;15723:373:0;;;;;:::i;:::-;;:::i;17460:248::-;;;;;;;;;;-1:-1:-1;17460:248:0;;;;;:::i;:::-;;:::i;19887:250::-;;;;;;;;;;-1:-1:-1;19887:250:0;;;;;:::i;:::-;;:::i;12766:71::-;;;;;;;;;;-1:-1:-1;12825:9:0;;12766:71;;12825:9;;;;3686:36:1;;3674:2;3659:18;12766:71:0;3544:184:1;15618:97:0;;;;;;;;;;-1:-1:-1;15618:97:0;;;;;:::i;:::-;-1:-1:-1;;;;;15693:14:0;15669:4;15693:14;;;:5;:14;;;;;;;;;15618:97;7095:34;;;;;;;;;;;;;;;;6674:23;;;;;;;;;;;;;;;;14123:208;;;;;;;;;;-1:-1:-1;14123:208:0;;;;;:::i;:::-;;:::i;16485:373::-;;;;;;;;;;-1:-1:-1;16485:373:0;;;;;:::i;:::-;;:::i;7560:21::-;;;;;;;;;;-1:-1:-1;7560:21:0;;;;-1:-1:-1;;;;;7560:21:0;;;7879:41;;;;;;;;;;-1:-1:-1;7879:41:0;;;;-1:-1:-1;;;7879:41:0;;;;;;7136:25;;;;;;;;;;;;;;;;11699:767;;;;;;;;;;-1:-1:-1;11699:767:0;;;;;:::i;:::-;;:::i;13735:120::-;;;;;;;;;;-1:-1:-1;13735:120:0;;;;;:::i;:::-;;:::i;7956:20::-;;;;;;;;;;;;;;;;7698:64;;;;;;;;;;-1:-1:-1;7698:64:0;;;;-1:-1:-1;;;;;7698:64:0;;;6762:27;;;;;;;;;;;;;;;;8011:20;;;;;;;;;;;;;;;;18568:119;;;;;;;;;;-1:-1:-1;18568:119:0;;;;;:::i;:::-;;:::i;17013:148::-;;;;;;;;;;-1:-1:-1;17013:148:0;;;;;:::i;:::-;;:::i;6649:23::-;;;;;;;;;;;;;;;;6851:24;;;;;;;;;;;;;;;;6877:27;;;;;;;;;;;;;;;;13206:184;;;;;;;;;;-1:-1:-1;13206:184:0;;;;;:::i;:::-;;:::i;12474:194::-;;;;;;;;;;;;;:::i;15111:379::-;;;;;;;;;;-1:-1:-1;15111:379:0;;;;;:::i;:::-;;:::i;9815:1789::-;;;;;;;;;;-1:-1:-1;9815:1789:0;;;;;:::i;:::-;;:::i;15498:112::-;;;;;;;;;;-1:-1:-1;15498:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;15590:12:0;15566:4;15590:12;;;:3;:12;;;;;;;;;15498:112;12995:71;;;;;;;;;;-1:-1:-1;13038:7:0;11677:6;-1:-1:-1;;;;;11677:6:0;12995:71;;24050:261;;;;;;;;;;;;;:::i;12843:70::-;;;;;;;;;;;;;:::i;8133:36::-;;;;;;;;;;-1:-1:-1;8133:36:0;;;;;;;;;;;14339:218;;;;;;;;;;-1:-1:-1;14339:218:0;;;;;:::i;:::-;;:::i;13398:160::-;;;;;;;;;;-1:-1:-1;13398:160:0;;;;;:::i;:::-;;:::i;18217:166::-;;;;;;;;;;-1:-1:-1;18217:166:0;;;;;:::i;:::-;;:::i;6938:24::-;;;;;;;;;;;;;;;;27836:114;;;;;;;;;;;;;:::i;6791:27::-;;;;;;;;;;;;;;;;6912:24;;;;;;;;;;;;;;;;18389:171;;;;;;;;;;-1:-1:-1;18389:171:0;;;;;:::i;:::-;;:::i;6733:27::-;;;;;;;;;;;;;;;;7589:29;;;;;;;;;;-1:-1:-1;7589:29:0;;;;-1:-1:-1;;;;;7589:29:0;;;6964:24;;;;;;;;;;;;;;;;13072:126;;;;;;;;;;-1:-1:-1;13072:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;13174:12:0;;;13156:7;13174:12;;;:4;:12;;;;;;;;:21;;;;;;;;;;;;;13072:126;14565:538;;;;;;;;;;-1:-1:-1;14565:538:0;;;;;:::i;:::-;;:::i;18013:196::-;;;;;;;;;;-1:-1:-1;18013:196:0;;;;;:::i;:::-;;:::i;17716:289::-;;;;;;;;;;-1:-1:-1;17716:289:0;;;;;:::i;:::-;;:::i;6825:24::-;;;;;;;;;;;;;;;;16104:373;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;;;;;;;;;16223:6:::1;;16212:7;:17;;:57;;;;;16263:6;;16250:9;:19;;16212:57;:97;;;;;16303:6;;16290:9;:19;;16212:97;16204:124;;;::::0;::::1;;16382:4;16369:9:::0;16347:19:::1;16357:9:::0;16347:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;16339:48;;;::::0;::::1;;16398:5;:15:::0;;;;16424:5:::1;:17:::0;16452:5:::1;:17:::0;16104:373::o;12920:69::-;12959:13;12983:3;12976:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12920:69;:::o;13566:161::-;13641:4;13658:39;187:10;13681:7;13690:6;13658:8;:39::i;:::-;-1:-1:-1;13715:4:0;13566:161;;;;;:::o;17169:283::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;17249:13:::1;17287:7;17276;17266;;:17;;;;:::i;:::-;17265:29;;;;:::i;:::-;17249:45;;17333:4;17323:7;;:14;;;;:::i;:::-;17313:5;:25;;17305:73;;;;-1:-1:-1::0;;;17305:73:0::1;;;;;;;:::i;:::-;17389:4;:12:::0;;;17421:2:::1;::::0;17437:7;;17421:12:::1;::::0;17426:7;;17421:12:::1;:::i;:::-;17420:24;;;;:::i;:::-;17412:5;:32:::0;-1:-1:-1;;;17169:283:0:o;16866:139::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;16951:3:::1;:8:::0;;;;16970:3:::1;:8:::0;16989:3:::1;:8:::0;16866:139::o;18695:862::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;18789:15;::::1;;18800:4;18789:15:::0;18785:765:::1;;-1:-1:-1::0;;;;;18830:12:0;::::1;;::::0;;;:3:::1;:12;::::0;;;;;::::1;;18829:13;18821:54;;;::::0;-1:-1:-1;;;18821:54:0;;8954:2:1;18821:54:0::1;::::0;::::1;8936:21:1::0;8993:2;8973:18;;;8966:30;9032;9012:18;;;9005:58;9080:18;;18821:54:0::1;8752:352:1::0;18821:54:0::1;-1:-1:-1::0;;;;;18893:13:0;::::1;18909:1;18893:13:::0;;;:4:::1;:13;::::0;;;;;:17;18890:107:::1;;-1:-1:-1::0;;;;;18967:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;18947:34:::1;::::0;:19:::1;:34::i;:::-;-1:-1:-1::0;;;;;18931:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;:50;18890:107:::1;-1:-1:-1::0;;;;;;19011:12:0::1;;::::0;;;:3:::1;:12;::::0;;;;:19;;-1:-1:-1;;19011:19:0::1;19026:4;19011:19:::0;;::::1;::::0;;;19045:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;19045:23:0::1;::::0;;::::1;::::0;;18695:862::o;18785:765::-:1;19090:16:::0;::::1;;19101:5;19090:16:::0;19086:464:::1;;-1:-1:-1::0;;;;;19131:12:0;::::1;;::::0;;;:3:::1;:12;::::0;;;;;::::1;;19123:53;;;::::0;-1:-1:-1;;;19123:53:0;;9311:2:1;19123:53:0::1;::::0;::::1;9293:21:1::0;9350:2;9330:18;;;9323:30;9389;9369:18;;;9362:58;9437:18;;19123:53:0::1;9109:352:1::0;19123:53:0::1;19196:9;19191:348;19215:9;:16:::0;19211:20;::::1;19191:348;;;19277:7;-1:-1:-1::0;;;;;19261:23:0::1;:9;19271:1;19261:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;19261:12:0::1;:23:::0;19257:267:::1;;19324:9;19334:16:::0;;:20:::1;::::0;19353:1:::1;::::0;19334:20:::1;:::i;:::-;19324:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;19309:9:::1;:12:::0;;-1:-1:-1;;;;;19324:31:0;;::::1;::::0;19319:1;;19309:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;19309:46:0::1;-1:-1:-1::0;;;;;19309:46:0;;::::1;;::::0;;19378:13;;::::1;::::0;;:4:::1;:13:::0;;;;;;:17;;;19418:3:::1;:12:::0;;;;:20;;-1:-1:-1;;19418:20:0::1;::::0;;19461:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;19461:15:0;;;;;-1:-1:-1;;;;;;19461:15:0::1;::::0;;;;;19499:5:::1;;19257:267;19233:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19191:348;;;;19086:464;18695:862:::0;;:::o;13863:252::-;13961:4;13978:29;13981:6;13989:9;14000:6;13978:2;:29::i;:::-;-1:-1:-1;;;;;;14049:12:0;;;;;;:4;:12;;;;;;;;187:10;14049:26;;;;;;;;;14018:67;;14027:6;;14049:35;;14078:6;;14049:35;:::i;:::-;14018:8;:67::i;:::-;-1:-1:-1;14103:4:0;13863:252;;;;;:::o;15723:373::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;15842:6:::1;;15831:7;:17;;:57;;;;;15882:6;;15869:9;:19;;15831:57;:97;;;;;15922:6;;15909:9;:19;;15831:97;15823:124;;;::::0;::::1;;16001:4;15988:9:::0;15966:19:::1;15976:9:::0;15966:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;15958:48;;;::::0;::::1;;16017:5;:15:::0;;;;16043:5:::1;:17:::0;16071:5:::1;:17:::0;15723:373::o;17460:248::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;17528:13:::1;17560:1;17555;17545:7;;:11;;;;:::i;:::-;17544:17;;;;:::i;:::-;17528:33;;17601:4;17591:7;;:14;;;;:::i;:::-;17581:5;:25;;17573:73;;;;-1:-1:-1::0;;;17573:73:0::1;;;;;;;:::i;:::-;17657:4;:12:::0;;;17689:2:::1;::::0;17699:1;;17689:6:::1;::::0;17694:1;;17689:6:::1;:::i;:::-;17688:12;;;;:::i;:::-;17680:5;:20:::0;-1:-1:-1;;;17460:248:0:o;19887:250::-;19953:7;19992;;19981;:18;;19973:73;;;;-1:-1:-1;;;19973:73:0;;10205:2:1;19973:73:0;;;10187:21:1;10244:2;10224:18;;;10217:30;10283:34;10263:18;;;10256:62;-1:-1:-1;;;10334:18:1;;;10327:40;10384:19;;19973:73:0;10003:406:1;19973:73:0;20057:19;20080:10;:8;:10::i;:::-;20057:33;-1:-1:-1;20108:21:0;20057:33;20108:7;:21;:::i;:::-;20101:28;19887:250;-1:-1:-1;;;19887:250:0:o;14123:208::-;187:10;14211:4;14260:18;;;:4;:18;;;;;;;;-1:-1:-1;;;;;14260:27:0;;;;;;;;;;14211:4;;14228:73;;14251:7;;14260:40;;14290:10;;14260:40;:::i;16485:373::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;16604:6:::1;;16593:7;:17;;:57;;;;;16644:6;;16631:9;:19;;16593:57;:97;;;;;16684:6;;16671:9;:19;;16593:97;16585:124;;;::::0;::::1;;16763:4;16750:9:::0;16728:19:::1;16738:9:::0;16728:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;16720:48;;;::::0;::::1;;16779:5;:15:::0;;;;16805:5:::1;:17:::0;16833:5:::1;:17:::0;16485:373::o;11699:767::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11780:22:0;::::1;11772:96;;;;-1:-1:-1::0;;;11772:96:0::1;;;;;;;:::i;:::-;11899:4;::::0;-1:-1:-1;;;;;11899:4:0;;::::1;11887:16:::0;;::::1;::::0;11879:90:::1;;;;-1:-1:-1::0;;;11879:90:0::1;;;;;;;:::i;:::-;11999:6;::::0;;11980:33:::1;::::0;-1:-1:-1;;;;;11999:6:0;;::::1;::::0;11980:18:::1;:33::i;:::-;12024:34;12043:8;12053:4;12024:18;:34::i;:::-;12069:37;12091:8;12101:4;12069:21;:37::i;:::-;12146:6;::::0;12131:3:::1;::::0;-1:-1:-1;;;;;12146:6:0;;::::1;12131:3:::0;::::1;:22:::0;12127:64:::1;;12168:3;:23:::0;;-1:-1:-1;;;;;;12168:23:0::1;-1:-1:-1::0;;;;;12168:23:0;::::1;;::::0;;12127:64:::1;12247:6;::::0;12237:17:::1;::::0;-1:-1:-1;;;;;12247:6:0::1;12237:9;:17::i;:::-;12212:12;12217:6:::0;;-1:-1:-1;;;;;12217:6:0;;::::1;12212:12:::0;;:4:::1;:12;::::0;;;;;;;:22;;::::1;::::0;;;;;;;:42;;;;12278:6;;12212:12;;12268:17:::1;::::0;12278:6:::1;12268:9;:17::i;:::-;:21;12265:92;;;12309:6;::::0;12306:39:::1;::::0;-1:-1:-1;;;;;12309:6:0::1;12317:8:::0;12327:17:::1;12309:6:::0;12327:9:::1;:17::i;:::-;12306:2;:39::i;:::-;;12265:92;12377:6;:17:::0;;-1:-1:-1;;;;;;12377:17:0::1;-1:-1:-1::0;;;;;12377:17:0;::::1;::::0;;::::1;::::0;;12410:38:::1;::::0;12377:17;;;;12410:38:::1;::::0;12377:6;12410:38:::1;11699:767:::0;:::o;13735:120::-;13788:4;13812:35;13820:7;-1:-1:-1;;13812:7:0;:35::i;18568:119::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18655:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24;;-1:-1:-1;;18655:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18568:119::o;17013:148::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;17100:15:::1;:27:::0;;;;17138:3:::1;:15:::0;17013:148::o;13206:184::-;-1:-1:-1;;;;;13296:12:0;;13272:7;13296:12;;;:3;:12;;;;;;;;13292:38;;;-1:-1:-1;;;;;;13317:13:0;;;;;:4;:13;;;;;;;13206:184::o;13292:38::-;-1:-1:-1;;;;;13368:13:0;;;;;;:4;:13;;;;;;13348:34;;:19;:34::i;12474:194::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;12560:6:::1;::::0;;12541:33:::1;::::0;-1:-1:-1;;;;;12560:6:0;;::::1;::::0;12541:18:::1;:33::i;:::-;12602:1;12585:19:::0;;-1:-1:-1;;;;;;12585:19:0::1;::::0;;12620:40:::1;::::0;12602:1;;12620:40:::1;::::0;12602:1;;12620:40:::1;12474:194::o:0;15111:379::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;15192:16;::::1;;15203:5;15192:16:::0;15188:295:::1;;-1:-1:-1::0;;;;;;15225:10:0::1;15238:5;15225:10:::0;;;:4:::1;:10;::::0;;;;:18;;-1:-1:-1;;15225:18:0::1;::::0;;18695:862::o;15188:295::-:1;15280:4;::::0;:9;15276:127:::1;;15343:7;15336:4;;15318:15;:22;;;;:::i;:::-;:32;15310:77;;;::::0;-1:-1:-1;;;15310:77:0;;11046:2:1;15310:77:0::1;::::0;::::1;11028:21:1::0;;;11065:18;;;11058:30;11124:34;11104:18;;;11097:62;11176:18;;15310:77:0::1;10844:356:1::0;15310:77:0::1;-1:-1:-1::0;;;;;15417:10:0;::::1;;::::0;;;:4:::1;:10;::::0;;;;:17;;-1:-1:-1;;15417:17:0::1;15430:4;15417:17;::::0;;15456:15:::1;15449:4;:22:::0;15111:379;;:::o;9815:1789::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;9978:3:::1;::::0;::::1;;9977:4;9969:13;;;::::0;::::1;;9995;:40:::0;;-1:-1:-1;;;;;;9995:40:0;;::::1;-1:-1:-1::0;;;;;9995:40:0;;::::1;::::0;;::::1;::::0;;;10046:3:::1;:20:::0;;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;10079:20:0;;;:5:::1;:20;::::0;;;;;:27;;-1:-1:-1;;10079:27:0;;::::1;-1:-1:-1::0;10079:27:0;;::::1;::::0;;;10123:3;;;;::::1;10117:10:::0;;;;:17;;;;::::1;::::0;;::::1;::::0;;10147:3:::1;:16;10153:10:::0;10147:3;:16:::1;:::i;:::-;-1:-1:-1::0;10174:2:0::1;:17;10179:12:::0;10174:2;:17:::1;:::i;:::-;-1:-1:-1::0;10207:10:0::1;10202:2;:15:::0;10266:9:::1;:14:::0;;-1:-1:-1;;10266:14:0::1;10278:2;10266:14:::0;;::::1;::::0;;;10295:12:::1;:24:::0;10446:12:::1;::::0;10442:16:::1;::::0;:2:::1;:16;:::i;:::-;10436:2;;:23;;;;:::i;:::-;10426:7;:33:::0;;;10488:13:::1;::::0;-1:-1:-1;;10488:13:0::1;:::i;:::-;10481:21;::::0;-1:-1:-1;;10481:21:0::1;:::i;:::-;10470:7;:33:::0;10547:14:::1;::::0;10516:9:::1;:46:::0;;-1:-1:-1;;;;;;10516:46:0::1;-1:-1:-1::0;;;;;10547:14:0;;::::1;10516:46:::0;;::::1;::::0;;10600:19:::1;::::0;;-1:-1:-1;;;10600:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;10547:14;10600:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10582:49:0::1;;10632:9;;;;;;;;;-1:-1:-1::0;;;;;10632:9:0::1;-1:-1:-1::0;;;;;10632:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10582:82;::::0;-1:-1:-1;;;;;;10582:82:0::1;::::0;;;;;;-1:-1:-1;;;;;15386:15:1;;;10582:82:0::1;::::0;::::1;15368:34:1::0;10658:4:0::1;15418:18:1::0;;;15411:43;15303:18;;10582:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10573:6;:91:::0;;-1:-1:-1;;;;;;10573:91:0::1;-1:-1:-1::0;;;;;10573:91:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10675:12:0;;;:4:::1;:12;::::0;;;;;;;:19;;-1:-1:-1;;10675:19:0::1;-1:-1:-1::0;10675:19:0::1;::::0;;10718:4:::1;10705:19:::0;;:4:::1;:19:::0;;;;;10733:9:::1;::::0;;;::::1;10705:39:::0;;;;;;-1:-1:-1;;10705:59:0;;10793:7:::1;::::0;10811:6:::1;::::0;10793:14:::1;::::0;10803:4:::1;10793:14;:::i;:::-;10792:25;;;;:::i;:::-;10785:4;:32:::0;10837:2:::1;::::0;10849:6:::1;::::0;10837:8:::1;::::0;10842:3:::1;10837:8;:::i;:::-;10836:19;;;;:::i;:::-;10828:5;:27:::0;10874:7:::1;::::0;10890:4:::1;::::0;10874:12:::1;::::0;10884:2:::1;10874:12;:::i;:::-;10873:21;;;;:::i;:::-;10866:4;:28:::0;10914:2:::1;::::0;;10925:4:::1;::::0;10914:7:::1;::::0;:2;:7:::1;:::i;:::-;10913:16;;;;:::i;:::-;10905:5;:24:::0;10957:7:::1;::::0;10972:5:::1;::::0;10957:11:::1;::::0;10967:1:::1;10957:11;:::i;:::-;10956:21;;;;:::i;:::-;10940:13;:37:::0;11002:7:::1;::::0;11018:5:::1;::::0;11002:12:::1;::::0;11012:2:::1;11002:12;:::i;:::-;11001:22;;;;:::i;:::-;10988:10;:35:::0;11044:14:::1;::::0;11036:42:::1;::::0;-1:-1:-1;;;;;11044:14:0::1;-1:-1:-1::0;;11036:7:0::1;:42::i;:::-;-1:-1:-1::0;11091:3:0::1;:10:::0;;-1:-1:-1;;11091:10:0::1;11097:4;11091:10:::0;;::::1;::::0;;;11128:7:::1;::::0;;11091:3:::1;11117:7;11650::::0;11677:6;-1:-1:-1;;;;;11677:6:0;;11612:79;11117:7:::1;-1:-1:-1::0;;;;;11112:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11112:13:0;:23;11166:7:::1;11650::::0;11677:6;-1:-1:-1;;;;;11677:6:0;;11612:79;11166:7:::1;11160:4;::::0;11175:7:::1;::::0;11151:32:::1;::::0;2377:25:1;;;-1:-1:-1;;;;;11151:32:0;;::::1;::::0;11160:4;;::::1;::::0;11151:32:::1;::::0;2365:2:1;2350:18;11151:32:0::1;;;;;;;11228:9;::::0;11196:62:::1;::::0;11213:4:::1;::::0;-1:-1:-1;;;;;11228:9:0::1;-1:-1:-1::0;;11196:8:0::1;:62::i;:::-;11271:46;11274:7;11650::::0;11677:6;-1:-1:-1;;;;;11677:6:0;;11612:79;11274:7:::1;11291:4;11298:18;11308:7;11650::::0;11677:6;-1:-1:-1;;;;;11677:6:0;;11612:79;11271:46:::1;-1:-1:-1::0;11344:9:0::1;::::0;-1:-1:-1;;;;;11344:9:0::1;:25;11377:21;11422:4;11442:24;11422:4:::0;11442:9:::1;:24::i;:::-;11481:1;11498::::0;11515:7:::1;11650::::0;11677:6;-1:-1:-1;;;;;11677:6:0;;11612:79;11515:7:::1;11537:15;11344:219;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11584:12:0::1;11574:7;:22:::0;-1:-1:-1;;;;;9815:1789:0:o;24050:261::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;24103:5:::1;::::0;::::1;;24102:6;24094:46;;;::::0;-1:-1:-1;;;24094:46:0;;16590:2:1;24094:46:0::1;::::0;::::1;16572:21:1::0;16629:2;16609:18;;;16602:30;16668:29;16648:18;;;16641:57;16715:18;;24094:46:0::1;16388:351:1::0;24094:46:0::1;24151:42;24181:4;24188;24151:21;:42::i;:::-;24226:6;::::0;24204:35:::1;::::0;-1:-1:-1;;;;;24226:6:0::1;::::0;24204:21:::1;:35::i;:::-;24252:5;:12:::0;;-1:-1:-1;;24252:12:0::1;24260:4;24252:12;::::0;;24275:21:::1;:28:::0;;-1:-1:-1;;;;24275:28:0::1;-1:-1:-1::0;;;24275:28:0::1;::::0;;24050:261::o;12843:70::-;12884:13;12908:2;12901:9;;;;;:::i;14339:218::-;187:10;14432:4;14481:18;;;:4;:18;;;;;;;;-1:-1:-1;;;;;14481:27:0;;;;;;;;;;14432:4;;14449:78;;14472:7;;14481:45;;14511:15;;14481:45;:::i;13398:160::-;13476:4;13493:35;187:10;13510:9;13521:6;13493:2;:35::i;18217:166::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;18300:3:::1;::::0;-1:-1:-1;;;;;18300:16:0;;::::1;:3:::0;::::1;:16:::0;18292:48:::1;;;::::0;-1:-1:-1;;;18292:48:0;;16946:2:1;18292:48:0::1;::::0;::::1;16928:21:1::0;16985:2;16965:18;;;16958:30;-1:-1:-1;;;17004:18:1;;;16997:49;17063:18;;18292:48:0::1;16744:343:1::0;18292:48:0::1;18351:3;:24:::0;;-1:-1:-1;;;;;;18351:24:0::1;-1:-1:-1::0;;;;;18351:24:0;;;::::1;::::0;;;::::1;::::0;;18217:166::o;27836:114::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;11650:7;11677:6;;27894:48:::1;::::0;-1:-1:-1;;;;;11677:6:0;;;;27920:21:::1;27894:48:::0;::::1;;;::::0;27920:21;;27894:48;11650:7;27894:48;27920:21;11677:6;27894:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27836:114::o:0;18389:171::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;18466:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18466:32:0::1;-1:-1:-1::0;;;;18466:32:0;;::::1;;::::0;;18514:38:::1;::::0;::::1;::::0;::::1;::::0;18490:8;1951:14:1;1944:22;1926:41;;1914:2;1899:18;;1786:187;18514:38:0::1;;;;;;;;18389:171:::0;:::o;14565:538::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;14638:29:::1;14689:9;14638:61;;14710:11;14742:10;-1:-1:-1::0;;;;;14742:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14724:47:0::1;;14780:4;14787:10;-1:-1:-1::0;;;;;14787:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14724:81;::::0;-1:-1:-1;;;;;;14724:81:0::1;::::0;;;;;;-1:-1:-1;;;;;15386:15:1;;;14724:81:0::1;::::0;::::1;15368:34:1::0;15438:15;;15418:18;;;15411:43;15303:18;;14724:81:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14710:95:::0;-1:-1:-1;;;;;;14820:17:0;::::1;14816:197;;14881:10;-1:-1:-1::0;;;;;14881:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14863:50:0::1;;14922:4;14929:10;-1:-1:-1::0;;;;;14929:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14863:84;::::0;-1:-1:-1;;;;;;14863:84:0::1;::::0;;;;;;-1:-1:-1;;;;;15386:15:1;;;14863:84:0::1;::::0;::::1;15368:34:1::0;15438:15;;15418:18;;;15411:43;15303:18;;14863:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14854:6;:93:::0;;-1:-1:-1;;;;;;14854:93:0::1;-1:-1:-1::0;;;;;14854:93:0;;;::::1;::::0;;;::::1;::::0;;14816:197:::1;;;14989:6;:12:::0;;-1:-1:-1;;;;;;14989:12:0::1;-1:-1:-1::0;;;;;14989:12:0;::::1;;::::0;;14816:197:::1;15023:9;:22:::0;;-1:-1:-1;;;;;;15023:22:0::1;-1:-1:-1::0;;;;;15023:22:0;::::1;;::::0;;15056:39:::1;15073:4;15080:9:::0;-1:-1:-1;;15056:8:0::1;:39::i;18013:196::-:0;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;18106:13:::1;::::0;-1:-1:-1;;;;;18106:26:0;;::::1;:13:::0;::::1;:26:::0;18098:58:::1;;;::::0;-1:-1:-1;;;18098:58:0;;16946:2:1;18098:58:0::1;::::0;::::1;16928:21:1::0;16985:2;16965:18;;;16958:30;-1:-1:-1;;;17004:18:1;;;16997:49;17063:18;;18098:58:0::1;16744:343:1::0;18098:58:0::1;18167:13;:34:::0;;-1:-1:-1;;;;;;18167:34:0::1;-1:-1:-1::0;;;;;18167:34:0;;;::::1;::::0;;;::::1;::::0;;18013:196::o;17716:289::-;8960:6;;-1:-1:-1;;;;;8960:6:0;187:10;8960:22;8952:67;;;;-1:-1:-1;;;8952:67:0;;;;;;;:::i;:::-;17916:16:::1;17896;17886:7;;:26;;;;:::i;:::-;17885:47;;;;:::i;:::-;17869:13;:63:::0;17957:7:::1;::::0;17984:13;;17957:23:::1;::::0;17967:13;;17957:23:::1;:::i;:::-;17956:41;;;;:::i;:::-;17943:10;:54:::0;-1:-1:-1;;;;17716:289:0:o;20149:335::-;-1:-1:-1;;;;;20244:20:0;;20236:69;;;;-1:-1:-1;;;20236:69:0;;17294:2:1;20236:69:0;;;17276:21:1;17333:2;17313:18;;;17306:30;17372:34;17352:18;;;17345:62;-1:-1:-1;;;17423:18:1;;;17416:34;17467:19;;20236:69:0;17092:400:1;20236:69:0;-1:-1:-1;;;;;20324:21:0;;20316:68;;;;-1:-1:-1;;;20316:68:0;;17699:2:1;20316:68:0;;;17681:21:1;17738:2;17718:18;;;17711:30;17777:34;17757:18;;;17750:62;-1:-1:-1;;;17828:18:1;;;17821:32;17870:19;;20316:68:0;17497:398:1;20316:68:0;-1:-1:-1;;;;;20397:12:0;;;;;;;:4;:12;;;;;;;;:21;;;;;;;;;;;;;:30;;;20443:33;;2377:25:1;;;20443:33:0;;2350:18:1;20443:33:0;;;;;;;20149:335;;;:::o;20492:1688::-;20564:4;-1:-1:-1;;;;;20589:18:0;;20581:68;;;;-1:-1:-1;;;20581:68:0;;18102:2:1;20581:68:0;;;18084:21:1;18141:2;18121:18;;;18114:30;18180:34;18160:18;;;18153:62;-1:-1:-1;;;18231:18:1;;;18224:35;18276:19;;20581:68:0;17900:401:1;20581:68:0;-1:-1:-1;;;;;20668:16:0;;20660:64;;;;-1:-1:-1;;;20660:64:0;;18508:2:1;20660:64:0;;;18490:21:1;18547:2;18527:18;;;18520:30;18586:34;18566:18;;;18559:62;-1:-1:-1;;;18637:18:1;;;18630:33;18680:19;;20660:64:0;18306:399:1;20660:64:0;20752:1;20743:6;:10;20735:64;;;;-1:-1:-1;;;20735:64:0;;18912:2:1;20735:64:0;;;18894:21:1;18951:2;18931:18;;;18924:30;18990:34;18970:18;;;18963:62;-1:-1:-1;;;19041:18:1;;;19034:39;19090:19;;20735:64:0;18710:405:1;20735:64:0;20813:20;20824:4;20830:2;20813:10;:20::i;:::-;20810:737;;;20854:5;;;;20850:80;;20880:34;;-1:-1:-1;;;20880:34:0;;19322:2:1;20880:34:0;;;19304:21:1;19361:2;19341:18;;;19334:30;19400:26;19380:18;;;19373:54;19444:18;;20880:34:0;19120:348:1;20850:80:0;20948:15;;;;20944:352;;;-1:-1:-1;;;;;20988:10:0;;;;;;:4;:10;;;;;;;;20984:297;;;21047:16;:12;21062:1;21047:16;:::i;:::-;-1:-1:-1;;;;;21030:13:0;;;;;;:9;:13;;;;;;:33;21022:42;;;;;;-1:-1:-1;;;;;21087:13:0;;;;;;:9;:13;;;;;21103:12;21087:28;;20984:297;;;21191:16;:12;21206:1;21191:16;:::i;:::-;-1:-1:-1;;;;;21172:15:0;;;;;;:9;:15;;;;;;:35;21164:44;;;;;;-1:-1:-1;;;;;21231:15:0;;;;;;:9;:15;;;;;21249:12;21231:30;;20984:297;21328:4;;21318:6;:14;;21310:60;;;;-1:-1:-1;;;21310:60:0;;19675:2:1;21310:60:0;;;19657:21:1;19714:2;19694:18;;;19687:30;19753:34;19733:18;;;19726:62;-1:-1:-1;;;19804:18:1;;;19797:31;19845:19;;21310:60:0;19473:397:1;21310:60:0;21394:14;;-1:-1:-1;;;;;21388:20:0;;;21394:14;;21388:20;;;;:33;;-1:-1:-1;;;;;;21413:8:0;;;;;;:4;:8;;;;;;;;21412:9;21388:33;21385:151;;;21476:4;;21466:6;21450:13;21460:2;21450:9;:13::i;:::-;:22;;;;:::i;:::-;:30;;21442:78;;;;-1:-1:-1;;;21442:78:0;;20077:2:1;21442:78:0;;;20059:21:1;20116:2;20096:18;;;20089:30;20155:34;20135:18;;;20128:62;-1:-1:-1;;;20206:18:1;;;20199:33;20249:19;;21442:78:0;19875:399:1;21442:78:0;-1:-1:-1;;;;;21590:11:0;;21557:12;21590:11;;;:5;:11;;;;;;21572:4;;21590:11;;;:24;;-1:-1:-1;;;;;;21605:9:0;;;;;;:5;:9;;;;;;;;21590:24;21587:70;;;-1:-1:-1;21640:5:0;21587:70;-1:-1:-1;;;;;21673:8:0;;;;;;:4;:8;;;;;;;;21669:454;;;21703:16;;-1:-1:-1;;;21703:16:0;;;;21702:17;:59;;;;-1:-1:-1;21740:21:0;;-1:-1:-1;;;21740:21:0;;;;21702:59;21698:408;;;21796:28;21827:24;21845:4;21827:9;:24::i;:::-;21796:55;;21898:13;;21874:20;:37;21870:221;;21963:10;;21939:20;:34;21936:77;;-1:-1:-1;22000:10:0;;21936:77;22035:36;22050:20;22035:14;:36::i;:::-;21777:329;21698:408;22141:31;22146:4;22152:2;22156:6;22164:7;22141:4;:31::i;:::-;22134:38;20492:1688;-1:-1:-1;;;;;20492:1688:0:o;26969:161::-;27011:7;27032:15;27049;27068:19;:17;:19::i;:::-;27031:56;;-1:-1:-1;27031:56:0;-1:-1:-1;27105:17:0;27031:56;;27105:17;:::i;:::-;27098:24;;;;26969:161;:::o;19660:219::-;19729:4;11677:6;;-1:-1:-1;;;;;19753:15:0;;;11677:6;;19753:15;;;;:33;;-1:-1:-1;11650:7:0;11677:6;-1:-1:-1;;;;;19773:13:0;;;11677:6;;19773:13;;19753:33;:45;;;;-1:-1:-1;;;;;;19791:7:0;;;;;;:3;:7;;;;;;;;19790:8;19753:45;:59;;;;-1:-1:-1;;;;;;19803:9:0;;;;;;:3;:9;;;;;;;;19802:10;19753:59;:73;;;;-1:-1:-1;19822:4:0;;-1:-1:-1;;;;;19816:10:0;;;19822:4;;19816:10;;19753:73;:93;;;;-1:-1:-1;;;;;;19830:16:0;;;;19753:93;:118;;;;-1:-1:-1;;;;;;19850:21:0;;19866:4;19850:21;;19746:125;19660:219;-1:-1:-1;;;19660:219:0:o;22188:1421::-;8834:16;:23;;-1:-1:-1;;;;8834:23:0;-1:-1:-1;;;8834:23:0;;;22296:3:::1;::::0;22278:15:::1;::::0;:21:::1;::::0;22296:3;22278:21:::1;:::i;:::-;22274:52:::0;22319:7:::1;22274:52;22336:17;22427:1;22419:3;;22401:15;;:21;;;;:::i;:::-;22381:15;::::0;22358:38:::1;::::0;:20;:38:::1;:::i;:::-;22357:66;;;;:::i;:::-;22356:72;;;;:::i;:::-;22336:92:::0;-1:-1:-1;22441:20:0::1;22464:32;22336:92:::0;22464:20;:32:::1;:::i;:::-;22533:16;::::0;;22547:1:::1;22533:16:::0;;;;;::::1;::::0;;22441:55;;-1:-1:-1;22509:21:0::1;::::0;22533:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22533:16:0::1;22509:40;;22578:4;22560;22565:1;22560:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22560:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22604:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;22604:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;22560:7;;22604:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22594:4;22599:1;22594:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22594:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;22633:9:::1;::::0;:191:::1;::::0;-1:-1:-1;;;22633:191:0;;:9;::::1;::::0;:60:::1;::::0;:191:::1;::::0;22708:12;;22633:9:::1;::::0;22751:4;;22778::::1;::::0;22798:15:::1;::::0;22633:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22839:24;22938:1;22930:3;;22912:15;;:21;;;;:::i;:::-;22892:15;::::0;22868:39:::1;::::0;:21:::1;:39;:::i;:::-;22867:67;;;;:::i;:::-;22866:73;;;;:::i;:::-;22839:100:::0;-1:-1:-1;22956:13:0;;22952:343:::1;;22986:9;::::0;23157:3:::1;::::0;22986:223:::1;::::0;-1:-1:-1;;;22986:223:0;;-1:-1:-1;;;;;22986:9:0;;::::1;::::0;:25:::1;::::0;23019:16;;22986:223:::1;::::0;23063:4:::1;::::0;23087:9;;22986::::1;::::0;;;23157:3:::1;::::0;23179:15:::1;::::0;22986:223:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;23229:54:0::1;::::0;;22086:25:1;;;22142:2;22127:18;;22120:34;;;22170:18;;;22163:34;;;23229:54:0::1;::::0;-1:-1:-1;22074:2:1;22059:18;23229:54:0::1;;;;;;;22952:343;23344:1;23309:32;23332:9:::0;23309:20;:32:::1;:::i;:::-;:36;23305:297;;;23460:3;::::0;23454::::1;::::0;23389:21:::1;::::0;23364::::1;::::0;23439:19:::1;::::0;23389:21;23439:19:::1;:::i;:::-;:25;;;;:::i;:::-;23426:38;;23479:10;23513:3;;23507;;23492:13;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23519:3;::::0;:16:::1;::::0;23479:38;;-1:-1:-1;;;;;;23519:3:0::1;::::0;:16;::::1;;;::::0;23479:38;;23519:3:::1;:16:::0;:3;:16;23479:38;23519:3;:16;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;23551:13:0::1;::::0;:26:::1;::::0;-1:-1:-1;;;;;23551:13:0;;::::1;::::0;:26;::::1;;;::::0;23574:2;;23551:13:::1;:26:::0;:13;:26;23574:2;23551:13;:26;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23347:255;;;23305:297;22263:1346;;;;8868:1;-1:-1:-1::0;8880:16:0;:24;;-1:-1:-1;;;;8880:24:0;;;22188:1421::o;24525:1181::-;24640:16;;24614:4;;24640:16;;;;;24635:237;;24677:28;24696:4;24702:2;24677:18;:28::i;:::-;24729:16;;;;;;;24728:17;:41;;;;;24749:20;24760:4;24766:2;24749:10;:20::i;:::-;24724:137;;;24794:47;;-1:-1:-1;;;24794:47:0;;22410:2:1;24794:47:0;;;22392:21:1;22449:2;22429:18;;;22422:30;22488:34;22468:18;;;22461:62;-1:-1:-1;;;22539:18:1;;;22532:35;22584:19;;24794:47:0;22208:401:1;24724:137:0;24892:25;24920:38;24931:4;24937:2;24941:7;24950;24920:10;:38::i;:::-;24997:14;;;;-1:-1:-1;;;;;24984:10:0;;;;;;:4;:10;;;;;;24892:66;;-1:-1:-1;24984:27:0;;;:::i;:::-;-1:-1:-1;;;;;24971:10:0;;;;;;;:4;:10;;;;;;:40;;;;25044:22;;;;25033:8;;;;;;;;;;:33;;25044:22;25033:33;:::i;:::-;-1:-1:-1;;;;;25022:8:0;;;;;;;:4;:8;;;;;;;;:44;;;;25083:9;;;;;:3;:9;;;;;;;:21;;;;-1:-1:-1;;;;;;25097:7:0;;;;;;:3;:7;;;;;;;;25096:8;25083:21;25079:344;;;-1:-1:-1;;;;;25134:10:0;;;;;;:4;:10;;;;;;:20;;25147:7;;25134:20;:::i;:::-;-1:-1:-1;;;;;25121:10:0;;;;;;:4;:10;;;;;:33;25079:344;;;-1:-1:-1;;;;;25177:9:0;;;;;;:3;:9;;;;;;;;25176:10;:21;;;;-1:-1:-1;;;;;;25190:7:0;;;;;;:3;:7;;;;;;;;25176:21;25172:251;;;25236:22;;-1:-1:-1;;;;;25225:8:0;;25236:22;25225:8;;;:4;:8;;;;;;:33;;25236:22;25225:33;:::i;:::-;-1:-1:-1;;;;;25214:8:0;;;;;;:4;:8;;;;;:44;25172:251;;;-1:-1:-1;;;;;25282:9:0;;;;;;:3;:9;;;;;;;;:20;;;;-1:-1:-1;;;;;;25295:7:0;;;;;;:3;:7;;;;;;;;25282:20;25278:145;;;-1:-1:-1;;;;;25332:10:0;;;;;;:4;:10;;;;;;:20;;25345:7;;25332:20;:::i;:::-;-1:-1:-1;;;;;25319:10:0;;;;;;;:4;:10;;;;;;:33;;;;25389:22;;25378:8;;;;;;;;;;:33;;25389:22;25378:33;:::i;:::-;-1:-1:-1;;;;;25367:8:0;;;;;;:4;:8;;;;;:44;25278:145;25439:17;;;;:21;25435:79;;25475:39;25490:4;25496:6;:17;;;25475:14;:39::i;:::-;25543:1;25529:6;:11;;;:15;:34;;;;25562:1;25548:6;:11;;;:15;25529:34;25525:91;;;25578:38;25591:6;:11;;;25604:6;:11;;;25578:12;:38::i;:::-;25649:2;-1:-1:-1;;;;;25634:42:0;25643:4;-1:-1:-1;;;;;25634:42:0;;25653:6;:22;;;25634:42;;;;2377:25:1;;2365:2;2350:18;;2231:177;25634:42:0;;;;;;;;-1:-1:-1;25694:4:0;;24525:1181;-1:-1:-1;;;;;24525:1181:0:o;27138:535::-;27236:7;;27272;;27189;;;;;27290:271;27314:9;:16;27310:20;;27290:271;;;27377:7;27356:4;:18;27361:9;27371:1;27361:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27361:12:0;27356:18;;;;;;;;;;;;;:28;;:60;;;27409:7;27388:4;:18;27393:9;27403:1;27393:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27393:12:0;27388:18;;;;;;;;;;;;;:28;27356:60;27352:91;;;27426:7;;27435;;27418:25;;;;;;;27138:535;;:::o;27352:91::-;27478:4;:18;27483:9;27493:1;27483:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27483:12:0;27478:18;;;;;;;;;;;;;27468:28;;:7;:28;:::i;:::-;27458:38;;27531:4;:18;27536:9;27546:1;27536:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27536:12:0;27531:18;;;;;;;;;;;;;27521:28;;:7;:28;:::i;:::-;27511:38;-1:-1:-1;27332:3:0;;;;:::i;:::-;;;;27290:271;;;;27595:7;;27585;;:17;;;;:::i;:::-;27575:7;:27;27571:58;;;27612:7;;27621;;27604:25;;;;;;27138:535;;:::o;27571:58::-;27648:7;;27657;;-1:-1:-1;27138:535:0;-1:-1:-1;27138:535:0:o;23625:417::-;23708:16;;;;;;;23707:17;23699:57;;;;-1:-1:-1;;;23699:57:0;;22816:2:1;23699:57:0;;;22798:21:1;22855:2;22835:18;;;22828:30;22894:29;22874:18;;;22867:57;22941:18;;23699:57:0;22614:351:1;23699:57:0;23772:20;23783:4;23789:2;23772:10;:20::i;:::-;23771:21;:37;;;;-1:-1:-1;23802:6:0;;-1:-1:-1;;;;;23796:12:0;;;23802:6;;23796:12;23771:37;23767:268;;;-1:-1:-1;;;;;23825:9:0;;;;;;:3;:9;;;;;;;:16;;-1:-1:-1;;23825:16:0;23837:4;23825:16;;;;;;23856;:23;;-1:-1:-1;;23856:23:0;23825:16;23856:23;;;23909:15;23894:12;:30;23941:21;:28;;-1:-1:-1;;;;23941:28:0;-1:-1:-1;;;23941:28:0;;;23989:34;;;;;;1951:14:1;;1944:22;1926:41;;1914:2;1899:18;;1786:187;23989:34:0;;;;;;;;23625:417;;:::o;25714:1247::-;25809:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25809:18:0;25840:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25840:25:0;25876:19;25898:10;:8;:10::i;:::-;25876:32;-1:-1:-1;25938:21:0;25876:32;25938:7;:21;:::i;:::-;25921:14;;;:38;25972:854;;;;-1:-1:-1;;;;;26003:8:0;;;;;;:4;:8;;;;;;;;25999:369;;;26039:5;;26032:4;:12;26070:5;;26063:4;:12;26101:5;;26094:4;:12;25999:369;;;-1:-1:-1;;;;;26132:10:0;;;;;;:4;:10;;;;;;;;26128:240;;;26170:5;;26163:4;:12;26201:5;;26194:4;:12;26232:5;;26225:4;:12;26128:240;;;26285:5;;26278:4;:12;26316:5;;26309:4;:12;26347:5;;26340:4;:12;26128:240;26417:16;;26409:4;;26399:14;;:7;:14;:::i;:::-;26398:35;;;;:::i;:::-;26384:11;;;:49;26496:16;;26487:4;;26480;;:11;;26487:4;26480:11;:::i;:::-;26469:23;;:7;:23;:::i;:::-;26468:44;;;;:::i;:::-;26448:17;;;:64;;;26563:11;;;;:31;;26448:64;26563:31;:::i;:::-;26552:43;;:7;:43;:::i;:::-;26527:68;;26626:11;;;;:25;;26640:11;;26626:25;:::i;:::-;26612:11;;;:39;25972:854;;;26698:1;26684:11;;;:15;;;26714:17;;;:21;;;26750:32;;;26799:11;;;:15;25972:854;26916:11;26896:6;:17;;;:31;;;;:::i;:::-;26881:6;:11;;;:47;;;;:::i;:::-;26863:6;:14;;;:66;;;;:::i;:::-;26838:22;;;:91;-1:-1:-1;26838:22:0;25714:1247;-1:-1:-1;;;;;25714:1247:0:o;27962:403::-;28042:19;28065:10;:8;:10::i;:::-;28042:33;-1:-1:-1;28086:18:0;28107:24;28042:33;28107:10;:24;:::i;:::-;28177:4;28164:19;;;;:4;:19;;;;;;28086:45;;-1:-1:-1;28164:32:0;;28086:45;;28164:32;:::i;:::-;28155:4;28142:19;;;;:4;:19;;;;;;;;:54;;;;28210:3;:18;;;;;;28207:90;;;28278:4;28265:19;;;;:4;:19;;;;;;:32;;28287:10;;28265:32;:::i;:::-;28256:4;28243:19;;;;:4;:19;;;;;:54;28207:90;28313:43;;2377:25:1;;;28338:4:0;;-1:-1:-1;;;;;28313:43:0;;;;;2365:2:1;2350:18;28313:43:0;;;;;;;28031:334;;27962:403;;:::o;27685:143::-;27775:4;27765:7;;:14;;;;:::i;:::-;27755:7;:24;27803:10;;:17;;27816:4;;27803:17;:::i;:::-;27790:10;:30;-1:-1:-1;;27685:143:0:o;222:316:1:-;299:6;307;315;368:2;356:9;347:7;343:23;339:32;336:52;;;384:1;381;374:12;336:52;-1:-1:-1;;407:23:1;;;477:2;462:18;;449:32;;-1:-1:-1;528:2:1;513:18;;;500:32;;222:316;-1:-1:-1;222:316:1:o;543:548::-;655:4;684:2;713;702:9;695:21;745:6;739:13;788:6;783:2;772:9;768:18;761:34;813:1;823:140;837:6;834:1;831:13;823:140;;;932:14;;;928:23;;922:30;898:17;;;917:2;894:26;887:66;852:10;;823:140;;;827:3;1012:1;1007:2;998:6;987:9;983:22;979:31;972:42;1082:2;1075;1071:7;1066:2;1058:6;1054:15;1050:29;1039:9;1035:45;1031:54;1023:62;;;;543:548;;;;:::o;1330:131::-;-1:-1:-1;;;;;1405:31:1;;1395:42;;1385:70;;1451:1;1448;1441:12;1466:315;1534:6;1542;1595:2;1583:9;1574:7;1570:23;1566:32;1563:52;;;1611:1;1608;1601:12;1563:52;1650:9;1637:23;1669:31;1694:5;1669:31;:::i;:::-;1719:5;1771:2;1756:18;;;;1743:32;;-1:-1:-1;;;1466:315:1:o;1978:248::-;2046:6;2054;2107:2;2095:9;2086:7;2082:23;2078:32;2075:52;;;2123:1;2120;2113:12;2075:52;-1:-1:-1;;2146:23:1;;;2216:2;2201:18;;;2188:32;;-1:-1:-1;1978:248:1:o;2413:160::-;2478:20;;2534:13;;2527:21;2517:32;;2507:60;;2563:1;2560;2553:12;2507:60;2413:160;;;:::o;2578:315::-;2643:6;2651;2704:2;2692:9;2683:7;2679:23;2675:32;2672:52;;;2720:1;2717;2710:12;2672:52;2759:9;2746:23;2778:31;2803:5;2778:31;:::i;:::-;2828:5;-1:-1:-1;2852:35:1;2883:2;2868:18;;2852:35;:::i;:::-;2842:45;;2578:315;;;;;:::o;2898:456::-;2975:6;2983;2991;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;3099:9;3086:23;3118:31;3143:5;3118:31;:::i;:::-;3168:5;-1:-1:-1;3225:2:1;3210:18;;3197:32;3238:33;3197:32;3238:33;:::i;:::-;2898:456;;3290:7;;-1:-1:-1;;;3344:2:1;3329:18;;;;3316:32;;2898:456::o;3359:180::-;3418:6;3471:2;3459:9;3450:7;3446:23;3442:32;3439:52;;;3487:1;3484;3477:12;3439:52;-1:-1:-1;3510:23:1;;3359:180;-1:-1:-1;3359:180:1:o;3733:247::-;3792:6;3845:2;3833:9;3824:7;3820:23;3816:32;3813:52;;;3861:1;3858;3851:12;3813:52;3900:9;3887:23;3919:31;3944:5;3919:31;:::i;3985:127::-;4046:10;4041:3;4037:20;4034:1;4027:31;4077:4;4074:1;4067:15;4101:4;4098:1;4091:15;4117:719;4160:5;4213:3;4206:4;4198:6;4194:17;4190:27;4180:55;;4231:1;4228;4221:12;4180:55;4267:6;4254:20;4293:18;4330:2;4326;4323:10;4320:36;;;4336:18;;:::i;:::-;4411:2;4405:9;4379:2;4465:13;;-1:-1:-1;;4461:22:1;;;4485:2;4457:31;4453:40;4441:53;;;4509:18;;;4529:22;;;4506:46;4503:72;;;4555:18;;:::i;:::-;4595:10;4591:2;4584:22;4630:2;4622:6;4615:18;4676:3;4669:4;4664:2;4656:6;4652:15;4648:26;4645:35;4642:55;;;4693:1;4690;4683:12;4642:55;4757:2;4750:4;4742:6;4738:17;4731:4;4723:6;4719:17;4706:54;4804:1;4797:4;4792:2;4784:6;4780:15;4776:26;4769:37;4824:6;4815:15;;;;;;4117:719;;;;:::o;4841:836::-;4963:6;4971;4979;4987;5040:3;5028:9;5019:7;5015:23;5011:33;5008:53;;;5057:1;5054;5047:12;5008:53;5096:9;5083:23;5115:31;5140:5;5115:31;:::i;:::-;5165:5;-1:-1:-1;5222:2:1;5207:18;;5194:32;5235:33;5194:32;5235:33;:::i;:::-;5287:7;-1:-1:-1;5345:2:1;5330:18;;5317:32;5368:18;5398:14;;;5395:34;;;5425:1;5422;5415:12;5395:34;5448:50;5490:7;5481:6;5470:9;5466:22;5448:50;:::i;:::-;5438:60;;5551:2;5540:9;5536:18;5523:32;5507:48;;5580:2;5570:8;5567:16;5564:36;;;5596:1;5593;5586:12;5564:36;;5619:52;5663:7;5652:8;5641:9;5637:24;5619:52;:::i;:::-;5609:62;;;4841:836;;;;;;;:::o;5942:180::-;5998:6;6051:2;6039:9;6030:7;6026:23;6022:32;6019:52;;;6067:1;6064;6057:12;6019:52;6090:26;6106:9;6090:26;:::i;6127:388::-;6195:6;6203;6256:2;6244:9;6235:7;6231:23;6227:32;6224:52;;;6272:1;6269;6262:12;6224:52;6311:9;6298:23;6330:31;6355:5;6330:31;:::i;:::-;6380:5;-1:-1:-1;6437:2:1;6422:18;;6409:32;6450:33;6409:32;6450:33;:::i;:::-;6502:7;6492:17;;;6127:388;;;;;:::o;6520:385::-;6606:6;6614;6622;6630;6683:3;6671:9;6662:7;6658:23;6654:33;6651:53;;;6700:1;6697;6690:12;6651:53;-1:-1:-1;;6723:23:1;;;6793:2;6778:18;;6765:32;;-1:-1:-1;6844:2:1;6829:18;;6816:32;;6895:2;6880:18;6867:32;;-1:-1:-1;6520:385:1;-1:-1:-1;6520:385:1:o;6910:356::-;7112:2;7094:21;;;7131:18;;;7124:30;7190:34;7185:2;7170:18;;7163:62;7257:2;7242:18;;6910:356::o;7271:127::-;7332:10;7327:3;7323:20;7320:1;7313:31;7363:4;7360:1;7353:15;7387:4;7384:1;7377:15;7403:125;7468:9;;;7489:10;;;7486:36;;;7502:18;;:::i;7533:380::-;7612:1;7608:12;;;;7655;;;7676:61;;7730:4;7722:6;7718:17;7708:27;;7676:61;7783:2;7775:6;7772:14;7752:18;7749:38;7746:161;;7829:10;7824:3;7820:20;7817:1;7810:31;7864:4;7861:1;7854:15;7892:4;7889:1;7882:15;7746:161;;7533:380;;;:::o;7918:168::-;7958:7;8024:1;8020;8016:6;8012:14;8009:1;8006:21;8001:1;7994:9;7987:17;7983:45;7980:71;;;8031:18;;:::i;:::-;-1:-1:-1;8071:9:1;;7918:168::o;8091:127::-;8152:10;8147:3;8143:20;8140:1;8133:31;8183:4;8180:1;8173:15;8207:4;8204:1;8197:15;8223:120;8263:1;8289;8279:35;;8294:18;;:::i;:::-;-1:-1:-1;8328:9:1;;8223:120::o;8348:399::-;8550:2;8532:21;;;8589:2;8569:18;;;8562:30;8628:34;8623:2;8608:18;;8601:62;-1:-1:-1;;;8694:2:1;8679:18;;8672:33;8737:3;8722:19;;8348:399::o;9466:127::-;9527:10;9522:3;9518:20;9515:1;9508:31;9558:4;9555:1;9548:15;9582:4;9579:1;9572:15;9598:128;9665:9;;;9686:11;;;9683:37;;;9700:18;;:::i;9731:127::-;9792:10;9787:3;9783:20;9780:1;9773:31;9823:4;9820:1;9813:15;9847:4;9844:1;9837:15;9863:135;9902:3;9923:17;;;9920:43;;9943:18;;:::i;:::-;-1:-1:-1;9990:1:1;9979:13;;9863:135::o;10414:425::-;10616:2;10598:21;;;10655:2;10635:18;;;10628:30;10694:34;10689:2;10674:18;;10667:62;10765:31;10760:2;10745:18;;10738:59;10829:3;10814:19;;10414:425::o;11331:545::-;11433:2;11428:3;11425:11;11422:448;;;11469:1;11494:5;11490:2;11483:17;11539:4;11535:2;11525:19;11609:2;11597:10;11593:19;11590:1;11586:27;11580:4;11576:38;11645:4;11633:10;11630:20;11627:47;;;-1:-1:-1;11668:4:1;11627:47;11723:2;11718:3;11714:12;11711:1;11707:20;11701:4;11697:31;11687:41;;11778:82;11796:2;11789:5;11786:13;11778:82;;;11841:17;;;11822:1;11811:13;11778:82;;;11782:3;;;11331:545;;;:::o;12052:1352::-;12178:3;12172:10;12205:18;12197:6;12194:30;12191:56;;;12227:18;;:::i;:::-;12256:97;12346:6;12306:38;12338:4;12332:11;12306:38;:::i;:::-;12300:4;12256:97;:::i;:::-;12408:4;;12472:2;12461:14;;12489:1;12484:663;;;;13191:1;13208:6;13205:89;;;-1:-1:-1;13260:19:1;;;13254:26;13205:89;-1:-1:-1;;12009:1:1;12005:11;;;12001:24;11997:29;11987:40;12033:1;12029:11;;;11984:57;13307:81;;12454:944;;12484:663;11278:1;11271:14;;;11315:4;11302:18;;-1:-1:-1;;12520:20:1;;;12638:236;12652:7;12649:1;12646:14;12638:236;;;12741:19;;;12735:26;12720:42;;12833:27;;;;12801:1;12789:14;;;;12668:19;;12638:236;;;12642:3;12902:6;12893:7;12890:19;12887:201;;;12963:19;;;12957:26;-1:-1:-1;;13046:1:1;13042:14;;;13058:3;13038:24;13034:37;13030:42;13015:58;13000:74;;12887:201;-1:-1:-1;;;;;13134:1:1;13118:14;;;13114:22;13101:36;;-1:-1:-1;12052:1352:1:o;13409:422::-;13498:1;13541:5;13498:1;13555:270;13576:7;13566:8;13563:21;13555:270;;;13635:4;13631:1;13627:6;13623:17;13617:4;13614:27;13611:53;;;13644:18;;:::i;:::-;13694:7;13684:8;13680:22;13677:55;;;13714:16;;;;13677:55;13793:22;;;;13753:15;;;;13555:270;;;13559:3;13409:422;;;;;:::o;13836:806::-;13885:5;13915:8;13905:80;;-1:-1:-1;13956:1:1;13970:5;;13905:80;14004:4;13994:76;;-1:-1:-1;14041:1:1;14055:5;;13994:76;14086:4;14104:1;14099:59;;;;14172:1;14167:130;;;;14079:218;;14099:59;14129:1;14120:10;;14143:5;;;14167:130;14204:3;14194:8;14191:17;14188:43;;;14211:18;;:::i;:::-;-1:-1:-1;;14267:1:1;14253:16;;14282:5;;14079:218;;14381:2;14371:8;14368:16;14362:3;14356:4;14353:13;14349:36;14343:2;14333:8;14330:16;14325:2;14319:4;14316:12;14312:35;14309:77;14306:159;;;-1:-1:-1;14418:19:1;;;14450:5;;14306:159;14497:34;14522:8;14516:4;14497:34;:::i;:::-;14567:6;14563:1;14559:6;14555:19;14546:7;14543:32;14540:58;;;14578:18;;:::i;:::-;14616:20;;13836:806;-1:-1:-1;;;13836:806:1:o;14647:131::-;14707:5;14736:36;14763:8;14757:4;14736:36;:::i;14783:112::-;14815:1;14841;14831:35;;14846:18;;:::i;:::-;-1:-1:-1;14880:9:1;;14783:112::o;14900:251::-;14970:6;15023:2;15011:9;15002:7;14998:23;14994:32;14991:52;;;15039:1;15036;15029:12;14991:52;15071:9;15065:16;15090:31;15115:5;15090:31;:::i;15465:607::-;-1:-1:-1;;;;;15824:15:1;;;15806:34;;15871:2;15856:18;;15849:34;;;;15914:2;15899:18;;15892:34;;;;15957:2;15942:18;;15935:34;;;;16006:15;;;16000:3;15985:19;;15978:44;15786:3;16038:19;;16031:35;;;;15755:3;15740:19;;15465:607::o;16077:306::-;16165:6;16173;16181;16234:2;16222:9;16213:7;16209:23;16205:32;16202:52;;;16250:1;16247;16240:12;16202:52;16279:9;16273:16;16263:26;;16329:2;16318:9;16314:18;16308:25;16298:35;;16373:2;16362:9;16358:18;16352:25;16342:35;;16077:306;;;;;:::o;20279:980::-;20541:4;20589:3;20578:9;20574:19;20620:6;20609:9;20602:25;20646:2;20684:6;20679:2;20668:9;20664:18;20657:34;20727:3;20722:2;20711:9;20707:18;20700:31;20751:6;20786;20780:13;20817:6;20809;20802:22;20855:3;20844:9;20840:19;20833:26;;20894:2;20886:6;20882:15;20868:29;;20915:1;20925:195;20939:6;20936:1;20933:13;20925:195;;;21004:13;;-1:-1:-1;;;;;21000:39:1;20988:52;;21095:15;;;;21060:12;;;;21036:1;20954:9;20925:195;;;-1:-1:-1;;;;;;;21176:32:1;;;;21171:2;21156:18;;21149:60;-1:-1:-1;;;21240:3:1;21225:19;21218:35;21137:3;20279:980;-1:-1:-1;;;20279:980:1:o
Swarm Source
ipfs://cc7617c0bf5e3f6b49b125af58a41655b9932b3b1aa2b122220a04a46eab0096
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.