The Protector Roge token contract has been replaced by a new address.
ERC-20
Overview
Max Total Supply
100,000,000,000,000,000 PROGE
Holders
333
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,419,880,929.568578162 PROGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PRESADEFIGUARDIANPROGE
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-06-06 */ // SPDX-License-Identifier: MIT pragma solidity >=0.7.0 <0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IBEP20 { 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 SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0; 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"); (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); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2ERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface 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 PRESADEFIGUARDIANPROGE is Context, IBEP20, Ownable { using SafeMath for uint256; using Address for address; IUniswapV2Router02 public uniswapV2Router; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; address public uniswapV2Pair; address payable presa; address payable rogeTreasury; address public ROGE = 0x45734927Fa2f616FbE19E65f42A0ef3d37d1c80A; address public animalSanctuary = 0x4A462404ca4b7caE9F639732EB4DaB75d6E88d19; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 100000000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'The Protector Roge'; string private _symbol = "PROGE"; uint8 private _decimals = 9; uint private DecimalFactor = 10 ** _decimals; uint private _tokensAmountToLiquify; bool inSwapAndLiquify; bool swapInProgress; bool public _swapAndLiquifyEnabled; bool public doubleSellFee; bool public maxTXSet; bool public tradingEnabled; event SwapAndLiquify(uint256 tokensSwapped,uint256 ethReceived,uint256 tokensIntoLiqudity); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor (address payable _presa, address payable _rogeTreasury) { _rOwned[msg.sender] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); _swapAndLiquifyEnabled = true; swapInProgress = false; doubleSellFee = true; tradingEnabled =false; maxTXSet = true; presa = _presa; rogeTreasury = _rogeTreasury; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _tokensAmountToLiquify = 1000 * DecimalFactor ; } function manualSwapAndLiquify() public onlyOwner() { uint circOfAMM = balanceOf(uniswapV2Pair); uint threePerCircAMM = circOfAMM.div(33); uint contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > threePerCircAMM) { contractTokenBalance = threePerCircAMM; } swapAndLiquify(contractTokenBalance); } function manualBuyBackRoge() public onlyOwner() { uint contractETHBalance = address(this).balance; swapETHforRoge(contractETHBalance); } function setSwapAndLiquifyEnabled(bool enable) public onlyOwner() { _swapAndLiquifyEnabled = enable; } function setdoubleSellFee(bool enable) public onlyOwner() { doubleSellFee = enable; } function settradingEnabled(bool enable) public onlyOwner() { tradingEnabled = enable; } function setmaxTXSet(bool enable) public onlyOwner() { maxTXSet = enable; } function setTokensAmountToLiquify(uint amount) public onlyOwner() { _tokensAmountToLiquify = amount.mul(DecimalFactor); } function viewTokensAmountToLiquify() public view returns(uint) { return _tokensAmountToLiquify; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function achievementReward(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(swapInProgress){ _transferStandard(sender, recipient, amount); swapInProgress = false; } else { bool feeOnTransfer; uint feeFactor = 1; uint circulatingSupply = _tTotal.sub(balanceOf(address(animalSanctuary))); if(sender == address(this) || sender == owner() || sender == address(rogeTreasury)) { feeOnTransfer = false; } else { feeOnTransfer = true; } if(recipient == address(uniswapV2Pair) || recipient == address(uniswapV2Router) ) { if (feeOnTransfer && doubleSellFee) { feeFactor = 2; } } if (feeOnTransfer) { require(tradingEnabled, "trading not enabled"); uint maxTX = circulatingSupply.div(100); if (maxTXSet) { require(amount <= maxTX, "Must be <= 1% of circ"); } uint contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = (contractTokenBalance >= _tokensAmountToLiquify); uint contractETHBalance = address(this).balance; if(contractTokenBalance > maxTX) { contractTokenBalance = maxTX; } if(contractETHBalance > 0) { swapInProgress = true; swapETHforRoge(contractETHBalance); } else if (overMinTokenBalance && !inSwapAndLiquify && msg.sender != uniswapV2Pair && _swapAndLiquifyEnabled) { swapInProgress = true; swapAndLiquify(contractTokenBalance); } uint forContract = amount.div(100).mul(9).mul(feeFactor); uint burnAmount = amount.div(100).mul(feeFactor); amount = amount.sub(burnAmount).sub(forContract); _transferToExcluded(sender, address(this), forContract); _transferToExcluded(sender, address(animalSanctuary), burnAmount); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } else { _transferStandardNoReflection(sender, recipient, amount); } swapInProgress = false; }} function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _transferToNoReflection(address recipient, uint256 tAmount ) public onlyOwner() { (uint rAmount, uint rTransferAmount, uint tTransferAmount) = _getNRValues(tAmount); _rOwned[msg.sender] = _rOwned[msg.sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); emit Transfer(msg.sender, recipient, tTransferAmount); } function _transferStandardNoReflection(address sender, address recipient, uint256 tAmount) private { (uint rAmount, uint rTransferAmount, uint tTransferAmount) = _getNRValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } function _getNRValues(uint256 tAmount) private view returns (uint256, uint256, uint256) { (uint tTransferAmount) = _getNRTValues(tAmount); uint currentRate = _getRate(); (uint rAmount, uint rTransferAmount) = _getNRRValues(tAmount, currentRate); return (rAmount, rTransferAmount, tTransferAmount); } function _getNRTValues(uint256 tAmount) private pure returns (uint256) { uint256 tTransferAmount = tAmount; return (tTransferAmount); } function _getNRRValues(uint256 tAmount, uint256 currentRate) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rTransferAmount = rAmount; return (rAmount, rTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint reflect = 2; if(doubleSellFee) { reflect = 4; } uint256 tFee = tAmount.div(100).mul(reflect); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 seventeenEighteenths = contractTokenBalance.div(18).mul(17); uint256 tokensForPairing = contractTokenBalance.sub(seventeenEighteenths); uint256 initialBalance = address(this).balance; swapTokensForEth(seventeenEighteenths); uint256 newBalance = address(this).balance.sub(initialBalance); uint ethForLiquidity = newBalance.div(17); uint presaEth = newBalance.div(17).mul(2); uint rogeTreasuryEth = newBalance.div(17).mul(4); payable(address(presa)).transfer(presaEth); payable(address(rogeTreasury)).transfer(rogeTreasuryEth); addLiquidity(tokensForPairing, ethForLiquidity); emit SwapAndLiquify(seventeenEighteenths,ethForLiquidity,tokensForPairing); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp); } function swapETHforRoge(uint ethAmount) private { address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(ROGE); _approve(address(this), address(uniswapV2Router), ethAmount); uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}(ethAmount,path,address(animalSanctuary),block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(animalSanctuary),block.timestamp); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_presa","type":"address"},{"internalType":"address payable","name":"_rogeTreasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"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":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":"ROGE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"_transferToNoReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"achievementReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"animalSanctuary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"doubleSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBuyBackRoge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTXSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTokensAmountToLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setdoubleSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setmaxTXSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"settradingEnabled","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTokensAmountToLiquify","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600a80546001600160a01b03199081167345734927fa2f616fbe19e65f42a0ef3d37d1c80a17909155600b8054909116734a462404ca4b7cae9f639732eb4dab75d6e88d191790556a52b7d2dcc80cd2e4000000600c556a34f8e1f3adab5d4bffffff19600d5560c060405260126080819052715468652050726f746563746f7220526f676560701b60a09081526200009c91600f919062000400565b506040805180820190915260058082526450524f474560d81b6020909201918252620000cb9160109162000400565b506011805460ff19166009179081905560ff16600a0a601255348015620000f157600080fd5b506040516200360838038062003608833981810160405260408110156200011757600080fd5b50805160209091015160006200012c620003fc565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d543360009081526002602052604090205562000193620003fc565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a36014805461ffff60201b1963ff00ff001962ff00001990921662010000179190911663010000001716640100000000179055600880546001600160a01b038085166001600160a01b03199283161790925560098054928416929091169190911790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a015591600481810192602092909190829003018186803b1580156200029157600080fd5b505afa158015620002a6573d6000803e3d6000fd5b505050506040513d6020811015620002bd57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200030e57600080fd5b505afa15801562000323573d6000803e3d6000fd5b505050506040513d60208110156200033a57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200038d57600080fd5b505af1158015620003a2573d6000803e3d6000fd5b505050506040513d6020811015620003b957600080fd5b5051600780546001600160a01b039283166001600160a01b0319918216179091556001805493909216921691909117905550506012546103e802601355620004ac565b3390565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000438576000855562000483565b82601f106200045357805160ff191683800117855562000483565b8280016001018555821562000483579182015b828111156200048357825182559160200191906001019062000466565b506200049192915062000495565b5090565b5b8082111562000491576000815560010162000496565b61314c80620004bc6000396000f3fe6080604052600436106102895760003560e01c806376bbe66611610153578063b5d3e808116100cb578063e5d3a52c1161007f578063f2fde38b11610064578063f2fde38b1461085d578063f594114714610890578063f84354f1146108a557610290565b8063e5d3a52c146107fe578063f2cc0c181461082a57610290565b8063cba0e996116100b0578063cba0e9961461077b578063cbecede0146107ae578063dd62ed3e146107c357610290565b8063b5d3e8081461073a578063c49b9a801461074f57610290565b8063a457c2d711610122578063a72079d611610107578063a72079d6146106b3578063a9059cbb146106ec578063ac177d3b1461072557610290565b8063a457c2d714610650578063a4f2d8991461068957610290565b806376bbe666146105d057806383e6bcd2146105fc5780638da5cb5b1461062657806395d89b411461063b57610290565b80633950935111610201578063519da73e116101b557806370a082311161019a57806370a0823114610573578063715018a6146105a6578063733b864f146105bb57610290565b8063519da73e146105305780635c6e88381461055e57610290565b806349abb68e116101e657806349abb68e146104f157806349bd5a5e146105065780634ada218b1461051b57610290565b806339509351146104865780634549b039146104bf57610290565b80631694505e1161025857806323b872dd1161023d57806323b872dd146103ee5780632d83811914610431578063313ce5671461045b57610290565b80631694505e146103c457806318160ddd146103d957610290565b806306fdde0314610295578063095ea7b31461031f57806310336de01461036c57806313114a9d1461039d57610290565b3661029057005b600080fd5b3480156102a157600080fd5b506102aa6108d8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e45781810151838201526020016102cc565b50505050905090810190601f1680156103115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032b57600080fd5b506103586004803603604081101561034257600080fd5b506001600160a01b03813516906020013561098c565b604080519115158252519081900360200190f35b34801561037857600080fd5b506103816109aa565b604080516001600160a01b039092168252519081900360200190f35b3480156103a957600080fd5b506103b26109b9565b60408051918252519081900360200190f35b3480156103d057600080fd5b506103816109bf565b3480156103e557600080fd5b506103b26109ce565b3480156103fa57600080fd5b506103586004803603606081101561041157600080fd5b506001600160a01b038135811691602081013590911690604001356109d4565b34801561043d57600080fd5b506103b26004803603602081101561045457600080fd5b5035610a5b565b34801561046757600080fd5b50610470610abd565b6040805160ff9092168252519081900360200190f35b34801561049257600080fd5b50610358600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610ac6565b3480156104cb57600080fd5b506103b2600480360360408110156104e257600080fd5b50803590602001351515610b14565b3480156104fd57600080fd5b50610381610ba4565b34801561051257600080fd5b50610381610bb3565b34801561052757600080fd5b50610358610bc2565b34801561053c57600080fd5b5061055c6004803603602081101561055357600080fd5b50351515610bd4565b005b34801561056a57600080fd5b50610358610c79565b34801561057f57600080fd5b506103b26004803603602081101561059657600080fd5b50356001600160a01b0316610c8a565b3480156105b257600080fd5b5061055c610cec565b3480156105c757600080fd5b5061055c610db8565b3480156105dc57600080fd5b5061055c600480360360208110156105f357600080fd5b50351515610e71565b34801561060857600080fd5b5061055c6004803603602081101561061f57600080fd5b5035610f14565b34801561063257600080fd5b50610381610f92565b34801561064757600080fd5b506102aa610fa1565b34801561065c57600080fd5b506103586004803603604081101561067357600080fd5b506001600160a01b038135169060200135611020565b34801561069557600080fd5b5061055c600480360360208110156106ac57600080fd5b5035611088565b3480156106bf57600080fd5b5061055c600480360360408110156106d657600080fd5b506001600160a01b038135169060200135611160565b3480156106f857600080fd5b506103586004803603604081101561070f57600080fd5b506001600160a01b0381351690602001356112b7565b34801561073157600080fd5b506103b26112cb565b34801561074657600080fd5b5061055c6112d1565b34801561075b57600080fd5b5061055c6004803603602081101561077257600080fd5b50351515611348565b34801561078757600080fd5b506103586004803603602081101561079e57600080fd5b50356001600160a01b03166113ea565b3480156107ba57600080fd5b50610358611408565b3480156107cf57600080fd5b506103b2600480360360408110156107e657600080fd5b506001600160a01b0381358116916020013516611417565b34801561080a57600080fd5b5061055c6004803603602081101561082157600080fd5b50351515611442565b34801561083657600080fd5b5061055c6004803603602081101561084d57600080fd5b50356001600160a01b03166114e6565b34801561086957600080fd5b5061055c6004803603602081101561088057600080fd5b50356001600160a01b03166116b4565b34801561089c57600080fd5b506103586117d6565b3480156108b157600080fd5b5061055c600480360360208110156108c857600080fd5b50356001600160a01b03166117e6565b600f8054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109825780601f1061095757610100808354040283529160200191610982565b820191906000526020600020905b81548152906001019060200180831161096557829003601f168201915b5050505050905090565b60006109a0610999611a43565b8484611a47565b5060015b92915050565b600a546001600160a01b031681565b600e5490565b6001546001600160a01b031681565b600c5490565b60006109e1848484611b33565b610a51846109ed611a43565b610a4c8560405180606001604052806028815260200161300f602891396001600160a01b038a16600090815260046020526040812090610a2b611a43565b6001600160a01b0316815260208101919091526040016000205491906120ce565b611a47565b5060019392505050565b6000600d54821115610a9e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612fbf602a913960400191505060405180910390fd5b6000610aa8612165565b9050610ab48382612188565b9150505b919050565b60115460ff1690565b60006109a0610ad3611a43565b84610a4c8560046000610ae4611a43565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906121d1565b6000600c54831115610b6d576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610b8b576000610b7d8461222b565b509294506109a49350505050565b6000610b968461222b565b509194506109a49350505050565b600b546001600160a01b031681565b6007546001600160a01b031681565b60145465010000000000900460ff1681565b610bdc611a43565b6000546001600160a01b03908116911614610c3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6014805491151565010000000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff909216919091179055565b601454640100000000900460ff1681565b6001600160a01b03811660009081526005602052604081205460ff1615610cca57506001600160a01b038116600090815260036020526040902054610ab8565b6001600160a01b0382166000908152600260205260409020546109a490610a5b565b610cf4611a43565b6000546001600160a01b03908116911614610d56576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610dc0611a43565b6000546001600160a01b03908116911614610e22576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600754600090610e3a906001600160a01b0316610c8a565b90506000610e49826021612188565b90506000610e5630610c8a565b905081811115610e635750805b610e6c81612277565b505050565b610e79611a43565b6000546001600160a01b03908116911614610edb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b601480549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b610f1c611a43565b6000546001600160a01b03908116911614610f7e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b601254610f8c908290612404565b60135550565b6000546001600160a01b031690565b60108054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109825780601f1061095757610100808354040283529160200191610982565b60006109a061102d611a43565b84610a4c856040518060600160405280602581526020016130a46025913960046000611057611a43565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906120ce565b6000611092611a43565b6001600160a01b03811660009081526005602052604090205490915060ff16156110ed5760405162461bcd60e51b815260040180806020018281038252602c8152602001806130c9602c913960400191505060405180910390fd5b60006110f88361222b565b505050506001600160a01b038316600090815260026020526040902054909150611122908261245d565b6001600160a01b038316600090815260026020526040902055600d54611148908261245d565b600d55600e5461115890846121d1565b600e55505050565b611168611a43565b6000546001600160a01b039081169116146111ca576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008060006111d88461249f565b3360009081526002602052604090205492955090935091506111fa908461245d565b336000908152600260209081526040808320939093556001600160a01b038816825260039052205461122c90826121d1565b6001600160a01b03861660009081526003602090815260408083209390935560029052205461125b90836121d1565b6001600160a01b0386166000818152600260209081526040918290209390935580518481529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050505050565b60006109a06112c4611a43565b8484611b33565b60135490565b6112d9611a43565b6000546001600160a01b0390811691161461133b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b47611345816124da565b50565b611350611a43565b6000546001600160a01b039081169116146113b2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6014805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b6001600160a01b031660009081526005602052604090205460ff1690565b60145462010000900460ff1681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61144a611a43565b6000546001600160a01b039081169116146114ac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60148054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b6114ee611a43565b6000546001600160a01b03908116911614611550576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16156115be576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205415611618576001600160a01b0381166000908152600260205260409020546115fe90610a5b565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b0316600081815260056020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b6116bc611a43565b6000546001600160a01b0390811691161461171e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166117635760405162461bcd60e51b8152600401808060200182810382526026815260200180612fe96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6014546301000000900460ff1681565b6117ee611a43565b6000546001600160a01b03908116911614611850576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff166118bd576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600654811015611a3f57816001600160a01b0316600682815481106118e157fe5b6000918252602090912001546001600160a01b03161415611a3757600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061192c57fe5b600091825260209091200154600680546001600160a01b03909216918390811061195257fe5b600091825260208083209190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03948516179055918416815260038252604080822082905560059092522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560068054806119da57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055611a3f565b6001016118c0565b5050565b3390565b6001600160a01b038316611a8c5760405162461bcd60e51b8152600401808060200182810382526024815260200180612f9b6024913960400191505060405180910390fd5b6001600160a01b038216611ad15760405162461bcd60e51b81526004018080602001828103825260228152602001806130f56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316611b785760405162461bcd60e51b8152600401808060200182810382526025815260200180612f766025913960400191505060405180910390fd5b6001600160a01b038216611bbd5760405162461bcd60e51b81526004018080602001828103825260238152602001806130816023913960400191505060405180910390fd5b60008111611bfc5760405162461bcd60e51b81526004018080602001828103825260298152602001806130586029913960400191505060405180910390fd5b601454610100900460ff1615611c4457611c178383836126c5565b601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055610e6c565b600b546000906001908290611c6e90611c65906001600160a01b0316610c8a565b600c549061245d565b90506001600160a01b038616301480611c9f5750611c8a610f92565b6001600160a01b0316866001600160a01b0316145b80611cb757506009546001600160a01b038781169116145b15611cc55760009250611cca565b600192505b6007546001600160a01b0386811691161480611cf357506001546001600160a01b038681169116145b15611d1857828015611d0e57506014546301000000900460ff165b15611d1857600291505b82156120935760145465010000000000900460ff16611d7e576040805162461bcd60e51b815260206004820152601360248201527f74726164696e67206e6f7420656e61626c656400000000000000000000000000604482015290519081900360640190fd5b6000611d8b826064612188565b601454909150640100000000900460ff1615611df65780851115611df6576040805162461bcd60e51b815260206004820152601560248201527f4d757374206265203c3d203125206f6620636972630000000000000000000000604482015290519081900360640190fd5b6000611e0130610c8a565b6013549091508110154783831115611e17578392505b8015611e5757601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611e52816124da565b611ecc565b818015611e67575060145460ff16155b8015611e7e57506007546001600160a01b03163314155b8015611e92575060145462010000900460ff165b15611ecc57601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611ecc83612277565b6000611ee687611ee06009818d6064612188565b90612404565b90506000611ef988611ee08c6064612188565b9050611f0f82611f098c8461245d565b9061245d565b9950611f1c8c30846127ad565b600b54611f34908d906001600160a01b0316836127ad565b6001600160a01b038c1660009081526005602052604090205460ff168015611f7557506001600160a01b038b1660009081526005602052604090205460ff16155b15611f8a57611f858c8c8c612853565b612088565b6001600160a01b038c1660009081526005602052604090205460ff16158015611fcb57506001600160a01b038b1660009081526005602052604090205460ff165b15611fdb57611f858c8c8c6127ad565b6001600160a01b038c1660009081526005602052604090205460ff1615801561201d57506001600160a01b038b1660009081526005602052604090205460ff16155b1561202d57611f858c8c8c6126c5565b6001600160a01b038c1660009081526005602052604090205460ff16801561206d57506001600160a01b038b1660009081526005602052604090205460ff165b1561207d57611f858c8c8c6128c3565b6120888c8c8c6126c5565b50505050505061209e565b61209e868686612933565b5050601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550505050565b6000818484111561215d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561212257818101518382015260200161210a565b50505050905090810190601f16801561214f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000612172612a30565b90925090506121818282612188565b9250505090565b60006121ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b93565b9392505050565b6000828201838110156121ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600080600061223f88612bf8565b91509150600061224d612165565b9050600080600061225f8c8686612c41565b919e909d50909b509599509397509395505050505050565b601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560006122b46011611ee0846012612188565b905060006122c2838361245d565b9050476122ce83612c7d565b60006122da478361245d565b905060006122e9826011612188565b905060006122fd6002611ee0856011612188565b905060006123116004611ee0866011612188565b6008546040519192506001600160a01b03169083156108fc029084906000818181858888f1935050505015801561234c573d6000803e3d6000fd5b506009546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612387573d6000803e3d6000fd5b506123928684612e5e565b604080518881526020810185905280820188905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15050601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050565b600082612413575060006109a4565b8282028284828161242057fe5b04146121ca5760405162461bcd60e51b81526004018080602001828103825260218152602001806130376021913960400191505060405180910390fd5b60006121ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120ce565b6000806000806124ae85612f35565b905060006124ba612165565b90506000806124c98884612f38565b909990985093965092945050505050565b6040805160028082526060820183526000926020830190803683375050600154604080517fad5c464800000000000000000000000000000000000000000000000000000000815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561255857600080fd5b505afa15801561256c573d6000803e3d6000fd5b505050506040513d602081101561258257600080fd5b50518151829060009061259157fe5b6001600160a01b039283166020918202929092010152600a548251911690829060019081106125bc57fe5b6001600160a01b0392831660209182029290920101526001546125e29130911684611a47565b600154600b546040517fb6f9de95000000000000000000000000000000000000000000000000000000008152600481018581526001600160a01b03928316604483018190524260648401819052608060248501908152875160848601528751959096169563b6f9de9595899586958a9594939092909160a401906020808801910280838360005b83811015612681578181015183820152602001612669565b50505050905001955050505050506000604051808303818588803b1580156126a857600080fd5b505af11580156126bc573d6000803e3d6000fd5b50505050505050565b60008060008060006126d68661222b565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150612706908661245d565b6001600160a01b03808a16600090815260026020526040808220939093559089168152205461273590856121d1565b6001600160a01b0388166000908152600260205260409020556127588382612f51565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127be8661222b565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506127ee908661245d565b6001600160a01b03808a16600090815260026020908152604080832094909455918a1681526003909152205461282490836121d1565b6001600160a01b03881660009081526003602090815260408083209390935560029052205461273590856121d1565b60008060008060006128648661222b565b6001600160a01b038d1660009081526003602052604090205494995092975090955093509150612894908761245d565b6001600160a01b038916600090815260036020908152604080832093909355600290522054612706908661245d565b60008060008060006128d48661222b565b6001600160a01b038d1660009081526003602052604090205494995092975090955093509150612904908761245d565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546127ee908661245d565b60008060006129418461249f565b6001600160a01b038916600090815260026020526040902054929550909350915061296c908461245d565b6001600160a01b038088166000908152600260209081526040808320949094559188168152600390915220546129a290826121d1565b6001600160a01b0386166000908152600360209081526040808320939093556002905220546129d190836121d1565b6001600160a01b0380871660008181526002602090815260409182902094909455805185815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050505050565b600d54600c546000918291825b600654811015612b6157826002600060068481548110612a5957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612abe5750816003600060068481548110612a9757fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612ad557600d54600c5494509450505050612b8f565b612b156002600060068481548110612ae957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061245d565b9250612b576003600060068481548110612b2b57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061245d565b9150600101612a3d565b50600c54600d54612b7191612188565b821015612b8957600d54600c54935093505050612b8f565b90925090505b9091565b60008183612be25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561212257818101518382015260200161210a565b506000838581612bee57fe5b0495945050505050565b60145460009081906002906301000000900460ff1615612c16575060045b6000612c2782611ee0876064612188565b90506000612c35868361245d565b94509092505050915091565b6000808080612c508786612404565b90506000612c5e8787612404565b90506000612c6c838361245d565b929992985090965090945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612cac57fe5b6001600160a01b03928316602091820292909201810191909152600154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015612d1957600080fd5b505afa158015612d2d573d6000803e3d6000fd5b505050506040513d6020811015612d4357600080fd5b5051815182906001908110612d5457fe5b6001600160a01b039283166020918202929092010152600154612d7a9130911684611a47565b6001546040517f791ac947000000000000000000000000000000000000000000000000000000008152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015612e19578181015183820152602001612e01565b505050509050019650505050505050600060405180830381600087803b158015612e4257600080fd5b505af1158015612e56573d6000803e3d6000fd5b505050505050565b600154612e769030906001600160a01b031684611a47565b600154600b54604080517ff305d7190000000000000000000000000000000000000000000000000000000081523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b158015612f0457600080fd5b505af1158015612f18573d6000803e3d6000fd5b50505050506040513d6060811015612f2f57600080fd5b50505050565b90565b60008080612f468585612404565b958695509350505050565b600d54612f5e908361245d565b600d55600e54612f6e90826121d1565b600e55505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a26469706673582212206fea11ba930e590d3e55e69104b76a271074d9ebbb00f125814f9887b9204ee964736f6c6343000706003300000000000000000000000053f997da7206d6bf90ffc4236b3ca8efb7bb1a890000000000000000000000002adf3ddd9a238e8c0afea647137ae4f534405388
Deployed Bytecode
0x6080604052600436106102895760003560e01c806376bbe66611610153578063b5d3e808116100cb578063e5d3a52c1161007f578063f2fde38b11610064578063f2fde38b1461085d578063f594114714610890578063f84354f1146108a557610290565b8063e5d3a52c146107fe578063f2cc0c181461082a57610290565b8063cba0e996116100b0578063cba0e9961461077b578063cbecede0146107ae578063dd62ed3e146107c357610290565b8063b5d3e8081461073a578063c49b9a801461074f57610290565b8063a457c2d711610122578063a72079d611610107578063a72079d6146106b3578063a9059cbb146106ec578063ac177d3b1461072557610290565b8063a457c2d714610650578063a4f2d8991461068957610290565b806376bbe666146105d057806383e6bcd2146105fc5780638da5cb5b1461062657806395d89b411461063b57610290565b80633950935111610201578063519da73e116101b557806370a082311161019a57806370a0823114610573578063715018a6146105a6578063733b864f146105bb57610290565b8063519da73e146105305780635c6e88381461055e57610290565b806349abb68e116101e657806349abb68e146104f157806349bd5a5e146105065780634ada218b1461051b57610290565b806339509351146104865780634549b039146104bf57610290565b80631694505e1161025857806323b872dd1161023d57806323b872dd146103ee5780632d83811914610431578063313ce5671461045b57610290565b80631694505e146103c457806318160ddd146103d957610290565b806306fdde0314610295578063095ea7b31461031f57806310336de01461036c57806313114a9d1461039d57610290565b3661029057005b600080fd5b3480156102a157600080fd5b506102aa6108d8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e45781810151838201526020016102cc565b50505050905090810190601f1680156103115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032b57600080fd5b506103586004803603604081101561034257600080fd5b506001600160a01b03813516906020013561098c565b604080519115158252519081900360200190f35b34801561037857600080fd5b506103816109aa565b604080516001600160a01b039092168252519081900360200190f35b3480156103a957600080fd5b506103b26109b9565b60408051918252519081900360200190f35b3480156103d057600080fd5b506103816109bf565b3480156103e557600080fd5b506103b26109ce565b3480156103fa57600080fd5b506103586004803603606081101561041157600080fd5b506001600160a01b038135811691602081013590911690604001356109d4565b34801561043d57600080fd5b506103b26004803603602081101561045457600080fd5b5035610a5b565b34801561046757600080fd5b50610470610abd565b6040805160ff9092168252519081900360200190f35b34801561049257600080fd5b50610358600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610ac6565b3480156104cb57600080fd5b506103b2600480360360408110156104e257600080fd5b50803590602001351515610b14565b3480156104fd57600080fd5b50610381610ba4565b34801561051257600080fd5b50610381610bb3565b34801561052757600080fd5b50610358610bc2565b34801561053c57600080fd5b5061055c6004803603602081101561055357600080fd5b50351515610bd4565b005b34801561056a57600080fd5b50610358610c79565b34801561057f57600080fd5b506103b26004803603602081101561059657600080fd5b50356001600160a01b0316610c8a565b3480156105b257600080fd5b5061055c610cec565b3480156105c757600080fd5b5061055c610db8565b3480156105dc57600080fd5b5061055c600480360360208110156105f357600080fd5b50351515610e71565b34801561060857600080fd5b5061055c6004803603602081101561061f57600080fd5b5035610f14565b34801561063257600080fd5b50610381610f92565b34801561064757600080fd5b506102aa610fa1565b34801561065c57600080fd5b506103586004803603604081101561067357600080fd5b506001600160a01b038135169060200135611020565b34801561069557600080fd5b5061055c600480360360208110156106ac57600080fd5b5035611088565b3480156106bf57600080fd5b5061055c600480360360408110156106d657600080fd5b506001600160a01b038135169060200135611160565b3480156106f857600080fd5b506103586004803603604081101561070f57600080fd5b506001600160a01b0381351690602001356112b7565b34801561073157600080fd5b506103b26112cb565b34801561074657600080fd5b5061055c6112d1565b34801561075b57600080fd5b5061055c6004803603602081101561077257600080fd5b50351515611348565b34801561078757600080fd5b506103586004803603602081101561079e57600080fd5b50356001600160a01b03166113ea565b3480156107ba57600080fd5b50610358611408565b3480156107cf57600080fd5b506103b2600480360360408110156107e657600080fd5b506001600160a01b0381358116916020013516611417565b34801561080a57600080fd5b5061055c6004803603602081101561082157600080fd5b50351515611442565b34801561083657600080fd5b5061055c6004803603602081101561084d57600080fd5b50356001600160a01b03166114e6565b34801561086957600080fd5b5061055c6004803603602081101561088057600080fd5b50356001600160a01b03166116b4565b34801561089c57600080fd5b506103586117d6565b3480156108b157600080fd5b5061055c600480360360208110156108c857600080fd5b50356001600160a01b03166117e6565b600f8054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109825780601f1061095757610100808354040283529160200191610982565b820191906000526020600020905b81548152906001019060200180831161096557829003601f168201915b5050505050905090565b60006109a0610999611a43565b8484611a47565b5060015b92915050565b600a546001600160a01b031681565b600e5490565b6001546001600160a01b031681565b600c5490565b60006109e1848484611b33565b610a51846109ed611a43565b610a4c8560405180606001604052806028815260200161300f602891396001600160a01b038a16600090815260046020526040812090610a2b611a43565b6001600160a01b0316815260208101919091526040016000205491906120ce565b611a47565b5060019392505050565b6000600d54821115610a9e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612fbf602a913960400191505060405180910390fd5b6000610aa8612165565b9050610ab48382612188565b9150505b919050565b60115460ff1690565b60006109a0610ad3611a43565b84610a4c8560046000610ae4611a43565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906121d1565b6000600c54831115610b6d576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610b8b576000610b7d8461222b565b509294506109a49350505050565b6000610b968461222b565b509194506109a49350505050565b600b546001600160a01b031681565b6007546001600160a01b031681565b60145465010000000000900460ff1681565b610bdc611a43565b6000546001600160a01b03908116911614610c3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6014805491151565010000000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff909216919091179055565b601454640100000000900460ff1681565b6001600160a01b03811660009081526005602052604081205460ff1615610cca57506001600160a01b038116600090815260036020526040902054610ab8565b6001600160a01b0382166000908152600260205260409020546109a490610a5b565b610cf4611a43565b6000546001600160a01b03908116911614610d56576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610dc0611a43565b6000546001600160a01b03908116911614610e22576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600754600090610e3a906001600160a01b0316610c8a565b90506000610e49826021612188565b90506000610e5630610c8a565b905081811115610e635750805b610e6c81612277565b505050565b610e79611a43565b6000546001600160a01b03908116911614610edb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b601480549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b610f1c611a43565b6000546001600160a01b03908116911614610f7e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b601254610f8c908290612404565b60135550565b6000546001600160a01b031690565b60108054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109825780601f1061095757610100808354040283529160200191610982565b60006109a061102d611a43565b84610a4c856040518060600160405280602581526020016130a46025913960046000611057611a43565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906120ce565b6000611092611a43565b6001600160a01b03811660009081526005602052604090205490915060ff16156110ed5760405162461bcd60e51b815260040180806020018281038252602c8152602001806130c9602c913960400191505060405180910390fd5b60006110f88361222b565b505050506001600160a01b038316600090815260026020526040902054909150611122908261245d565b6001600160a01b038316600090815260026020526040902055600d54611148908261245d565b600d55600e5461115890846121d1565b600e55505050565b611168611a43565b6000546001600160a01b039081169116146111ca576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008060006111d88461249f565b3360009081526002602052604090205492955090935091506111fa908461245d565b336000908152600260209081526040808320939093556001600160a01b038816825260039052205461122c90826121d1565b6001600160a01b03861660009081526003602090815260408083209390935560029052205461125b90836121d1565b6001600160a01b0386166000818152600260209081526040918290209390935580518481529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050505050565b60006109a06112c4611a43565b8484611b33565b60135490565b6112d9611a43565b6000546001600160a01b0390811691161461133b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b47611345816124da565b50565b611350611a43565b6000546001600160a01b039081169116146113b2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6014805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b6001600160a01b031660009081526005602052604090205460ff1690565b60145462010000900460ff1681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61144a611a43565b6000546001600160a01b039081169116146114ac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60148054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b6114ee611a43565b6000546001600160a01b03908116911614611550576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16156115be576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205415611618576001600160a01b0381166000908152600260205260409020546115fe90610a5b565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b0316600081815260056020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b6116bc611a43565b6000546001600160a01b0390811691161461171e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166117635760405162461bcd60e51b8152600401808060200182810382526026815260200180612fe96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6014546301000000900460ff1681565b6117ee611a43565b6000546001600160a01b03908116911614611850576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff166118bd576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600654811015611a3f57816001600160a01b0316600682815481106118e157fe5b6000918252602090912001546001600160a01b03161415611a3757600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061192c57fe5b600091825260209091200154600680546001600160a01b03909216918390811061195257fe5b600091825260208083209190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03948516179055918416815260038252604080822082905560059092522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560068054806119da57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055611a3f565b6001016118c0565b5050565b3390565b6001600160a01b038316611a8c5760405162461bcd60e51b8152600401808060200182810382526024815260200180612f9b6024913960400191505060405180910390fd5b6001600160a01b038216611ad15760405162461bcd60e51b81526004018080602001828103825260228152602001806130f56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316611b785760405162461bcd60e51b8152600401808060200182810382526025815260200180612f766025913960400191505060405180910390fd5b6001600160a01b038216611bbd5760405162461bcd60e51b81526004018080602001828103825260238152602001806130816023913960400191505060405180910390fd5b60008111611bfc5760405162461bcd60e51b81526004018080602001828103825260298152602001806130586029913960400191505060405180910390fd5b601454610100900460ff1615611c4457611c178383836126c5565b601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055610e6c565b600b546000906001908290611c6e90611c65906001600160a01b0316610c8a565b600c549061245d565b90506001600160a01b038616301480611c9f5750611c8a610f92565b6001600160a01b0316866001600160a01b0316145b80611cb757506009546001600160a01b038781169116145b15611cc55760009250611cca565b600192505b6007546001600160a01b0386811691161480611cf357506001546001600160a01b038681169116145b15611d1857828015611d0e57506014546301000000900460ff165b15611d1857600291505b82156120935760145465010000000000900460ff16611d7e576040805162461bcd60e51b815260206004820152601360248201527f74726164696e67206e6f7420656e61626c656400000000000000000000000000604482015290519081900360640190fd5b6000611d8b826064612188565b601454909150640100000000900460ff1615611df65780851115611df6576040805162461bcd60e51b815260206004820152601560248201527f4d757374206265203c3d203125206f6620636972630000000000000000000000604482015290519081900360640190fd5b6000611e0130610c8a565b6013549091508110154783831115611e17578392505b8015611e5757601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611e52816124da565b611ecc565b818015611e67575060145460ff16155b8015611e7e57506007546001600160a01b03163314155b8015611e92575060145462010000900460ff165b15611ecc57601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611ecc83612277565b6000611ee687611ee06009818d6064612188565b90612404565b90506000611ef988611ee08c6064612188565b9050611f0f82611f098c8461245d565b9061245d565b9950611f1c8c30846127ad565b600b54611f34908d906001600160a01b0316836127ad565b6001600160a01b038c1660009081526005602052604090205460ff168015611f7557506001600160a01b038b1660009081526005602052604090205460ff16155b15611f8a57611f858c8c8c612853565b612088565b6001600160a01b038c1660009081526005602052604090205460ff16158015611fcb57506001600160a01b038b1660009081526005602052604090205460ff165b15611fdb57611f858c8c8c6127ad565b6001600160a01b038c1660009081526005602052604090205460ff1615801561201d57506001600160a01b038b1660009081526005602052604090205460ff16155b1561202d57611f858c8c8c6126c5565b6001600160a01b038c1660009081526005602052604090205460ff16801561206d57506001600160a01b038b1660009081526005602052604090205460ff165b1561207d57611f858c8c8c6128c3565b6120888c8c8c6126c5565b50505050505061209e565b61209e868686612933565b5050601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550505050565b6000818484111561215d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561212257818101518382015260200161210a565b50505050905090810190601f16801561214f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000612172612a30565b90925090506121818282612188565b9250505090565b60006121ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b93565b9392505050565b6000828201838110156121ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600080600061223f88612bf8565b91509150600061224d612165565b9050600080600061225f8c8686612c41565b919e909d50909b509599509397509395505050505050565b601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560006122b46011611ee0846012612188565b905060006122c2838361245d565b9050476122ce83612c7d565b60006122da478361245d565b905060006122e9826011612188565b905060006122fd6002611ee0856011612188565b905060006123116004611ee0866011612188565b6008546040519192506001600160a01b03169083156108fc029084906000818181858888f1935050505015801561234c573d6000803e3d6000fd5b506009546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612387573d6000803e3d6000fd5b506123928684612e5e565b604080518881526020810185905280820188905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15050601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050565b600082612413575060006109a4565b8282028284828161242057fe5b04146121ca5760405162461bcd60e51b81526004018080602001828103825260218152602001806130376021913960400191505060405180910390fd5b60006121ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120ce565b6000806000806124ae85612f35565b905060006124ba612165565b90506000806124c98884612f38565b909990985093965092945050505050565b6040805160028082526060820183526000926020830190803683375050600154604080517fad5c464800000000000000000000000000000000000000000000000000000000815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561255857600080fd5b505afa15801561256c573d6000803e3d6000fd5b505050506040513d602081101561258257600080fd5b50518151829060009061259157fe5b6001600160a01b039283166020918202929092010152600a548251911690829060019081106125bc57fe5b6001600160a01b0392831660209182029290920101526001546125e29130911684611a47565b600154600b546040517fb6f9de95000000000000000000000000000000000000000000000000000000008152600481018581526001600160a01b03928316604483018190524260648401819052608060248501908152875160848601528751959096169563b6f9de9595899586958a9594939092909160a401906020808801910280838360005b83811015612681578181015183820152602001612669565b50505050905001955050505050506000604051808303818588803b1580156126a857600080fd5b505af11580156126bc573d6000803e3d6000fd5b50505050505050565b60008060008060006126d68661222b565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150612706908661245d565b6001600160a01b03808a16600090815260026020526040808220939093559089168152205461273590856121d1565b6001600160a01b0388166000908152600260205260409020556127588382612f51565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127be8661222b565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506127ee908661245d565b6001600160a01b03808a16600090815260026020908152604080832094909455918a1681526003909152205461282490836121d1565b6001600160a01b03881660009081526003602090815260408083209390935560029052205461273590856121d1565b60008060008060006128648661222b565b6001600160a01b038d1660009081526003602052604090205494995092975090955093509150612894908761245d565b6001600160a01b038916600090815260036020908152604080832093909355600290522054612706908661245d565b60008060008060006128d48661222b565b6001600160a01b038d1660009081526003602052604090205494995092975090955093509150612904908761245d565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546127ee908661245d565b60008060006129418461249f565b6001600160a01b038916600090815260026020526040902054929550909350915061296c908461245d565b6001600160a01b038088166000908152600260209081526040808320949094559188168152600390915220546129a290826121d1565b6001600160a01b0386166000908152600360209081526040808320939093556002905220546129d190836121d1565b6001600160a01b0380871660008181526002602090815260409182902094909455805185815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050505050565b600d54600c546000918291825b600654811015612b6157826002600060068481548110612a5957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612abe5750816003600060068481548110612a9757fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612ad557600d54600c5494509450505050612b8f565b612b156002600060068481548110612ae957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061245d565b9250612b576003600060068481548110612b2b57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061245d565b9150600101612a3d565b50600c54600d54612b7191612188565b821015612b8957600d54600c54935093505050612b8f565b90925090505b9091565b60008183612be25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561212257818101518382015260200161210a565b506000838581612bee57fe5b0495945050505050565b60145460009081906002906301000000900460ff1615612c16575060045b6000612c2782611ee0876064612188565b90506000612c35868361245d565b94509092505050915091565b6000808080612c508786612404565b90506000612c5e8787612404565b90506000612c6c838361245d565b929992985090965090945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612cac57fe5b6001600160a01b03928316602091820292909201810191909152600154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015612d1957600080fd5b505afa158015612d2d573d6000803e3d6000fd5b505050506040513d6020811015612d4357600080fd5b5051815182906001908110612d5457fe5b6001600160a01b039283166020918202929092010152600154612d7a9130911684611a47565b6001546040517f791ac947000000000000000000000000000000000000000000000000000000008152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015612e19578181015183820152602001612e01565b505050509050019650505050505050600060405180830381600087803b158015612e4257600080fd5b505af1158015612e56573d6000803e3d6000fd5b505050505050565b600154612e769030906001600160a01b031684611a47565b600154600b54604080517ff305d7190000000000000000000000000000000000000000000000000000000081523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b158015612f0457600080fd5b505af1158015612f18573d6000803e3d6000fd5b50505050506040513d6060811015612f2f57600080fd5b50505050565b90565b60008080612f468585612404565b958695509350505050565b600d54612f5e908361245d565b600d55600e54612f6e90826121d1565b600e55505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a26469706673582212206fea11ba930e590d3e55e69104b76a271074d9ebbb00f125814f9887b9204ee964736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000053f997da7206d6bf90ffc4236b3ca8efb7bb1a890000000000000000000000002adf3ddd9a238e8c0afea647137ae4f534405388
-----Decoded View---------------
Arg [0] : _presa (address): 0x53F997da7206D6bF90Ffc4236b3ca8EfB7BB1A89
Arg [1] : _rogeTreasury (address): 0x2ADf3ddd9A238E8c0afea647137aE4F534405388
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000053f997da7206d6bf90ffc4236b3ca8efb7bb1a89
Arg [1] : 0000000000000000000000002adf3ddd9a238e8c0afea647137ae4f534405388
Deployed Bytecode Sourcemap
12817:19345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16432:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17344:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17344:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;13363:64;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13363:64:0;;;;;;;;;;;;;;18455:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12953:41;;;;;;;;;;;;;:::i;16709:95::-;;;;;;;;;;;;;:::i;17513:313::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17513:313:0;;;;;;;;;;;;;;;;;:::i;19390:253::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19390:253:0;;:::i;16618:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17834:218;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17834:218:0;;;;;;;;:::i;18948:434::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18948:434:0;;;;;;;;;:::i;13435:75::-;;;;;;;;;;;;;:::i;13265:28::-;;;;;;;;;;;;;:::i;14087:26::-;;;;;;;;;;;;;:::i;15952:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15952:101:0;;;;:::i;:::-;;14060:20;;;;;;;;;;;;;:::i;16812:198::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16812:198:0;-1:-1:-1;;;;;16812:198:0;;:::i;5746:148::-;;;;;;;;;;;;;:::i;15143:391::-;;;;;;;;;;;;;:::i;15845:99::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15845:99:0;;;;:::i;16166:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16166:135:0;;:::i;5524:79::-;;;;;;;;;;;;;:::i;16523:87::-;;;;;;;;;;;;;:::i;18060:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18060:269:0;;;;;;;;:::i;18554:386::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18554:386:0;;:::i;26324:472::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26324:472:0;;;;;;;;:::i;17018:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17018:167:0;;;;;;;;:::i;16313:111::-;;;;;;;;;;;;;:::i;15542:159::-;;;;;;;;;;;;;:::i;15713:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15713:116:0;;;;:::i;18337:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18337:110:0;-1:-1:-1;;;;;18337:110:0;;:::i;13987:34::-;;;;;;;;;;;;;:::i;17193:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17193:143:0;;;;;;;;;;:::i;16065:89::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16065:89:0;;;;:::i;19651:332::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19651:332:0;-1:-1:-1;;;;;19651:332:0;;:::i;5906:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5906:244:0;-1:-1:-1;;;;;5906:244:0;;:::i;14028:25::-;;;;;;;;;;;;;:::i;19991:478::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19991:478:0;-1:-1:-1;;;;;19991:478:0;;:::i;16432:83::-;16502:5;16495:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16469:13;;16495:12;;16502:5;;16495:12;;16502:5;16495:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16432:83;:::o;17344:161::-;17419:4;17436:39;17445:12;:10;:12::i;:::-;17459:7;17468:6;17436:8;:39::i;:::-;-1:-1:-1;17493:4:0;17344:161;;;;;:::o;13363:64::-;;;-1:-1:-1;;;;;13363:64:0;;:::o;18455:87::-;18524:10;;18455:87;:::o;12953:41::-;;;-1:-1:-1;;;;;12953:41:0;;:::o;16709:95::-;16789:7;;16709:95;:::o;17513:313::-;17611:4;17628:36;17638:6;17646:9;17657:6;17628:9;:36::i;:::-;17675:121;17684:6;17692:12;:10;:12::i;:::-;17706:89;17744:6;17706:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17706:19:0;;;;;;:11;:19;;;;;;17726:12;:10;:12::i;:::-;-1:-1:-1;;;;;17706:33:0;;;;;;;;;;;;-1:-1:-1;17706:33:0;;;:89;:37;:89::i;:::-;17675:8;:121::i;:::-;-1:-1:-1;17814:4:0;17513:313;;;;;:::o;19390:253::-;19456:7;19495;;19484;:18;;19476:73;;;;-1:-1:-1;;;19476:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19560:19;19583:10;:8;:10::i;:::-;19560:33;-1:-1:-1;19611:24:0;:7;19560:33;19611:11;:24::i;:::-;19604:31;;;19390:253;;;;:::o;16618:83::-;16684:9;;;;16618:83;:::o;17834:218::-;17922:4;17939:83;17948:12;:10;:12::i;:::-;17962:7;17971:50;18010:10;17971:11;:25;17983:12;:10;:12::i;:::-;-1:-1:-1;;;;;17971:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;17971:25:0;;;:34;;;;;;;;;;;:38;:50::i;18948:434::-;19038:7;19077;;19066;:18;;19058:62;;;;;-1:-1:-1;;;19058:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19136:17;19131:244;;19171:15;19194:19;19205:7;19194:10;:19::i;:::-;-1:-1:-1;19170:43:0;;-1:-1:-1;19228:14:0;;-1:-1:-1;;;;19228:14:0;19131:244;19277:23;19307:19;19318:7;19307:10;:19::i;:::-;-1:-1:-1;19275:51:0;;-1:-1:-1;19341:22:0;;-1:-1:-1;;;;19341:22:0;13435:75;;;-1:-1:-1;;;;;13435:75:0;;:::o;13265:28::-;;;-1:-1:-1;;;;;13265:28:0;;:::o;14087:26::-;;;;;;;;;:::o;15952:101::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16022:14:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15952:101::o;14060:20::-;;;;;;;;;:::o;16812:198::-;-1:-1:-1;;;;;16902:20:0;;16878:7;16902:20;;;:11;:20;;;;;;;;16898:49;;;-1:-1:-1;;;;;;16931:16:0;;;;;;:7;:16;;;;;;16924:23;;16898:49;-1:-1:-1;;;;;16985:16:0;;;;;;:7;:16;;;;;;16965:37;;:19;:37::i;5746:148::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5853:1:::1;5837:6:::0;;5816:40:::1;::::0;-1:-1:-1;;;;;5837:6:0;;::::1;::::0;5816:40:::1;::::0;5853:1;;5816:40:::1;5884:1;5867:19:::0;;;::::1;::::0;;5746:148::o;15143:391::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15232:13:::1;::::0;15205:14:::1;::::0;15222:24:::1;::::0;-1:-1:-1;;;;;15232:13:0::1;15222:9;:24::i;:::-;15205:41:::0;-1:-1:-1;15257:20:0::1;15280:17;15205:41:::0;15294:2:::1;15280:13;:17::i;:::-;15257:40;;15308:25;15336:24;15354:4;15336:9;:24::i;:::-;15308:52;;15398:15;15375:20;:38;15371:109;;;-1:-1:-1::0;15453:15:0;15371:109:::1;15490:36;15505:20;15490:14;:36::i;:::-;5725:1;;;15143:391::o:0;15845:99::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15914:13:::1;:22:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15845:99::o;16166:135::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16279:13:::1;::::0;16268:25:::1;::::0;:6;;:10:::1;:25::i;:::-;16243:22;:50:::0;-1:-1:-1;16166:135:0:o;5524:79::-;5562:7;5589:6;-1:-1:-1;;;;;5589:6:0;5524:79;:::o;16523:87::-;16595:7;16588:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16562:13;;16588:14;;16595:7;;16588:14;;16595:7;16588:14;;;;;;;;;;;;;;;;;;;;;;;;18060:269;18153:4;18170:129;18179:12;:10;:12::i;:::-;18193:7;18202:96;18241:15;18202:96;;;;;;;;;;;;;;;;;:11;:25;18214:12;:10;:12::i;:::-;-1:-1:-1;;;;;18202:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;18202:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;18554:386::-;18616:14;18633:12;:10;:12::i;:::-;-1:-1:-1;;;;;18665:19:0;;;;;;:11;:19;;;;;;18616:29;;-1:-1:-1;18665:19:0;;18664:20;18656:77;;;;-1:-1:-1;;;18656:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18745:15;18768:19;18779:7;18768:10;:19::i;:::-;-1:-1:-1;;;;;;;;;18816:15:0;;;;;;:7;:15;;;;;;18744:43;;-1:-1:-1;18816:28:0;;18744:43;18816:19;:28::i;:::-;-1:-1:-1;;;;;18798:15:0;;;;;;:7;:15;;;;;:46;18865:7;;:20;;18877:7;18865:11;:20::i;:::-;18855:7;:30;18909:10;;:23;;18924:7;18909:14;:23::i;:::-;18896:10;:36;-1:-1:-1;;;18554:386:0:o;26324:472::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26425:12:::1;26439:20:::0;26461::::1;26485:21;26498:7;26485:12;:21::i;:::-;26547:10;26539:19;::::0;;;:7:::1;:19;::::0;;;;;26424:82;;-1:-1:-1;26424:82:0;;-1:-1:-1;26424:82:0;-1:-1:-1;26539:32:0::1;::::0;26424:82;26539:23:::1;:32::i;:::-;26525:10;26517:19;::::0;;;:7:::1;:19;::::0;;;;;;;:54;;;;-1:-1:-1;;;;;26603:18:0;::::1;::::0;;:7:::1;:18:::0;;;;:39:::1;::::0;26626:15;26603:22:::1;:39::i;:::-;-1:-1:-1::0;;;;;26582:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;;;;:60;;;;26674:7:::1;:18:::0;;;;:39:::1;::::0;26697:15;26674:22:::1;:39::i;:::-;-1:-1:-1::0;;;;;26653:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;;;;;:60;;;;26740:48;;;;;;;26653:18;;26749:10:::1;::::0;26740:48:::1;::::0;;;;;;;;::::1;5725:1;;;26324:472:::0;;:::o;17018:167::-;17096:4;17113:42;17123:12;:10;:12::i;:::-;17137:9;17148:6;17113:9;:42::i;16313:111::-;16394:22;;16313:111;:::o;15542:159::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15627:21:::1;15659:34;15627:21:::0;15659:14:::1;:34::i;:::-;5725:1;15542:159::o:0;15713:116::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15790:22:::1;:31:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15713:116::o;18337:110::-;-1:-1:-1;;;;;18419:20:0;18395:4;18419:20;;;:11;:20;;;;;;;;;18337:110::o;13987:34::-;;;;;;;;;:::o;17193:143::-;-1:-1:-1;;;;;17301:18:0;;;17274:7;17301:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17193:143::o;16065:89::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16129:8:::1;:17:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;16065:89::o;19651:332::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19733:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;19732:21;19724:61;;;::::0;;-1:-1:-1;;;19724:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;19799:16:0;::::1;19818:1;19799:16:::0;;;:7:::1;:16;::::0;;;;;:20;19796:108:::1;;-1:-1:-1::0;;;;;19875:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;19855:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;19836:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;19796:108:::1;-1:-1:-1::0;;;;;19914:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;;::::1;19937:4;19914:27:::0;;::::1;::::0;;;19952:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;19651:332::o;5906:244::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5995:22:0;::::1;5987:73;;;;-1:-1:-1::0;;;5987:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6097:6;::::0;;6076:38:::1;::::0;-1:-1:-1;;;;;6076:38:0;;::::1;::::0;6097:6;::::1;::::0;6076:38:::1;::::0;::::1;6125:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;6125:17:0;;;::::1;::::0;;;::::1;::::0;;5906:244::o;14028:25::-;;;;;;;;;:::o;19991:478::-;5665:12;:10;:12::i;:::-;5655:6;;-1:-1:-1;;;;;5655:6:0;;;:22;;;5647:67;;;;;-1:-1:-1;;;5647:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20072:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;20064:60;;;::::0;;-1:-1:-1;;;20064:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20140:9;20135:327;20159:9;:16:::0;20155:20;::::1;20135:327;;;20217:7;-1:-1:-1::0;;;;;20201:23:0::1;:9;20211:1;20201:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;20201:12:0::1;:23;20197:254;;;20260:9;20270:16:::0;;:20;;;;20260:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;20245:9:::1;:12:::0;;-1:-1:-1;;;;;20260:31:0;;::::1;::::0;20255:1;;20245:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;;::::1;-1:-1:-1::0;;;;;20245:46:0;;::::1;;::::0;;20310:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;20349:11:::1;:20:::0;;;;:28;;;::::1;::::0;;20396:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;20430:5:::1;;20197:254;20177:3;;20135:327;;;;19991:478:::0;:::o;103:106::-;191:10;103:106;:::o;20477:337::-;-1:-1:-1;;;;;20570:19:0;;20562:68;;;;-1:-1:-1;;;20562:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20649:21:0;;20641:68;;;;-1:-1:-1;;;20641:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20722:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20774:32;;;;;;;;;;;;;;;;;20477:337;;;:::o;20822:3219::-;-1:-1:-1;;;;;20919:20:0;;20911:70;;;;-1:-1:-1;;;20911:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21000:23:0;;20992:71;;;;-1:-1:-1;;;20992:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21091:1;21082:6;:10;21074:64;;;;-1:-1:-1;;;21074:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21162:14;;;;;;;21159:2881;;;21188:44;21206:6;21214:9;21225:6;21188:17;:44::i;:::-;21243:14;:22;;;;;;21159:2881;;;21421:15;;21308:18;;21354:1;;21308:18;;21391:48;;21403:35;;-1:-1:-1;;;;;21421:15:0;21403:9;:35::i;:::-;21391:7;;;:11;:48::i;:::-;21366:73;-1:-1:-1;;;;;;21456:23:0;;21474:4;21456:23;;:44;;;21493:7;:5;:7::i;:::-;-1:-1:-1;;;;;21483:17:0;:6;-1:-1:-1;;;;;21483:17:0;;21456:44;:79;;;-1:-1:-1;21522:12:0;;-1:-1:-1;;;;;21504:31:0;;;21522:12;;21504:31;21456:79;21453:185;;;21568:5;21552:21;;21453:185;;;21622:4;21606:20;;21453:185;21674:13;;-1:-1:-1;;;;;21653:35:0;;;21674:13;;21653:35;;:76;;-1:-1:-1;21713:15:0;;-1:-1:-1;;;;;21692:37:0;;;21713:15;;21692:37;21653:76;21650:226;;;21771:13;:30;;;;-1:-1:-1;21788:13:0;;;;;;;21771:30;21767:98;;;21844:1;21832:13;;21767:98;21900:13;21896:2104;;;21938:14;;;;;;;21930:46;;;;;-1:-1:-1;;;21930:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21991:10;22004:26;:17;22026:3;22004:21;:26::i;:::-;22049:8;;21991:39;;-1:-1:-1;22049:8:0;;;;;22045:98;;;22096:5;22086:6;:15;;22078:49;;;;;-1:-1:-1;;;22078:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22171:25;22199:24;22217:4;22199:9;:24::i;:::-;22290:22;;22171:52;;-1:-1:-1;22266:46:0;;;22354:21;22393:28;;;22390:100;;;22469:5;22446:28;;22390:100;22521:22;;22518:356;;22564:14;:21;;;;;;;;22604:34;22619:18;22604:14;:34::i;:::-;22518:356;;;22664:19;:40;;;;-1:-1:-1;22688:16:0;;;;22687:17;22664:40;:71;;;;-1:-1:-1;22722:13:0;;-1:-1:-1;;;;;22722:13:0;22708:10;:27;;22664:71;:97;;;;-1:-1:-1;22739:22:0;;;;;;;22664:97;22660:214;;;22782:14;:21;;;;;;;;22822:36;22837:20;22822:14;:36::i;:::-;22902:16;22921:37;22948:9;22921:22;22941:1;22921:22;:6;22932:3;22921:10;:15::i;:::-;:19;;:22::i;:37::-;22902:56;-1:-1:-1;22973:15:0;22991:30;23011:9;22991:15;:6;23002:3;22991:10;:15::i;:30::-;22973:48;-1:-1:-1;23045:39:0;23072:11;23045:22;:6;22973:48;23045:10;:22::i;:::-;:26;;:39::i;:::-;23036:48;;23099:55;23119:6;23135:4;23142:11;23099:19;:55::i;:::-;23205:15;;23169:65;;23189:6;;-1:-1:-1;;;;;23205:15:0;23223:10;23169:19;:65::i;:::-;-1:-1:-1;;;;;23267:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;23291:22:0;;;;;;:11;:22;;;;;;;;23290:23;23267:46;23263:637;;;23334:48;23356:6;23364:9;23375:6;23334:21;:48::i;:::-;23263:637;;;-1:-1:-1;;;;;23409:19:0;;;;;;:11;:19;;;;;;;;23408:20;:46;;;;-1:-1:-1;;;;;;23432:22:0;;;;;;:11;:22;;;;;;;;23408:46;23404:496;;;23475:46;23495:6;23503:9;23514:6;23475:19;:46::i;23404:496::-;-1:-1:-1;;;;;23548:19:0;;;;;;:11;:19;;;;;;;;23547:20;:47;;;;-1:-1:-1;;;;;;23572:22:0;;;;;;:11;:22;;;;;;;;23571:23;23547:47;23543:357;;;23615:44;23633:6;23641:9;23652:6;23615:17;:44::i;23543:357::-;-1:-1:-1;;;;;23685:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;23708:22:0;;;;;;:11;:22;;;;;;;;23685:45;23681:219;;;23751:48;23773:6;23781:9;23792:6;23751:21;:48::i;23681:219::-;23840:44;23858:6;23866:9;23877:6;23840:17;:44::i;:::-;21896:2104;;;;;;;;;23932:56;23962:6;23970:9;23981:6;23932:29;:56::i;:::-;-1:-1:-1;;24010:14:0;:22;;;;;;-1:-1:-1;20822:3219:0;;;:::o;1505:192::-;1591:7;1627:12;1619:6;;;;1611:29;;;;-1:-1:-1;;;1611:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1663:5:0;;;1505:192::o;29155:163::-;29196:7;29217:15;29234;29253:19;:17;:19::i;:::-;29216:56;;-1:-1:-1;29216:56:0;-1:-1:-1;29290:20:0;29216:56;;29290:11;:20::i;:::-;29283:27;;;;29155:163;:::o;1967:132::-;2025:7;2052:39;2056:1;2059;2052:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2045:46;1967:132;-1:-1:-1;;;1967:132:0:o;1164:181::-;1222:7;1254:5;;;1278:6;;;;1270:46;;;;;-1:-1:-1;;;1270:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;28057:411;28116:7;28125;28134;28143;28152;28173:23;28198:12;28214:20;28226:7;28214:11;:20::i;:::-;28172:62;;;;28245:19;28268:10;:8;:10::i;:::-;28245:33;;28290:15;28307:23;28332:12;28348:39;28360:7;28369:4;28375:11;28348;:39::i;:::-;28289:98;;;;-1:-1:-1;28289:98:0;;-1:-1:-1;28438:15:0;;-1:-1:-1;28455:4:0;;-1:-1:-1;28057:411:0;;-1:-1:-1;;;;;;28057:411:0:o;29899:910::-;14257:16;:23;;;;14276:4;14257:23;;;:16;30015:36:::1;30048:2;30015:28;:20:::0;30040:2:::1;30015:24;:28::i;:36::-;29984:67:::0;-1:-1:-1;30062:24:0::1;30089:46;:20:::0;29984:67;30089:24:::1;:46::i;:::-;30062:73:::0;-1:-1:-1;30181:21:0::1;30223:38;30240:20:::0;30223:16:::1;:38::i;:::-;30283:18;30304:41;:21;30330:14:::0;30304:25:::1;:41::i;:::-;30283:62:::0;-1:-1:-1;30366:20:0::1;30389:18;30283:62:::0;30404:2:::1;30389:14;:18::i;:::-;30366:41:::0;-1:-1:-1;30418:13:0::1;30434:25;30457:1;30434:18;:10:::0;30449:2:::1;30434:14;:18::i;:25::-;30418:41:::0;-1:-1:-1;30470:20:0::1;30493:25;30516:1;30493:18;:10:::0;30508:2:::1;30493:14;:18::i;:25::-;30555:5;::::0;30539:42:::1;::::0;30470:48;;-1:-1:-1;;;;;;30555:5:0::1;::::0;30539:42;::::1;;;::::0;30572:8;;30555:5:::1;30539:42:::0;30555:5;30539:42;30572:8;30555:5;30539:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;30608:12:0::1;::::0;30592:56:::1;::::0;-1:-1:-1;;;;;30608:12:0;;::::1;::::0;30592:56;::::1;;;::::0;30632:15;;30608:12:::1;30592:56:::0;30608:12;30592:56;30632:15;30608:12;30592:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;30659:47;30672:16;30690:15;30659:12;:47::i;:::-;30732:69;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;14303:16:0;:24;;;;;;-1:-1:-1;;;;;;29899:910:0:o;1709:246::-;1767:7;1791:6;1787:47;;-1:-1:-1;1821:1:0;1814:8;;1787:47;1856:5;;;1860:1;1856;:5;:1;1880:5;;;;;:10;1872:56;;;;-1:-1:-1;;;1872:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1357:136;1415:7;1442:43;1446:1;1449;1442:43;;;;;;;;;;;;;;;;;:3;:43::i;27284:341::-;27345:7;27354;27363;27384:20;27408:22;27422:7;27408:13;:22::i;:::-;27383:47;;27441:16;27461:10;:8;:10::i;:::-;27441:30;;27483:12;27497:20;27521:35;27535:7;27544:11;27521:13;:35::i;:::-;27482:74;;;;-1:-1:-1;27601:15:0;;-1:-1:-1;27284:341:0;;-1:-1:-1;;;;;27284:341:0:o;31311:409::-;31394:16;;;31408:1;31394:16;;;;;;;;31370:21;;31394:16;;;;;;;;-1:-1:-1;;31431:15:0;;:22;;;;;;;;31370:40;;-1:-1:-1;;;;;;31431:15:0;;;;:20;;-1:-1:-1;31431:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31431:22:0;31421:7;;:4;;31426:1;;31421:7;;;;-1:-1:-1;;;;;31421:32:0;;;:7;;;;;;;;;:32;31482:4;;31464:7;;31482:4;;;31464;;31482;;31464:7;;;;;;-1:-1:-1;;;;;31464:23:0;;;:7;;;;;;;;;:23;31532:15;;31500:60;;31517:4;;31532:15;31550:9;31500:8;:60::i;:::-;31571:15;;31679;;31571:141;;;;;;;;;;;-1:-1:-1;;;;;31679:15:0;;;31571:141;;;;;;31696:15;31571:141;;;;;;;;;;;;;;;;;;;;;:15;;;;;:66;;31645:9;;;;31666:4;;31679:15;31696;31571:141;;;;;;;;;;;;;;;;:15;:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31311:409;;:::o;24055:452::-;24154:15;24171:23;24196:12;24210:23;24235:12;24251:19;24262:7;24251:10;:19::i;:::-;-1:-1:-1;;;;;24299:15:0;;;;;;:7;:15;;;;;;24153:117;;-1:-1:-1;24153:117:0;;-1:-1:-1;24153:117:0;;-1:-1:-1;24153:117:0;-1:-1:-1;24153:117:0;-1:-1:-1;24299:28:0;;24153:117;24299:19;:28::i;:::-;-1:-1:-1;;;;;24281:15:0;;;;;;;:7;:15;;;;;;:46;;;;24359:18;;;;;;;:39;;24382:15;24359:22;:39::i;:::-;-1:-1:-1;;;;;24338:18:0;;;;;;:7;:18;;;;;:60;24416:23;24428:4;24434;24416:11;:23::i;:::-;24472:9;-1:-1:-1;;;;;24455:44:0;24464:6;-1:-1:-1;;;;;24455:44:0;;24483:15;24455:44;;;;;;;;;;;;;;;;;;24055:452;;;;;;;;:::o;24518:529::-;24619:15;24636:23;24661:12;24675:23;24700:12;24716:19;24727:7;24716:10;:19::i;:::-;-1:-1:-1;;;;;24764:15:0;;;;;;:7;:15;;;;;;24618:117;;-1:-1:-1;24618:117:0;;-1:-1:-1;24618:117:0;;-1:-1:-1;24618:117:0;-1:-1:-1;24618:117:0;-1:-1:-1;24764:28:0;;24618:117;24764:19;:28::i;:::-;-1:-1:-1;;;;;24746:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;24824:18;;;;;:7;:18;;;;;:39;;24847:15;24824:22;:39::i;:::-;-1:-1:-1;;;;;24803:18:0;;;;;;:7;:18;;;;;;;;:60;;;;24895:7;:18;;;;:39;;24918:15;24895:22;:39::i;25055:509::-;25158:15;25175:23;25200:12;25214:23;25239:12;25255:19;25266:7;25255:10;:19::i;:::-;-1:-1:-1;;;;;25303:15:0;;;;;;:7;:15;;;;;;25157:117;;-1:-1:-1;25157:117:0;;-1:-1:-1;25157:117:0;;-1:-1:-1;25157:117:0;-1:-1:-1;25157:117:0;-1:-1:-1;25303:28:0;;25323:7;25303:19;:28::i;:::-;-1:-1:-1;;;;;25285:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25360:7;:15;;;;:28;;25380:7;25360:19;:28::i;25572:585::-;25675:15;25692:23;25717:12;25731:23;25756:12;25772:19;25783:7;25772:10;:19::i;:::-;-1:-1:-1;;;;;25820:15:0;;;;;;:7;:15;;;;;;25674:117;;-1:-1:-1;25674:117:0;;-1:-1:-1;25674:117:0;;-1:-1:-1;25674:117:0;-1:-1:-1;25674:117:0;-1:-1:-1;25820:28:0;;25840:7;25820:19;:28::i;:::-;-1:-1:-1;;;;;25802:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25877:7;:15;;;;:28;;25897:7;25877:19;:28::i;26808:462::-;26919:12;26933:20;26955;26979:21;26992:7;26979:12;:21::i;:::-;-1:-1:-1;;;;;27029:15:0;;;;;;:7;:15;;;;;;26918:82;;-1:-1:-1;26918:82:0;;-1:-1:-1;26918:82:0;-1:-1:-1;27029:28:0;;26918:82;27029:19;:28::i;:::-;-1:-1:-1;;;;;27011:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;27089:18;;;;;:7;:18;;;;;:39;;27112:15;27089:22;:39::i;:::-;-1:-1:-1;;;;;27068:18:0;;;;;;:7;:18;;;;;;;;:60;;;;27160:7;:18;;;;:39;;27183:15;27160:22;:39::i;:::-;-1:-1:-1;;;;;27139:18:0;;;;;;;:7;:18;;;;;;;;;:60;;;;27218:44;;;;;;;27139:18;;27218:44;;;;;;;;;;;;;26808:462;;;;;;:::o;29326:561::-;29423:7;;29459;;29376;;;;;29483:289;29507:9;:16;29503:20;;29483:289;;;29573:7;29549;:21;29557:9;29567:1;29557:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29557:12:0;29549:21;;;;;;;;;;;;;:31;;:66;;;29608:7;29584;:21;29592:9;29602:1;29592:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29592:12:0;29584:21;;;;;;;;;;;;;:31;29549:66;29545:97;;;29625:7;;29634;;29617:25;;;;;;;;;29545:97;29667:34;29679:7;:21;29687:9;29697:1;29687:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29687:12:0;29679:21;;;;;;;;;;;;;29667:7;;:11;:34::i;:::-;29657:44;;29726:34;29738:7;:21;29746:9;29756:1;29746:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29746:12:0;29738:21;;;;;;;;;;;;;29726:7;;:11;:34::i;:::-;29716:44;-1:-1:-1;29525:3:0;;29483:289;;;-1:-1:-1;29808:7:0;;29796;;:20;;:11;:20::i;:::-;29786:7;:30;29782:61;;;29826:7;;29835;;29818:25;;;;;;;;29782:61;29862:7;;-1:-1:-1;29871:7:0;-1:-1:-1;29326:561:0;;;:::o;2111:189::-;2197:7;2232:12;2225:5;2217:28;;;;-1:-1:-1;;;2217:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2256:9;2272:1;2268;:5;;;;;;;2111:189;-1:-1:-1;;;;;2111:189:0:o;28476:329::-;28595:13;;28536:7;;;;28580:1;;28595:13;;;;;28592:56;;;-1:-1:-1;28635:1:0;28592:56;28658:12;28673:29;28694:7;28673:16;:7;28685:3;28673:11;:16::i;:29::-;28658:44;-1:-1:-1;28713:23:0;28739:17;:7;28658:44;28739:11;:17::i;:::-;28713:43;-1:-1:-1;28792:4:0;;-1:-1:-1;;;28476:329:0;;;:::o;28813:334::-;28908:7;;;;28964:24;:7;28976:11;28964;:24::i;:::-;28946:42;-1:-1:-1;28999:12:0;29014:21;:4;29023:11;29014:8;:21::i;:::-;28999:36;-1:-1:-1;29046:23:0;29072:17;:7;28999:36;29072:11;:17::i;:::-;29108:7;;;;-1:-1:-1;29134:4:0;;-1:-1:-1;28813:334:0;;-1:-1:-1;;;;;28813:334:0:o;30817:481::-;30967:16;;;30981:1;30967:16;;;;;;;;30943:21;;30967:16;;;;;;;;;;-1:-1:-1;30967:16:0;30943:40;;31012:4;30994;30999:1;30994:7;;;;;;;;-1:-1:-1;;;;;30994:23:0;;;:7;;;;;;;;;;:23;;;;31038:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;30994:7;;31038:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31038:22:0;31028:7;;:4;;31033:1;;31028:7;;;;;;-1:-1:-1;;;;;31028:32:0;;;:7;;;;;;;;;:32;31105:15;;31073:62;;31090:4;;31105:15;31123:11;31073:8;:62::i;:::-;31174:15;;:116;;;;;;;;;;;:15;:116;;;;;;31268:4;31174:116;;;;;;31274:15;31174:116;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31174:15:0;;;;:66;;31241:11;;31255:4;;31268;31274:15;31174:116;;;;;;;;;;;;;;;;:15;:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30817:481;;:::o;31730:382::-;31910:15;;31878:62;;31895:4;;-1:-1:-1;;;;;31910:15:0;31928:11;31878:8;:62::i;:::-;31983:15;;32071;;31983:121;;;;;;32041:4;31983:121;;;;;;;;;;:15;:121;;;;;;;;;;-1:-1:-1;;;;;32071:15:0;;;31983:121;;;;32088:15;31983:121;;;;;;:15;;;;;:31;;32022:9;;31983:121;;;;;;;;;;;;;;;32022:9;31983:15;:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;31730:382:0:o;27633:158::-;27741:7;27633:158::o;27799:250::-;27882:7;;;27929:24;:7;27941:11;27929;:24::i;:::-;27911:42;;;-1:-1:-1;27799:250:0;-1:-1:-1;;;;27799:250:0:o;26165:147::-;26243:7;;:17;;26255:4;26243:11;:17::i;:::-;26233:7;:27;26284:10;;:20;;26299:4;26284:14;:20::i;:::-;26271:10;:33;-1:-1:-1;;26165:147:0:o
Swarm Source
ipfs://6fea11ba930e590d3e55e69104b76a271074d9ebbb00f125814f9887b9204ee9
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.