Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
99,702,829.63377585 HEX4
Holders
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HMX
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-28 */ pragma solidity ^0.5.13; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract EXCH { function distribute(uint256 _amount) public returns (uint256); function appreciateTokenPrice(uint256 _amount) public; } contract TOKEN { 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); function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external; function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external; function stakeCount(address stakerAddr) external view returns (uint256); function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool); function currentDay() external view returns (uint256); } contract Ownable { address public owner; constructor() public { owner = address(0x86d9344094297cf5a6c77c07476F40C2F9903CD8); } modifier onlyOwner() { require(msg.sender == owner); _; } } contract HMX is Ownable { using SafeMath for uint256; uint ACTIVATION_TIME = 1585440000; modifier isActivated { require(now >= ACTIVATION_TIME); if (now <= (ACTIVATION_TIME + 2 minutes)) { require(tx.gasprice <= 0.2 szabo); } _; } modifier onlyTokenHolders { require(myTokens(true) > 0); _; } modifier onlyDivis { require(myDividends(true) > 0); _; } modifier isStakeActivated { require(stakeActivated == true); _; } event onDistribute( address indexed customerAddress, uint256 tokens ); event onTokenAppreciation( uint256 tokenPrice, uint256 timestamp ); event Transfer( address indexed from, address indexed to, uint256 tokens ); event onTokenPurchase( address indexed customerAddress, uint256 incomingHEX, uint256 tokensMinted, address indexed referredBy, uint256 timestamp ); event onTokenSell( address indexed customerAddress, uint256 tokensBurned, uint256 hexEarned, uint256 timestamp ); event onRoll( address indexed customerAddress, uint256 hexRolled, uint256 tokensMinted ); event onWithdraw( address indexed customerAddress, uint256 hexWithdrawn ); event onStakeStart( address indexed customerAddress, uint256 uniqueID, uint256 currentTokens, uint256 timestamp ); event onStakeEnd( address indexed customerAddress, uint256 uniqueID, uint256 returnAmount, uint256 difference, uint256 timestamp ); string public name = "HEXMAX"; string public symbol = "HEX4"; uint8 constant public decimals = 8; uint256 constant private priceMagnitude = 1e8; uint256 constant private divMagnitude = 2 ** 64; uint8 constant private appreciateFee = 2; uint8 constant private buyInFee = 6; uint8 constant private sellOutFee = 6; uint8 constant private transferFee = 1; uint8 constant private devFee = 1; uint8 constant private hexTewFee = 1; uint8 constant private hexRiseFee = 1; mapping(address => uint256) private tokenBalanceLedger; mapping(address => uint256) private referralBalance; mapping(address => int256) private payoutsTo; mapping(address => uint256) public lockedHexBalanceLedger; struct Stats { uint256 deposits; uint256 withdrawals; uint256 staked; uint256 activeStakes; } mapping(address => Stats) public playerStats; uint256 public referralRequirement = 100000e8; uint256 public totalStakeBalance = 0; uint256 public totalPlayer = 0; uint256 public totalDonation = 0; uint256 public totalTewFundReceived = 0; uint256 public totalTewFundCollected = 0; uint256 public totalRiseFundReceived = 0; uint256 public totalRiseFundCollected = 0; uint256 private tokenSupply = 0; uint256 private profitPerShare = 0; uint256 private contractValue = 0; uint256 private tokenPrice = 100000000; EXCH hextew; EXCH hexrise; TOKEN erc20; struct StakeStore { uint40 stakeID; uint256 hexAmount; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool started; bool ended; } bool stakeActivated = true; bool feedActivated = true; mapping(address => mapping(uint256 => StakeStore)) public stakeLists; constructor() public { hextew = EXCH(address(0xD495cC8C7c29c7fA3E027a5759561Ab68C363609)); hexrise = EXCH(address(0x8D5CA96e9984662625e6cbF490Da40c9D7270865)); erc20 = TOKEN(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39)); } function() payable external { revert(); } function checkAndTransferHEX(uint256 _amount) private { require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed"); } function distribute(uint256 _amount) isActivated public { require(_amount > 0, "must be a positive value"); checkAndTransferHEX(_amount); totalDonation += _amount; profitPerShare = SafeMath.add(profitPerShare, (_amount * divMagnitude) / tokenSupply); emit onDistribute(msg.sender, _amount); } function appreciateTokenPrice(uint256 _amount) isActivated public { require(_amount > 0, "must be a positive value"); checkAndTransferHEX(_amount); totalDonation += _amount; contractValue = contractValue.add(_amount); if (tokenSupply > priceMagnitude) { tokenPrice = (contractValue.mul(priceMagnitude)) / tokenSupply; } emit onTokenAppreciation(tokenPrice, now); } function payFund(bytes32 exchange) public { if (exchange == "hextew") { uint256 _hexToPay = totalTewFundCollected.sub(totalTewFundReceived); require(_hexToPay > 0); totalTewFundReceived = totalTewFundReceived.add(_hexToPay); erc20.approve(address(0xD495cC8C7c29c7fA3E027a5759561Ab68C363609), _hexToPay); hextew.distribute(_hexToPay); } else if (exchange == "hexrise") { uint256 _hexToPay = totalRiseFundCollected.sub(totalRiseFundReceived); require(_hexToPay > 0); totalRiseFundReceived = totalRiseFundReceived.add(_hexToPay); erc20.approve(address(0x8D5CA96e9984662625e6cbF490Da40c9D7270865), _hexToPay); hexrise.appreciateTokenPrice(_hexToPay); } } function roll() onlyDivis public { address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); payoutsTo[_customerAddress] += (int256) (_dividends * divMagnitude); _dividends += referralBalance[_customerAddress]; referralBalance[_customerAddress] = 0; uint256 _tokens = purchaseTokens(address(0), _customerAddress, _dividends); emit onRoll(_customerAddress, _dividends, _tokens); } function exit() external { address _customerAddress = msg.sender; uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(priceMagnitude)) / tokenPrice; uint256 _tokens = tokenBalanceLedger[_customerAddress].sub(_lockedToken); if (_tokens > 0) sell(_tokens); withdraw(); } function withdraw() onlyDivis public { address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); payoutsTo[_customerAddress] += (int256) (_dividends * divMagnitude); _dividends += referralBalance[_customerAddress]; referralBalance[_customerAddress] = 0; erc20.transfer(_customerAddress, _dividends); playerStats[_customerAddress].withdrawals += _dividends; emit onWithdraw(_customerAddress, _dividends); } function buy(address _referredBy, uint256 _amount) public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(_referredBy, msg.sender, _amount); } function buyFor(address _referredBy, address _customerAddress, uint256 _amount) public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(_referredBy, _customerAddress, _amount); } function _purchaseTokens(address _customerAddress, uint256 _incomingHEX, uint256 _dividends) private returns(uint256) { uint256 _amountOfTokens = (_incomingHEX.mul(priceMagnitude)) / tokenPrice; uint256 _fee = _dividends * divMagnitude; require(_amountOfTokens > 0 && _amountOfTokens.add(tokenSupply) > tokenSupply); if (tokenSupply > 0) { tokenSupply = tokenSupply.add(_amountOfTokens); profitPerShare += (_dividends * divMagnitude / tokenSupply); _fee = _fee - (_fee - (_amountOfTokens * (_dividends * divMagnitude / tokenSupply))); } else { tokenSupply = _amountOfTokens; } tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].add(_amountOfTokens); int256 _updatedPayouts = (int256) (profitPerShare * _amountOfTokens - _fee); payoutsTo[_customerAddress] += _updatedPayouts; emit Transfer(address(0), _customerAddress, _amountOfTokens); return _amountOfTokens; } function purchaseTokens(address _referredBy, address _customerAddress, uint256 _incomingHEX) private isActivated returns (uint256) { if (playerStats[_customerAddress].deposits == 0) { totalPlayer++; } playerStats[_customerAddress].deposits += _incomingHEX; require(_incomingHEX > 0); uint256 _appreciateFee = _incomingHEX.mul(appreciateFee).div(100); uint256 _dividendFee = feedActivated == true ? _incomingHEX.mul(buyInFee).div(100) : _incomingHEX.mul(buyInFee+1).div(100); uint256 _devFee = _incomingHEX.mul(devFee).div(100); uint256 _hexTewFee = feedActivated == true ? _incomingHEX.mul(hexTewFee).div(100) : 0; uint256 _taxedHEX = _incomingHEX.sub(_appreciateFee).sub(_dividendFee).sub(_devFee).sub(_hexTewFee); _purchaseTokens(owner, _devFee, 0); uint256 _amountOfTokens = _purchaseTokens(_customerAddress, _taxedHEX, _dividendFee); if (_referredBy != address(0) && _referredBy != _customerAddress && tokenBalanceLedger[_referredBy] >= referralRequirement) { referralBalance[_referredBy] = referralBalance[_referredBy].add(_hexTewFee); } else { totalTewFundCollected = totalTewFundCollected.add(_hexTewFee); } contractValue = contractValue.add(_incomingHEX.sub(_hexTewFee).sub(_dividendFee)); if (tokenSupply > priceMagnitude) { tokenPrice = (contractValue.mul(priceMagnitude)) / tokenSupply; } if (hexToSendFund("hextew") >= 10000e8) { payFund("hextew"); } emit onTokenPurchase(_customerAddress, _incomingHEX, _amountOfTokens, _referredBy, now); emit onTokenAppreciation(tokenPrice, now); return _amountOfTokens; } function sell(uint256 _amountOfTokens) isActivated onlyTokenHolders public { address _customerAddress = msg.sender; uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(priceMagnitude)) / tokenPrice; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken)); uint256 _hex = _amountOfTokens.mul(tokenPrice).div(priceMagnitude); uint256 _appreciateFee = _hex.mul(appreciateFee).div(100); uint256 _dividendFee = feedActivated == true ? _hex.mul(sellOutFee).div(100) : _hex.mul(sellOutFee+1).div(100); uint256 _devFee = _hex.mul(devFee).div(100); uint256 _hexRiseFee = feedActivated == true ? _hex.mul(hexRiseFee).div(100) : 0; _purchaseTokens(owner, _devFee, 0); totalRiseFundCollected = totalRiseFundCollected.add(_hexRiseFee); _hex = _hex.sub(_appreciateFee).sub(_dividendFee).sub(_devFee).sub(_hexRiseFee); tokenSupply = tokenSupply.sub(_amountOfTokens); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); int256 _updatedPayouts = (int256) (profitPerShare * _amountOfTokens + (_hex * divMagnitude)); payoutsTo[_customerAddress] -= _updatedPayouts; if (tokenSupply > 0) { profitPerShare = SafeMath.add(profitPerShare, (_dividendFee * divMagnitude) / tokenSupply); } contractValue = contractValue.sub(_hex.add(_hexRiseFee).add(_dividendFee)); if (tokenSupply > priceMagnitude) { tokenPrice = (contractValue.mul(priceMagnitude)) / tokenSupply; } if (hexToSendFund("hexrise") >= 10000e8) { payFund("hexrise"); } emit Transfer(_customerAddress, address(0), _amountOfTokens); emit onTokenSell(_customerAddress, _amountOfTokens, _hex, now); emit onTokenAppreciation(tokenPrice, now); } function transfer(address _toAddress, uint256 _amountOfTokens) isActivated onlyTokenHolders external returns (bool) { address _customerAddress = msg.sender; uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(priceMagnitude)) / tokenPrice; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken)); if (myDividends(true) > 0) { withdraw(); } uint256 _tokenFee = _amountOfTokens.mul(transferFee).div(100); uint256 _taxedTokens = _amountOfTokens.sub(_tokenFee); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); tokenBalanceLedger[_toAddress] = tokenBalanceLedger[_toAddress].add(_taxedTokens); payoutsTo[_customerAddress] -= (int256) (profitPerShare * _amountOfTokens); payoutsTo[_toAddress] += (int256) (profitPerShare * _taxedTokens); tokenSupply = tokenSupply.sub(_tokenFee); if (tokenSupply > priceMagnitude) { tokenPrice = (contractValue.mul(priceMagnitude)) / tokenSupply; } emit Transfer(_customerAddress, address(0), _tokenFee); emit Transfer(_customerAddress, _toAddress, _taxedTokens); emit onTokenAppreciation(tokenPrice, now); return true; } function stakeStart(uint256 _amount, uint256 _days) public isStakeActivated { require(_amount <= 4722366482869645213695); require(hexBalanceOfNoFee(msg.sender, true) >= _amount); erc20.stakeStart(_amount, _days); // revert or succeed uint256 _stakeIndex; uint40 _stakeID; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; _stakeIndex = erc20.stakeCount(address(this)); _stakeIndex = SafeMath.sub(_stakeIndex, 1); (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = erc20.stakeLists(address(this), _stakeIndex); uint256 _uniqueID = uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); // unique enough require(stakeLists[msg.sender][_uniqueID].started == false); // still check for collision stakeLists[msg.sender][_uniqueID].started = true; stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false); totalStakeBalance = SafeMath.add(totalStakeBalance, _amount); playerStats[msg.sender].activeStakes += 1; playerStats[msg.sender].staked += _amount; lockedHexBalanceLedger[msg.sender] = SafeMath.add(lockedHexBalanceLedger[msg.sender], _amount); emit onStakeStart(msg.sender, _uniqueID, calculateTokensReceived(_amount, false), now); } function _stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public view returns (uint16){ uint40 _stakeID; uint72 _stakedHearts; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; uint16 _unlockedDay; (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = erc20.stakeLists(address(this), _stakeIndex); require(stakeLists[msg.sender][_uniqueID].started == true && stakeLists[msg.sender][_uniqueID].ended == false); require(stakeLists[msg.sender][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID); require(stakeLists[msg.sender][_uniqueID].hexAmount == uint256(_stakedHearts)); require(stakeLists[msg.sender][_uniqueID].stakeShares == _stakeShares); require(stakeLists[msg.sender][_uniqueID].lockedDay == _lockedDay); require(stakeLists[msg.sender][_uniqueID].stakedDays == _stakedDays); return _unlockedDay; } function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public { uint16 _unlockedDay = _stakeEnd(_stakeIndex, _stakeIdParam, _uniqueID); if (_unlockedDay == 0){ stakeLists[msg.sender][_uniqueID].unlockedDay = uint16(erc20.currentDay()); // no penalty/penalty/reward } else { stakeLists[msg.sender][_uniqueID].unlockedDay = _unlockedDay; } uint256 _balance = erc20.balanceOf(address(this)); erc20.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned. stakeLists[msg.sender][_uniqueID].ended = true; uint256 _amount = SafeMath.sub(erc20.balanceOf(address(this)), _balance); uint256 _stakedAmount = stakeLists[msg.sender][_uniqueID].hexAmount; uint256 _difference; if (_amount <= _stakedAmount) { _difference = SafeMath.sub(_stakedAmount, _amount); contractValue = contractValue.sub(_difference); _difference = (_difference.mul(priceMagnitude)) / tokenPrice; tokenSupply = SafeMath.sub(tokenSupply, _difference); tokenBalanceLedger[msg.sender] = SafeMath.sub(tokenBalanceLedger[msg.sender], _difference); int256 _updatedPayouts = (int256) (profitPerShare * _difference); payoutsTo[msg.sender] -= _updatedPayouts; emit Transfer(msg.sender, address(0), _difference); } else if (_amount > _stakedAmount) { _difference = SafeMath.sub(_amount, _stakedAmount); _difference = purchaseTokens(address(0), msg.sender, _difference); } totalStakeBalance = SafeMath.sub(totalStakeBalance, _stakedAmount); playerStats[msg.sender].activeStakes -= 1; lockedHexBalanceLedger[msg.sender] = SafeMath.sub(lockedHexBalanceLedger[msg.sender], _stakedAmount); emit onStakeEnd(msg.sender, _uniqueID, _amount, _difference, now); } function setName(string memory _name) onlyOwner public { name = _name; } function setSymbol(string memory _symbol) onlyOwner public { symbol = _symbol; } function setHexStaking(bool _stakeActivated) onlyOwner public { stakeActivated = _stakeActivated; } function setFeeding(bool _feedActivated) onlyOwner public { feedActivated = _feedActivated; } function totalHexBalance() public view returns (uint256) { return erc20.balanceOf(address(this)); } function totalSupply() public view returns(uint256) { return tokenSupply; } function myTokens(bool _stakeable) public view returns (uint256) { address _customerAddress = msg.sender; return balanceOf(_customerAddress, _stakeable); } function myDividends(bool _includeReferralBonus) public view returns (uint256) { address _customerAddress = msg.sender; return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance[_customerAddress] : dividendsOf(_customerAddress) ; } function balanceOf(address _customerAddress, bool _stakeable) public view returns (uint256) { if (_stakeable == false) { return tokenBalanceLedger[_customerAddress]; } else if (_stakeable == true) { uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(priceMagnitude)) / tokenPrice; return (tokenBalanceLedger[_customerAddress].sub(_lockedToken)); } } function dividendsOf(address _customerAddress) public view returns (uint256) { return (uint256) ((int256) (profitPerShare * tokenBalanceLedger[_customerAddress]) - payoutsTo[_customerAddress]) / divMagnitude; } function sellPrice(bool _includeFees) public view returns (uint256) { uint256 _appreciateFee = 0; uint256 _dividendFee = 0; uint256 _devFee = 0; uint256 _hexRiseFee = 0; if (_includeFees) { _appreciateFee = tokenPrice.mul(appreciateFee).div(100); _dividendFee = feedActivated == true ? tokenPrice.mul(sellOutFee).div(100) : tokenPrice.mul(sellOutFee+1).div(100); _devFee = tokenPrice.mul(devFee).div(100); _hexRiseFee = feedActivated == true ? tokenPrice.mul(hexRiseFee).div(100) : 0; } return (tokenPrice.sub(_appreciateFee).sub(_dividendFee).sub(_devFee).sub(_hexRiseFee)); } function buyPrice(bool _includeFees) public view returns(uint256) { uint256 _appreciateFee = 0; uint256 _dividendFee = 0; uint256 _devFee = 0; uint256 _hexTewFee = 0; if (_includeFees) { _appreciateFee = tokenPrice.mul(appreciateFee).div(100); _dividendFee = feedActivated == true ? tokenPrice.mul(buyInFee).div(100) : tokenPrice.mul(buyInFee+1).div(100); _devFee = tokenPrice.mul(devFee).div(100); _hexTewFee = feedActivated == true ? tokenPrice.mul(hexTewFee).div(100) : 0; } return (tokenPrice.add(_appreciateFee).add(_dividendFee).add(_devFee).add(_hexTewFee)); } function calculateTokensReceived(uint256 _hexToSpend, bool _includeFees) public view returns (uint256) { uint256 _appreciateFee = 0; uint256 _dividendFee = 0; uint256 _devFee = 0; uint256 _hexTewFee = 0; if (_includeFees) { _appreciateFee = _hexToSpend.mul(appreciateFee).div(100); _dividendFee = feedActivated == true ? _hexToSpend.mul(buyInFee).div(100) : _hexToSpend.mul(buyInFee+1).div(100); _devFee = _hexToSpend.mul(devFee).div(100); _hexTewFee = feedActivated == true ? _hexToSpend.mul(hexTewFee).div(100) : 0; } uint256 _taxedHEX = _hexToSpend.sub(_appreciateFee).sub(_dividendFee).sub(_devFee).sub(_hexTewFee); uint256 _amountOfTokens = (_taxedHEX.mul(priceMagnitude)) / tokenPrice; return _amountOfTokens; } function hexBalanceOf(address _customerAddress, bool _stakeable) public view returns(uint256) { uint256 _price = sellPrice(true); uint256 _balance = balanceOf(_customerAddress, _stakeable); uint256 _value = (_balance.mul(_price)) / priceMagnitude; return _value; } function hexBalanceOfNoFee(address _customerAddress, bool _stakeable) public view returns(uint256) { uint256 _price = sellPrice(false); uint256 _balance = balanceOf(_customerAddress, _stakeable); uint256 _value = (_balance.mul(_price)) / priceMagnitude; return _value; } function hexToSendFund(bytes32 exchange) public view returns(uint256) { if (exchange == "hextew") { return totalTewFundCollected.sub(totalTewFundReceived); } else if (exchange == "hexrise") { return totalRiseFundCollected.sub(totalRiseFundReceived); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"hexRolled","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onRoll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"difference","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"uniqueID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onTokenAppreciation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingHEX","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"hexEarned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"hexWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_stakeIndex","type":"uint256"},{"internalType":"uint40","name":"_stakeIdParam","type":"uint40"},{"internalType":"uint256","name":"_uniqueID","type":"uint256"}],"name":"_stakeEnd","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"appreciateTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referredBy","type":"address"},{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buyFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeFees","type":"bool"}],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_hexToSpend","type":"uint256"},{"internalType":"bool","name":"_includeFees","type":"bool"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"hexBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"hexBalanceOfNoFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"exchange","type":"bytes32"}],"name":"hexToSendFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockedHexBalanceLedger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_stakeable","type":"bool"}],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"exchange","type":"bytes32"}],"name":"payFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerStats","outputs":[{"internalType":"uint256","name":"deposits","type":"uint256"},{"internalType":"uint256","name":"withdrawals","type":"uint256"},{"internalType":"uint256","name":"staked","type":"uint256"},{"internalType":"uint256","name":"activeStakes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referralRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"roll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeFees","type":"bool"}],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_feedActivated","type":"bool"}],"name":"setFeeding","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_stakeIndex","type":"uint256"},{"internalType":"uint40","name":"_stakeIdParam","type":"uint40"},{"internalType":"uint256","name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"internalType":"uint40","name":"stakeID","type":"uint40"},{"internalType":"uint256","name":"hexAmount","type":"uint256"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"},{"internalType":"uint16","name":"unlockedDay","type":"uint16"},{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"stakeStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHexBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRiseFundCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRiseFundReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTewFundCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTewFundReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
635e7fe50060015560c0604052600660808190527f4845584d4158000000000000000000000000000000000000000000000000000060a0908152620000489160029190620001b1565b506040805180820190915260048082527f484558340000000000000000000000000000000000000000000000000000000060209092019182526200008f91600391620001b1565b506509184e72a0006009556000600a819055600b819055600c819055600d819055600e819055600f8190556010819055601181905560128190556013556305f5e1006014556017805460ff60a81b1960ff60a01b1990911674010000000000000000000000000000000000000000171675010000000000000000000000000000000000000000001790553480156200012657600080fd5b50600080546001600160a01b03199081167386d9344094297cf5a6c77c07476f40c2f9903cd81790915560158054821673d495cc8c7c29c7fa3e027a5759561ab68c363609179055601680548216738d5ca96e9984662625e6cbf490da40c9d727086517905560178054909116732b591e99afe9f32eaa6214f7b7629768c40eeb3917905562000256565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f457805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022457825182559160200191906001019062000207565b506200023292915062000236565b5090565b6200025391905b808211156200023257600081556001016200023d565b90565b6133d680620002666000396000f3fe6080604052600436106102665760003560e01c80637864e91a11610144578063c47f0027116100b6578063e4849b321161007a578063e4849b3214610a95578063e7fa534e14610abf578063e9fad8ee14610afa578063edcc8bee14610b0f578063ee2ac05f14610b39578063feed18ff14610b4e57610266565b8063c47f002714610926578063c494a080146109d9578063cce7ec13146109ee578063cd5e3c5d14610a27578063cdafbbb614610a3c57610266565b80639cdb88f9116101085780639cdb88f91461073f578063a200dd451461077a578063a9059cbb146107bd578063ae93e5fd1461080a578063b60126551461081f578063b84c82461461087357610266565b80637864e91a146106a557806386bdb391146106ba5780638da5cb5b146106cf57806391c05b0b1461070057806395d89b411461072a57610266565b8063386b3d90116101dd5780635c80d3d1116101a15780635c80d3d1146105a557806362cc2cfe146105ba5780636403ba0a146105e6578063667e460614610612578063688abbf71461063e578063772865e21461066a57610266565b8063386b3d90146104ed5780633ccfd60b1461051f5780633eaeef1b146105345780634b82cab71461054957806352a438b81461057557610266565b806318160ddd1161022f57806318160ddd146103a557806320b48517146103ba57806321c7f162146103e65780632607443b14610419578063313ce567146104ad57806334949cc1146104d857610266565b806265318b1461026b57806305a3f885146102b057806306fdde03146102dc5780630a0ab492146103665780630b9c51b114610390575b600080fd5b34801561027757600080fd5b5061029e6004803603602081101561028e57600080fd5b50356001600160a01b0316610b8b565b60408051918252519081900360200190f35b3480156102bc57600080fd5b5061029e600480360360208110156102d357600080fd5b50351515610bc4565b3480156102e857600080fd5b506102f1610cde565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032b578181015183820152602001610313565b50505050905090810190601f1680156103585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037257600080fd5b5061029e6004803603602081101561038957600080fd5b5035610d69565b34801561039c57600080fd5b5061029e610dbf565b3480156103b157600080fd5b5061029e610e3c565b3480156103c657600080fd5b506103e4600480360360208110156103dd57600080fd5b5035610e42565b005b3480156103f257600080fd5b5061029e6004803603602081101561040957600080fd5b50356001600160a01b0316610f47565b34801561042557600080fd5b506104526004803603604081101561043c57600080fd5b506001600160a01b038135169060200135610f59565b6040805164ffffffffff909916895260208901979097526001600160481b039095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b3480156104b957600080fd5b506104c2610fcc565b6040805160ff9092168252519081900360200190f35b3480156104e457600080fd5b5061029e610fd1565b3480156104f957600080fd5b5061029e6004803603604081101561051057600080fd5b50803590602001351515610fd7565b34801561052b57600080fd5b506103e46110e2565b34801561054057600080fd5b5061029e61120e565b34801561055557600080fd5b506103e46004803603602081101561056c57600080fd5b50351515611214565b34801561058157600080fd5b506103e46004803603604081101561059857600080fd5b5080359060200135611249565b3480156105b157600080fd5b5061029e611742565b3480156105c657600080fd5b5061029e600480360360208110156105dd57600080fd5b50351515611748565b3480156105f257600080fd5b506103e46004803603602081101561060957600080fd5b5035151561175c565b34801561061e57600080fd5b5061029e6004803603602081101561063557600080fd5b50351515611791565b34801561064a57600080fd5b5061029e6004803603602081101561066157600080fd5b50351515611895565b34801561067657600080fd5b5061029e6004803603604081101561068d57600080fd5b506001600160a01b03813516906020013515156118d5565b3480156106b157600080fd5b5061029e611976565b3480156106c657600080fd5b5061029e61197c565b3480156106db57600080fd5b506106e4611982565b604080516001600160a01b039092168252519081900360200190f35b34801561070c57600080fd5b506103e46004803603602081101561072357600080fd5b5035611991565b34801561073657600080fd5b506102f1611a7a565b34801561074b57600080fd5b5061029e6004803603604081101561076257600080fd5b506001600160a01b0381351690602001351515611ad5565b34801561078657600080fd5b5061029e6004803603606081101561079d57600080fd5b506001600160a01b03813581169160208101359091169060400135611b1b565b3480156107c957600080fd5b506107f6600480360360408110156107e057600080fd5b506001600160a01b038135169060200135611b39565b604080519115158252519081900360200190f35b34801561081657600080fd5b5061029e611dcb565b34801561082b57600080fd5b5061085c6004803603606081101561084257600080fd5b5080359064ffffffffff6020820135169060400135611dd1565b6040805161ffff9092168252519081900360200190f35b34801561087f57600080fd5b506103e46004803603602081101561089657600080fd5b8101906020810181356401000000008111156108b157600080fd5b8201836020820111156108c357600080fd5b803590602001918460018302840111640100000000831117156108e557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612072945050505050565b34801561093257600080fd5b506103e46004803603602081101561094957600080fd5b81019060208101813564010000000081111561096457600080fd5b82018360208201111561097657600080fd5b8035906020019184600183028401116401000000008311171561099857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120a0945050505050565b3480156109e557600080fd5b5061029e6120ca565b3480156109fa57600080fd5b5061029e60048036036040811015610a1157600080fd5b506001600160a01b0381351690602001356120d0565b348015610a3357600080fd5b506103e46120e6565b348015610a4857600080fd5b50610a6f60048036036020811015610a5f57600080fd5b50356001600160a01b031661219c565b604080519485526020850193909352838301919091526060830152519081900360800190f35b348015610aa157600080fd5b506103e460048036036020811015610ab857600080fd5b50356121c3565b348015610acb57600080fd5b5061029e60048036036040811015610ae257600080fd5b506001600160a01b0381351690602001351515612585565b348015610b0657600080fd5b506103e4612592565b348015610b1b57600080fd5b506103e460048036036020811015610b3257600080fd5b5035612612565b348015610b4557600080fd5b5061029e6128c4565b348015610b5a57600080fd5b506103e460048036036060811015610b7157600080fd5b5080359064ffffffffff60208201351690604001356128ca565b6001600160a01b0381166000908152600660209081526040808320546004909252822054601254600160401b929102030490505b919050565b6000808080808515610ca757601454610bf790606490610beb90600263ffffffff612d1816565b9063ffffffff612d3d16565b601754909450600160a81b900460ff161515600114610c3057601454610c2b90606490610beb90600763ffffffff612d1816565b610c4b565b601454610c4b90606490610beb90600663ffffffff612d1816565b601454909350610c6990606490610beb90600163ffffffff612d1816565b601754909250600160a81b900460ff161515600114610c89576000610ca4565b601454610ca490606490610beb90600163ffffffff612d1816565b90505b610cd481610cc884610cc887610cc88a601454612d5090919063ffffffff16565b9063ffffffff612d5016565b9695505050505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b505050505081565b6000816568657874657760d01b1415610d9857600d54600e54610d919163ffffffff612d5016565b9050610bbf565b81666865787269736560c81b1415610bbf57600f54601054610d919163ffffffff612d5016565b601754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e0a57600080fd5b505afa158015610e1e573d6000803e3d6000fd5b505050506040513d6020811015610e3457600080fd5b505190505b90565b60115490565b600154421015610e5157600080fd5b6001546078014211610e6f57642e90edd0003a1115610e6f57600080fd5b60008111610ebf576040805162461bcd60e51b81526020600482015260186024820152776d757374206265206120706f7369746976652076616c756560401b604482015290519081900360640190fd5b610ec881612d62565b600c805482019055601354610ee3908263ffffffff612e3616565b6013556011546305f5e1001015610f1a57601154601354610f0e906305f5e10063ffffffff612d1816565b81610f1557fe5b046014555b6014546040805191825242602083015280516000805160206133628339815191529281900390910190a150565b60076020526000908152604090205481565b601860209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff90911691906001600160481b0381169061ffff600160481b8204811691600160581b8104821691600160681b8204169060ff600160781b8204811691600160801b90041688565b600881565b600a5481565b600080808080851561109457610ff96064610beb89600263ffffffff612d1816565b601754909450600160a81b900460ff16151560011461102d576110286064610beb89600763ffffffff612d1816565b611043565b6110436064610beb89600663ffffffff612d1816565b925061105b6064610beb89600163ffffffff612d1816565b601754909250600160a81b900460ff16151560011461107b576000611091565b6110916064610beb89600163ffffffff612d1816565b90505b60006110ae82610cc8858188818e8c63ffffffff612d5016565b6014549091506000906110cb836305f5e10063ffffffff612d1816565b816110d257fe5b0496505050505050505b92915050565b60006110ee6001611895565b116110f857600080fd5b33600061110481611895565b6001600160a01b0380841660008181526006602090815260408083208054600160401b880201905560058252808320805490849055601754825163a9059cbb60e01b815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561118857600080fd5b505af115801561119c573d6000803e3d6000fd5b505050506040513d60208110156111b257600080fd5b50506001600160a01b038216600081815260086020908152604091829020600101805485019055815184815291517fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc9281900390910190a25050565b60095481565b6000546001600160a01b0316331461122b57600080fd5b60178054911515600160a01b0260ff60a01b19909216919091179055565b601754600160a01b900460ff16151560011461126457600080fd5b6001600160481b0382111561127857600080fd5b81611284336001611ad5565b101561128f57600080fd5b60175460408051630a54871760e31b8152600481018590526024810184905290516001600160a01b03909216916352a438b89160448082019260009290919082900301818387803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b50506017546040805163033060d960e41b81523060048201529051600094508493508392839283926001600160a01b03909216916333060d9091602480820192602092909190829003018186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d602081101561137b57600080fd5b5051945061138a856001612d50565b60175460408051632607443b60e01b81523060048201526024810184905290519297506001600160a01b0390911691632607443b9160448082019260e092909190829003018186803b1580156113df57600080fd5b505afa1580156113f3573d6000803e3d6000fd5b505050506040513d60e081101561140957600080fd5b5080516040808301516060840151608090940151825160d885901b6001600160d81b03191660208083019190915260b884901b6001600160b81b03191660258301528451808303600e018152602e90920185528151918101919091203360009081526018835285812082825290925293902060020154939850909650929450919250600160781b900460ff161561149f57600080fd5b600160186000336001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff0219169083151502179055506040518061010001604052808664ffffffffff168152602001898152602001856001600160481b031681526020018461ffff1681526020018361ffff168152602001600061ffff1681526020016001151581526020016000151581525060186000336001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816001600160481b0302191690836001600160481b0316021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555090505061169c600a5489612e36565b600a55336000908152600860209081526040808320600381018054600101905560020180548c01905560079091529020546116d79089612e36565b33600081815260076020526040812092909255907fa1b3ce42ae14b20db76f482a3801388c971b15477c77c380941e9f2e6c08873190839061171a908c90610fd7565b6040805192835260208301919091524282820152519081900360600190a25050505050505050565b600e5481565b60003361175581846118d5565b9392505050565b6000546001600160a01b0316331461177357600080fd5b60178054911515600160a81b0260ff60a81b19909216919091179055565b6000808080808515611868576014546117b890606490610beb90600263ffffffff612d1816565b601754909450600160a81b900460ff1615156001146117f1576014546117ec90606490610beb90600763ffffffff612d1816565b61180c565b60145461180c90606490610beb90600663ffffffff612d1816565b60145490935061182a90606490610beb90600163ffffffff612d1816565b601754909250600160a81b900460ff16151560011461184a576000611865565b60145461186590606490610beb90600163ffffffff612d1816565b90505b610cd48161188984611889876118898a601454612e3690919063ffffffff16565b9063ffffffff612e3616565b600033826118ab576118a681610b8b565b611755565b6001600160a01b0381166000908152600560205260409020546118cd82610b8b565b019392505050565b6000816118fb57506001600160a01b0382166000908152600460205260409020546110dc565b600182151514156110dc576014546001600160a01b038416600090815260076020526040812054909190611939906305f5e10063ffffffff612d1816565b8161194057fe5b6001600160a01b038616600090815260046020526040902054919004915061196e908263ffffffff612d5016565b9150506110dc565b600d5481565b600f5481565b6000546001600160a01b031681565b6001544210156119a057600080fd5b60015460780142116119be57642e90edd0003a11156119be57600080fd5b60008111611a0e576040805162461bcd60e51b81526020600482015260186024820152776d757374206265206120706f7369746976652076616c756560401b604482015290519081900360640190fd5b611a1781612d62565b600c805482019055601254601154611a3e9190600160401b840281611a3857fe5b04612e36565b60125560408051828152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a250565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d615780601f10610d3657610100808354040283529160200191610d61565b600080611ae26000610bc4565b90506000611af085856118d5565b905060006305f5e100611b09838563ffffffff612d1816565b81611b1057fe5b049695505050505050565b6000611b2682612d62565b611b31848484612e43565b949350505050565b6000600154421015611b4a57600080fd5b6001546078014211611b6857642e90edd0003a1115611b6857600080fd5b6000611b746001611748565b11611b7e57600080fd5b6014543360008181526007602052604081205491929091611ba9906305f5e10063ffffffff612d1816565b81611bb057fe5b049050600084118015611beb57506001600160a01b038216600090815260046020526040902054611be7908263ffffffff612d5016565b8411155b611bf457600080fd5b6000611c006001611895565b1115611c0e57611c0e6110e2565b6000611c266064610beb87600163ffffffff612d1816565b90506000611c3a868363ffffffff612d5016565b6001600160a01b038516600090815260046020526040902054909150611c66908763ffffffff612d5016565b6001600160a01b038086166000908152600460205260408082209390935590891681522054611c9b908263ffffffff612e3616565b6001600160a01b0388811660008181526004602090815260408083209590955560128054948a16835260069091528482208054948c02909403909355915490825291902080549183029091019055601154611cf69083612d50565b60118190556305f5e1001015611d2c57601154601354611d20906305f5e10063ffffffff612d1816565b81611d2757fe5b046014555b6040805183815290516000916001600160a01b038716916000805160206133828339815191529181900360200190a3866001600160a01b0316846001600160a01b0316600080516020613382833981519152836040518082815260200191505060405180910390a36014546040805191825242602083015280516000805160206133628339815191529281900390910190a15060019695505050505050565b60105481565b60175460408051632607443b60e01b81523060048201526024810186905290516000928392839283928392839283926001600160a01b031691632607443b9160448083019260e0929190829003018186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d60e0811015611e5957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b5050505050505060186000336001600160a01b03166001600160a01b031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff16151560011515148015611f3e57503360009081526018602090815260408083208b8452909152902060020154600160801b900460ff16155b611f4757600080fd5b3360009081526018602090815260408083208b845290915290205464ffffffffff8a81169116148015611f8757508564ffffffffff168964ffffffffff16145b611f9057600080fd5b3360009081526018602090815260408083208b84529091529020600101546001600160481b03861614611fc257600080fd5b3360009081526018602090815260408083208b84529091529020600201546001600160481b03858116911614611ff757600080fd5b3360009081526018602090815260408083208b845290915290206002015461ffff848116600160481b909204161461202e57600080fd5b3360009081526018602090815260408083208b845290915290206002015461ffff838116600160581b909204161461206557600080fd5b9998505050505050505050565b6000546001600160a01b0316331461208957600080fd5b805161209c9060039060208401906132c9565b5050565b6000546001600160a01b031633146120b757600080fd5b805161209c9060029060208401906132c9565b600b5481565b60006120db82612d62565b611755833384612e43565b60006120f26001611895565b116120fc57600080fd5b33600061210881611895565b6001600160a01b03831660009081526006602090815260408083208054600160401b860201905560059091528120805490829055909101915061214c818484612e43565b9050826001600160a01b03167fe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c8383604051808381526020018281526020019250505060405180910390a2505050565b60086020526000908152604090208054600182015460028301546003909301549192909184565b6001544210156121d257600080fd5b60015460780142116121f057642e90edd0003a11156121f057600080fd5b60006121fc6001611748565b1161220657600080fd5b6014543360008181526007602052604081205491929091612231906305f5e10063ffffffff612d1816565b8161223857fe5b04905060008311801561227357506001600160a01b03821660009081526004602052604090205461226f908263ffffffff612d5016565b8311155b61227c57600080fd5b600061229b6305f5e100610beb60145487612d1890919063ffffffff16565b905060006122b56064610beb84600263ffffffff612d1816565b90506000601760159054906101000a900460ff16151560011515146122ef576122ea6064610beb85600763ffffffff612d1816565b612305565b6123056064610beb85600663ffffffff612d1816565b9050600061231f6064610beb86600163ffffffff612d1816565b90506000601760159054906101000a900460ff161515600115151461234557600061235b565b61235b6064610beb87600163ffffffff612d1816565b60008054919250612377916001600160a01b031690849061318c565b5060105461238b908263ffffffff612e3616565b6010556123a681610cc8848187818b8b63ffffffff612d5016565b6011549095506123bc908963ffffffff612d5016565b6011556001600160a01b0387166000908152600460205260409020546123e8908963ffffffff612d5016565b6001600160a01b03881660009081526004602090815260408083209390935560125460069091529190208054918a02600160401b8802019182900390556011541561244857612444601254601154600160401b870281611a3857fe5b6012555b61246e61245f85611889898663ffffffff612e3616565b6013549063ffffffff612d5016565b6013556011546305f5e10010156124a557601154601354612499906305f5e10063ffffffff612d1816565b816124a057fe5b046014555b64e8d4a510006124be666865787269736560c81b610d69565b106124d6576124d6666865787269736560c81b612612565b604080518a815290516000916001600160a01b038b16916000805160206133828339815191529181900360200190a3604080518a815260208101889052428183015290516001600160a01b038a16917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a26014546040805191825242602083015280516000805160206133628339815191529281900390910190a1505050505050505050565b600080611ae26001610bc4565b60145433600081815260076020526040812054919290916125bd906305f5e10063ffffffff612d1816565b816125c457fe5b6001600160a01b038416600090815260046020526040812054929091049250906125f4908363ffffffff612d5016565b9050801561260557612605816121c3565b61260d6110e2565b505050565b806568657874657760d01b141561277657600061263c600d54600e54612d5090919063ffffffff16565b90506000811161264b57600080fd5b600d5461265e908263ffffffff612e3616565b600d556017546040805163095ea7b360e01b815273d495cc8c7c29c7fa3e027a5759561ab68c36360960048201526024810184905290516001600160a01b039092169163095ea7b3916044808201926020929091908290030181600087803b1580156126c957600080fd5b505af11580156126dd573d6000803e3d6000fd5b505050506040513d60208110156126f357600080fd5b5050601554604080516391c05b0b60e01b81526004810184905290516001600160a01b03909216916391c05b0b916024808201926020929091908290030181600087803b15801561274357600080fd5b505af1158015612757573d6000803e3d6000fd5b505050506040513d602081101561276d57600080fd5b506128c1915050565b80666865787269736560c81b14156128c15760006127a1600f54601054612d5090919063ffffffff16565b9050600081116127b057600080fd5b600f546127c3908263ffffffff612e3616565b600f556017546040805163095ea7b360e01b8152738d5ca96e9984662625e6cbf490da40c9d727086560048201526024810184905290516001600160a01b039092169163095ea7b3916044808201926020929091908290030181600087803b15801561282e57600080fd5b505af1158015612842573d6000803e3d6000fd5b505050506040513d602081101561285857600080fd5b5050601654604080516320b4851760e01b81526004810184905290516001600160a01b03909216916320b485179160248082019260009290919082900301818387803b1580156128a757600080fd5b505af11580156128bb573d6000803e3d6000fd5b50505050505b50565b600c5481565b60006128d7848484611dd1565b905061ffff811661299c57601760009054906101000a90046001600160a01b03166001600160a01b0316635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561293057600080fd5b505afa158015612944573d6000803e3d6000fd5b505050506040513d602081101561295a57600080fd5b50513360009081526018602090815260408083208684529091529020600201805461ffff909216600160681b0261ffff60681b199092169190911790556129d2565b3360009081526018602090815260408083208584529091529020600201805461ffff60681b1916600160681b61ffff8416021790555b601754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015612a1d57600080fd5b505afa158015612a31573d6000803e3d6000fd5b505050506040513d6020811015612a4757600080fd5b505160175460408051631a1804d160e11b81526004810189905264ffffffffff8816602482015290519293506001600160a01b039091169163343009a29160448082019260009290919082900301818387803b158015612aa657600080fd5b505af1158015612aba573d6000803e3d6000fd5b50503360009081526018602090815260408083208884528252808320600201805460ff60801b1916600160801b17905560175481516370a0823160e01b81523060048201529151939550612b6894506001600160a01b0316926370a0823192602480840193919291829003018186803b158015612b3657600080fd5b505afa158015612b4a573d6000803e3d6000fd5b505050506040513d6020811015612b6057600080fd5b505183612d50565b336000908152601860209081526040808320888452909152812060010154919250818311612c5157612b9a8284612d50565b601354909150612bb0908263ffffffff612d5016565b601355601454612bca826305f5e10063ffffffff612d1816565b81612bd157fe5b049050612be060115482612d50565b60115533600090815260046020526040902054612bfd9082612d50565b3360008181526004602090815260408083209490945560125460068252848320805491870291829003905584518681529451909492939260008051602061338283398151915292908290030190a350612c74565b81831115612c7457612c638383612d50565b9050612c7160003383612e43565b90505b612c80600a5483612d50565b600a5533600090815260086020908152604080832060030180546000190190556007909152902054612cb29083612d50565b336000818152600760209081526040918290209390935580518981529283018690528281018490524260608401525190917f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba248919081900360800190a25050505050505050565b600082612d27575060006110dc565b5081810281838281612d3557fe5b04146110dc57fe5b6000818381612d4857fe5b049392505050565b600082821115612d5c57fe5b50900390565b601754604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612dbc57600080fd5b505af1158015612dd0573d6000803e3d6000fd5b505050506040513d6020811015612de657600080fd5b505115156001146128c1576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881b5d5cdd081cdd58d8d95959605a1b604482015290519081900360640190fd5b818101828110156110dc57fe5b6000600154421015612e5457600080fd5b6001546078014211612e7257642e90edd0003a1115612e7257600080fd5b6001600160a01b038316600090815260086020526040902054612e9957600b805460010190555b6001600160a01b038316600090815260086020526040902080548301905581612ec157600080fd5b6000612ed96064610beb85600263ffffffff612d1816565b90506000601760159054906101000a900460ff1615156001151514612f1357612f0e6064610beb86600763ffffffff612d1816565b612f29565b612f296064610beb86600663ffffffff612d1816565b90506000612f436064610beb87600163ffffffff612d1816565b90506000601760159054906101000a900460ff1615156001151514612f69576000612f7f565b612f7f6064610beb88600163ffffffff612d1816565b90506000612f9b82610cc8858188818d8c63ffffffff612d5016565b60008054919250612fb7916001600160a01b031690859061318c565b506000612fc589838761318c565b90506001600160a01b038a1615801590612ff15750886001600160a01b03168a6001600160a01b031614155b801561301757506009546001600160a01b038b1660009081526004602052604090205410155b15613063576001600160a01b038a16600090815260056020526040902054613045908463ffffffff612e3616565b6001600160a01b038b1660009081526005602052604090205561307a565b600e54613076908463ffffffff612e3616565b600e555b6130a061309186610cc88b8763ffffffff612d5016565b6013549063ffffffff612e3616565b6013556011546305f5e10010156130d7576011546013546130cb906305f5e10063ffffffff612d1816565b816130d257fe5b046014555b64e8d4a510006130ef6568657874657760d01b610d69565b10613106576131066568657874657760d01b612612565b6040805189815260208101839052428183015290516001600160a01b03808d1692908c16917fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de869181900360600190a36014546040805191825242602083015280516000805160206133628339815191529281900390910190a19998505050505050505050565b60145460009081906131a8856305f5e10063ffffffff612d1816565b816131af57fe5b049050600160401b830281158015906131d857506011546131d6838263ffffffff612e3616565b115b6131e157600080fd5b60115415613239576011546131fc908363ffffffff612e3616565b6011819055600160401b85028161320f57fe5b60128054929091049091019055601154600160401b85028161322d57fe5b0482028103900361323f565b60118290555b6001600160a01b038616600090815260046020526040902054613268908363ffffffff612e3616565b6001600160a01b038716600081815260046020908152604080832094909455601254600682528483208054918802879003918201905584518781529451909460008051602061338283398151915292908290030190a3509095945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061330a57805160ff1916838001178555613337565b82800160010185558215613337579182015b8281111561333757825182559160200191906001019061331c565b50613343929150613347565b5090565b610e3991905b80821115613343576000815560010161334d56fe0d257a4fe7c6968563ed5ac588cf5b4ddb95868eb9b8fe412c2000cb6f2843acddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582067f94d52f3e810cb33ee3e8255761e716348e38169714b47aa9f38b2cd05d51d64736f6c634300050d0032
Deployed Bytecode
0x6080604052600436106102665760003560e01c80637864e91a11610144578063c47f0027116100b6578063e4849b321161007a578063e4849b3214610a95578063e7fa534e14610abf578063e9fad8ee14610afa578063edcc8bee14610b0f578063ee2ac05f14610b39578063feed18ff14610b4e57610266565b8063c47f002714610926578063c494a080146109d9578063cce7ec13146109ee578063cd5e3c5d14610a27578063cdafbbb614610a3c57610266565b80639cdb88f9116101085780639cdb88f91461073f578063a200dd451461077a578063a9059cbb146107bd578063ae93e5fd1461080a578063b60126551461081f578063b84c82461461087357610266565b80637864e91a146106a557806386bdb391146106ba5780638da5cb5b146106cf57806391c05b0b1461070057806395d89b411461072a57610266565b8063386b3d90116101dd5780635c80d3d1116101a15780635c80d3d1146105a557806362cc2cfe146105ba5780636403ba0a146105e6578063667e460614610612578063688abbf71461063e578063772865e21461066a57610266565b8063386b3d90146104ed5780633ccfd60b1461051f5780633eaeef1b146105345780634b82cab71461054957806352a438b81461057557610266565b806318160ddd1161022f57806318160ddd146103a557806320b48517146103ba57806321c7f162146103e65780632607443b14610419578063313ce567146104ad57806334949cc1146104d857610266565b806265318b1461026b57806305a3f885146102b057806306fdde03146102dc5780630a0ab492146103665780630b9c51b114610390575b600080fd5b34801561027757600080fd5b5061029e6004803603602081101561028e57600080fd5b50356001600160a01b0316610b8b565b60408051918252519081900360200190f35b3480156102bc57600080fd5b5061029e600480360360208110156102d357600080fd5b50351515610bc4565b3480156102e857600080fd5b506102f1610cde565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032b578181015183820152602001610313565b50505050905090810190601f1680156103585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037257600080fd5b5061029e6004803603602081101561038957600080fd5b5035610d69565b34801561039c57600080fd5b5061029e610dbf565b3480156103b157600080fd5b5061029e610e3c565b3480156103c657600080fd5b506103e4600480360360208110156103dd57600080fd5b5035610e42565b005b3480156103f257600080fd5b5061029e6004803603602081101561040957600080fd5b50356001600160a01b0316610f47565b34801561042557600080fd5b506104526004803603604081101561043c57600080fd5b506001600160a01b038135169060200135610f59565b6040805164ffffffffff909916895260208901979097526001600160481b039095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b3480156104b957600080fd5b506104c2610fcc565b6040805160ff9092168252519081900360200190f35b3480156104e457600080fd5b5061029e610fd1565b3480156104f957600080fd5b5061029e6004803603604081101561051057600080fd5b50803590602001351515610fd7565b34801561052b57600080fd5b506103e46110e2565b34801561054057600080fd5b5061029e61120e565b34801561055557600080fd5b506103e46004803603602081101561056c57600080fd5b50351515611214565b34801561058157600080fd5b506103e46004803603604081101561059857600080fd5b5080359060200135611249565b3480156105b157600080fd5b5061029e611742565b3480156105c657600080fd5b5061029e600480360360208110156105dd57600080fd5b50351515611748565b3480156105f257600080fd5b506103e46004803603602081101561060957600080fd5b5035151561175c565b34801561061e57600080fd5b5061029e6004803603602081101561063557600080fd5b50351515611791565b34801561064a57600080fd5b5061029e6004803603602081101561066157600080fd5b50351515611895565b34801561067657600080fd5b5061029e6004803603604081101561068d57600080fd5b506001600160a01b03813516906020013515156118d5565b3480156106b157600080fd5b5061029e611976565b3480156106c657600080fd5b5061029e61197c565b3480156106db57600080fd5b506106e4611982565b604080516001600160a01b039092168252519081900360200190f35b34801561070c57600080fd5b506103e46004803603602081101561072357600080fd5b5035611991565b34801561073657600080fd5b506102f1611a7a565b34801561074b57600080fd5b5061029e6004803603604081101561076257600080fd5b506001600160a01b0381351690602001351515611ad5565b34801561078657600080fd5b5061029e6004803603606081101561079d57600080fd5b506001600160a01b03813581169160208101359091169060400135611b1b565b3480156107c957600080fd5b506107f6600480360360408110156107e057600080fd5b506001600160a01b038135169060200135611b39565b604080519115158252519081900360200190f35b34801561081657600080fd5b5061029e611dcb565b34801561082b57600080fd5b5061085c6004803603606081101561084257600080fd5b5080359064ffffffffff6020820135169060400135611dd1565b6040805161ffff9092168252519081900360200190f35b34801561087f57600080fd5b506103e46004803603602081101561089657600080fd5b8101906020810181356401000000008111156108b157600080fd5b8201836020820111156108c357600080fd5b803590602001918460018302840111640100000000831117156108e557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612072945050505050565b34801561093257600080fd5b506103e46004803603602081101561094957600080fd5b81019060208101813564010000000081111561096457600080fd5b82018360208201111561097657600080fd5b8035906020019184600183028401116401000000008311171561099857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120a0945050505050565b3480156109e557600080fd5b5061029e6120ca565b3480156109fa57600080fd5b5061029e60048036036040811015610a1157600080fd5b506001600160a01b0381351690602001356120d0565b348015610a3357600080fd5b506103e46120e6565b348015610a4857600080fd5b50610a6f60048036036020811015610a5f57600080fd5b50356001600160a01b031661219c565b604080519485526020850193909352838301919091526060830152519081900360800190f35b348015610aa157600080fd5b506103e460048036036020811015610ab857600080fd5b50356121c3565b348015610acb57600080fd5b5061029e60048036036040811015610ae257600080fd5b506001600160a01b0381351690602001351515612585565b348015610b0657600080fd5b506103e4612592565b348015610b1b57600080fd5b506103e460048036036020811015610b3257600080fd5b5035612612565b348015610b4557600080fd5b5061029e6128c4565b348015610b5a57600080fd5b506103e460048036036060811015610b7157600080fd5b5080359064ffffffffff60208201351690604001356128ca565b6001600160a01b0381166000908152600660209081526040808320546004909252822054601254600160401b929102030490505b919050565b6000808080808515610ca757601454610bf790606490610beb90600263ffffffff612d1816565b9063ffffffff612d3d16565b601754909450600160a81b900460ff161515600114610c3057601454610c2b90606490610beb90600763ffffffff612d1816565b610c4b565b601454610c4b90606490610beb90600663ffffffff612d1816565b601454909350610c6990606490610beb90600163ffffffff612d1816565b601754909250600160a81b900460ff161515600114610c89576000610ca4565b601454610ca490606490610beb90600163ffffffff612d1816565b90505b610cd481610cc884610cc887610cc88a601454612d5090919063ffffffff16565b9063ffffffff612d5016565b9695505050505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610d615780601f10610d3657610100808354040283529160200191610d61565b820191906000526020600020905b815481529060010190602001808311610d4457829003601f168201915b505050505081565b6000816568657874657760d01b1415610d9857600d54600e54610d919163ffffffff612d5016565b9050610bbf565b81666865787269736560c81b1415610bbf57600f54601054610d919163ffffffff612d5016565b601754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e0a57600080fd5b505afa158015610e1e573d6000803e3d6000fd5b505050506040513d6020811015610e3457600080fd5b505190505b90565b60115490565b600154421015610e5157600080fd5b6001546078014211610e6f57642e90edd0003a1115610e6f57600080fd5b60008111610ebf576040805162461bcd60e51b81526020600482015260186024820152776d757374206265206120706f7369746976652076616c756560401b604482015290519081900360640190fd5b610ec881612d62565b600c805482019055601354610ee3908263ffffffff612e3616565b6013556011546305f5e1001015610f1a57601154601354610f0e906305f5e10063ffffffff612d1816565b81610f1557fe5b046014555b6014546040805191825242602083015280516000805160206133628339815191529281900390910190a150565b60076020526000908152604090205481565b601860209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff90911691906001600160481b0381169061ffff600160481b8204811691600160581b8104821691600160681b8204169060ff600160781b8204811691600160801b90041688565b600881565b600a5481565b600080808080851561109457610ff96064610beb89600263ffffffff612d1816565b601754909450600160a81b900460ff16151560011461102d576110286064610beb89600763ffffffff612d1816565b611043565b6110436064610beb89600663ffffffff612d1816565b925061105b6064610beb89600163ffffffff612d1816565b601754909250600160a81b900460ff16151560011461107b576000611091565b6110916064610beb89600163ffffffff612d1816565b90505b60006110ae82610cc8858188818e8c63ffffffff612d5016565b6014549091506000906110cb836305f5e10063ffffffff612d1816565b816110d257fe5b0496505050505050505b92915050565b60006110ee6001611895565b116110f857600080fd5b33600061110481611895565b6001600160a01b0380841660008181526006602090815260408083208054600160401b880201905560058252808320805490849055601754825163a9059cbb60e01b815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561118857600080fd5b505af115801561119c573d6000803e3d6000fd5b505050506040513d60208110156111b257600080fd5b50506001600160a01b038216600081815260086020908152604091829020600101805485019055815184815291517fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc9281900390910190a25050565b60095481565b6000546001600160a01b0316331461122b57600080fd5b60178054911515600160a01b0260ff60a01b19909216919091179055565b601754600160a01b900460ff16151560011461126457600080fd5b6001600160481b0382111561127857600080fd5b81611284336001611ad5565b101561128f57600080fd5b60175460408051630a54871760e31b8152600481018590526024810184905290516001600160a01b03909216916352a438b89160448082019260009290919082900301818387803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b50506017546040805163033060d960e41b81523060048201529051600094508493508392839283926001600160a01b03909216916333060d9091602480820192602092909190829003018186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d602081101561137b57600080fd5b5051945061138a856001612d50565b60175460408051632607443b60e01b81523060048201526024810184905290519297506001600160a01b0390911691632607443b9160448082019260e092909190829003018186803b1580156113df57600080fd5b505afa1580156113f3573d6000803e3d6000fd5b505050506040513d60e081101561140957600080fd5b5080516040808301516060840151608090940151825160d885901b6001600160d81b03191660208083019190915260b884901b6001600160b81b03191660258301528451808303600e018152602e90920185528151918101919091203360009081526018835285812082825290925293902060020154939850909650929450919250600160781b900460ff161561149f57600080fd5b600160186000336001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff0219169083151502179055506040518061010001604052808664ffffffffff168152602001898152602001856001600160481b031681526020018461ffff1681526020018361ffff168152602001600061ffff1681526020016001151581526020016000151581525060186000336001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816001600160481b0302191690836001600160481b0316021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555090505061169c600a5489612e36565b600a55336000908152600860209081526040808320600381018054600101905560020180548c01905560079091529020546116d79089612e36565b33600081815260076020526040812092909255907fa1b3ce42ae14b20db76f482a3801388c971b15477c77c380941e9f2e6c08873190839061171a908c90610fd7565b6040805192835260208301919091524282820152519081900360600190a25050505050505050565b600e5481565b60003361175581846118d5565b9392505050565b6000546001600160a01b0316331461177357600080fd5b60178054911515600160a81b0260ff60a81b19909216919091179055565b6000808080808515611868576014546117b890606490610beb90600263ffffffff612d1816565b601754909450600160a81b900460ff1615156001146117f1576014546117ec90606490610beb90600763ffffffff612d1816565b61180c565b60145461180c90606490610beb90600663ffffffff612d1816565b60145490935061182a90606490610beb90600163ffffffff612d1816565b601754909250600160a81b900460ff16151560011461184a576000611865565b60145461186590606490610beb90600163ffffffff612d1816565b90505b610cd48161188984611889876118898a601454612e3690919063ffffffff16565b9063ffffffff612e3616565b600033826118ab576118a681610b8b565b611755565b6001600160a01b0381166000908152600560205260409020546118cd82610b8b565b019392505050565b6000816118fb57506001600160a01b0382166000908152600460205260409020546110dc565b600182151514156110dc576014546001600160a01b038416600090815260076020526040812054909190611939906305f5e10063ffffffff612d1816565b8161194057fe5b6001600160a01b038616600090815260046020526040902054919004915061196e908263ffffffff612d5016565b9150506110dc565b600d5481565b600f5481565b6000546001600160a01b031681565b6001544210156119a057600080fd5b60015460780142116119be57642e90edd0003a11156119be57600080fd5b60008111611a0e576040805162461bcd60e51b81526020600482015260186024820152776d757374206265206120706f7369746976652076616c756560401b604482015290519081900360640190fd5b611a1781612d62565b600c805482019055601254601154611a3e9190600160401b840281611a3857fe5b04612e36565b60125560408051828152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a250565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d615780601f10610d3657610100808354040283529160200191610d61565b600080611ae26000610bc4565b90506000611af085856118d5565b905060006305f5e100611b09838563ffffffff612d1816565b81611b1057fe5b049695505050505050565b6000611b2682612d62565b611b31848484612e43565b949350505050565b6000600154421015611b4a57600080fd5b6001546078014211611b6857642e90edd0003a1115611b6857600080fd5b6000611b746001611748565b11611b7e57600080fd5b6014543360008181526007602052604081205491929091611ba9906305f5e10063ffffffff612d1816565b81611bb057fe5b049050600084118015611beb57506001600160a01b038216600090815260046020526040902054611be7908263ffffffff612d5016565b8411155b611bf457600080fd5b6000611c006001611895565b1115611c0e57611c0e6110e2565b6000611c266064610beb87600163ffffffff612d1816565b90506000611c3a868363ffffffff612d5016565b6001600160a01b038516600090815260046020526040902054909150611c66908763ffffffff612d5016565b6001600160a01b038086166000908152600460205260408082209390935590891681522054611c9b908263ffffffff612e3616565b6001600160a01b0388811660008181526004602090815260408083209590955560128054948a16835260069091528482208054948c02909403909355915490825291902080549183029091019055601154611cf69083612d50565b60118190556305f5e1001015611d2c57601154601354611d20906305f5e10063ffffffff612d1816565b81611d2757fe5b046014555b6040805183815290516000916001600160a01b038716916000805160206133828339815191529181900360200190a3866001600160a01b0316846001600160a01b0316600080516020613382833981519152836040518082815260200191505060405180910390a36014546040805191825242602083015280516000805160206133628339815191529281900390910190a15060019695505050505050565b60105481565b60175460408051632607443b60e01b81523060048201526024810186905290516000928392839283928392839283926001600160a01b031691632607443b9160448083019260e0929190829003018186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d60e0811015611e5957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b5050505050505060186000336001600160a01b03166001600160a01b031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff16151560011515148015611f3e57503360009081526018602090815260408083208b8452909152902060020154600160801b900460ff16155b611f4757600080fd5b3360009081526018602090815260408083208b845290915290205464ffffffffff8a81169116148015611f8757508564ffffffffff168964ffffffffff16145b611f9057600080fd5b3360009081526018602090815260408083208b84529091529020600101546001600160481b03861614611fc257600080fd5b3360009081526018602090815260408083208b84529091529020600201546001600160481b03858116911614611ff757600080fd5b3360009081526018602090815260408083208b845290915290206002015461ffff848116600160481b909204161461202e57600080fd5b3360009081526018602090815260408083208b845290915290206002015461ffff838116600160581b909204161461206557600080fd5b9998505050505050505050565b6000546001600160a01b0316331461208957600080fd5b805161209c9060039060208401906132c9565b5050565b6000546001600160a01b031633146120b757600080fd5b805161209c9060029060208401906132c9565b600b5481565b60006120db82612d62565b611755833384612e43565b60006120f26001611895565b116120fc57600080fd5b33600061210881611895565b6001600160a01b03831660009081526006602090815260408083208054600160401b860201905560059091528120805490829055909101915061214c818484612e43565b9050826001600160a01b03167fe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c8383604051808381526020018281526020019250505060405180910390a2505050565b60086020526000908152604090208054600182015460028301546003909301549192909184565b6001544210156121d257600080fd5b60015460780142116121f057642e90edd0003a11156121f057600080fd5b60006121fc6001611748565b1161220657600080fd5b6014543360008181526007602052604081205491929091612231906305f5e10063ffffffff612d1816565b8161223857fe5b04905060008311801561227357506001600160a01b03821660009081526004602052604090205461226f908263ffffffff612d5016565b8311155b61227c57600080fd5b600061229b6305f5e100610beb60145487612d1890919063ffffffff16565b905060006122b56064610beb84600263ffffffff612d1816565b90506000601760159054906101000a900460ff16151560011515146122ef576122ea6064610beb85600763ffffffff612d1816565b612305565b6123056064610beb85600663ffffffff612d1816565b9050600061231f6064610beb86600163ffffffff612d1816565b90506000601760159054906101000a900460ff161515600115151461234557600061235b565b61235b6064610beb87600163ffffffff612d1816565b60008054919250612377916001600160a01b031690849061318c565b5060105461238b908263ffffffff612e3616565b6010556123a681610cc8848187818b8b63ffffffff612d5016565b6011549095506123bc908963ffffffff612d5016565b6011556001600160a01b0387166000908152600460205260409020546123e8908963ffffffff612d5016565b6001600160a01b03881660009081526004602090815260408083209390935560125460069091529190208054918a02600160401b8802019182900390556011541561244857612444601254601154600160401b870281611a3857fe5b6012555b61246e61245f85611889898663ffffffff612e3616565b6013549063ffffffff612d5016565b6013556011546305f5e10010156124a557601154601354612499906305f5e10063ffffffff612d1816565b816124a057fe5b046014555b64e8d4a510006124be666865787269736560c81b610d69565b106124d6576124d6666865787269736560c81b612612565b604080518a815290516000916001600160a01b038b16916000805160206133828339815191529181900360200190a3604080518a815260208101889052428183015290516001600160a01b038a16917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a26014546040805191825242602083015280516000805160206133628339815191529281900390910190a1505050505050505050565b600080611ae26001610bc4565b60145433600081815260076020526040812054919290916125bd906305f5e10063ffffffff612d1816565b816125c457fe5b6001600160a01b038416600090815260046020526040812054929091049250906125f4908363ffffffff612d5016565b9050801561260557612605816121c3565b61260d6110e2565b505050565b806568657874657760d01b141561277657600061263c600d54600e54612d5090919063ffffffff16565b90506000811161264b57600080fd5b600d5461265e908263ffffffff612e3616565b600d556017546040805163095ea7b360e01b815273d495cc8c7c29c7fa3e027a5759561ab68c36360960048201526024810184905290516001600160a01b039092169163095ea7b3916044808201926020929091908290030181600087803b1580156126c957600080fd5b505af11580156126dd573d6000803e3d6000fd5b505050506040513d60208110156126f357600080fd5b5050601554604080516391c05b0b60e01b81526004810184905290516001600160a01b03909216916391c05b0b916024808201926020929091908290030181600087803b15801561274357600080fd5b505af1158015612757573d6000803e3d6000fd5b505050506040513d602081101561276d57600080fd5b506128c1915050565b80666865787269736560c81b14156128c15760006127a1600f54601054612d5090919063ffffffff16565b9050600081116127b057600080fd5b600f546127c3908263ffffffff612e3616565b600f556017546040805163095ea7b360e01b8152738d5ca96e9984662625e6cbf490da40c9d727086560048201526024810184905290516001600160a01b039092169163095ea7b3916044808201926020929091908290030181600087803b15801561282e57600080fd5b505af1158015612842573d6000803e3d6000fd5b505050506040513d602081101561285857600080fd5b5050601654604080516320b4851760e01b81526004810184905290516001600160a01b03909216916320b485179160248082019260009290919082900301818387803b1580156128a757600080fd5b505af11580156128bb573d6000803e3d6000fd5b50505050505b50565b600c5481565b60006128d7848484611dd1565b905061ffff811661299c57601760009054906101000a90046001600160a01b03166001600160a01b0316635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561293057600080fd5b505afa158015612944573d6000803e3d6000fd5b505050506040513d602081101561295a57600080fd5b50513360009081526018602090815260408083208684529091529020600201805461ffff909216600160681b0261ffff60681b199092169190911790556129d2565b3360009081526018602090815260408083208584529091529020600201805461ffff60681b1916600160681b61ffff8416021790555b601754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015612a1d57600080fd5b505afa158015612a31573d6000803e3d6000fd5b505050506040513d6020811015612a4757600080fd5b505160175460408051631a1804d160e11b81526004810189905264ffffffffff8816602482015290519293506001600160a01b039091169163343009a29160448082019260009290919082900301818387803b158015612aa657600080fd5b505af1158015612aba573d6000803e3d6000fd5b50503360009081526018602090815260408083208884528252808320600201805460ff60801b1916600160801b17905560175481516370a0823160e01b81523060048201529151939550612b6894506001600160a01b0316926370a0823192602480840193919291829003018186803b158015612b3657600080fd5b505afa158015612b4a573d6000803e3d6000fd5b505050506040513d6020811015612b6057600080fd5b505183612d50565b336000908152601860209081526040808320888452909152812060010154919250818311612c5157612b9a8284612d50565b601354909150612bb0908263ffffffff612d5016565b601355601454612bca826305f5e10063ffffffff612d1816565b81612bd157fe5b049050612be060115482612d50565b60115533600090815260046020526040902054612bfd9082612d50565b3360008181526004602090815260408083209490945560125460068252848320805491870291829003905584518681529451909492939260008051602061338283398151915292908290030190a350612c74565b81831115612c7457612c638383612d50565b9050612c7160003383612e43565b90505b612c80600a5483612d50565b600a5533600090815260086020908152604080832060030180546000190190556007909152902054612cb29083612d50565b336000818152600760209081526040918290209390935580518981529283018690528281018490524260608401525190917f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba248919081900360800190a25050505050505050565b600082612d27575060006110dc565b5081810281838281612d3557fe5b04146110dc57fe5b6000818381612d4857fe5b049392505050565b600082821115612d5c57fe5b50900390565b601754604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612dbc57600080fd5b505af1158015612dd0573d6000803e3d6000fd5b505050506040513d6020811015612de657600080fd5b505115156001146128c1576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881b5d5cdd081cdd58d8d95959605a1b604482015290519081900360640190fd5b818101828110156110dc57fe5b6000600154421015612e5457600080fd5b6001546078014211612e7257642e90edd0003a1115612e7257600080fd5b6001600160a01b038316600090815260086020526040902054612e9957600b805460010190555b6001600160a01b038316600090815260086020526040902080548301905581612ec157600080fd5b6000612ed96064610beb85600263ffffffff612d1816565b90506000601760159054906101000a900460ff1615156001151514612f1357612f0e6064610beb86600763ffffffff612d1816565b612f29565b612f296064610beb86600663ffffffff612d1816565b90506000612f436064610beb87600163ffffffff612d1816565b90506000601760159054906101000a900460ff1615156001151514612f69576000612f7f565b612f7f6064610beb88600163ffffffff612d1816565b90506000612f9b82610cc8858188818d8c63ffffffff612d5016565b60008054919250612fb7916001600160a01b031690859061318c565b506000612fc589838761318c565b90506001600160a01b038a1615801590612ff15750886001600160a01b03168a6001600160a01b031614155b801561301757506009546001600160a01b038b1660009081526004602052604090205410155b15613063576001600160a01b038a16600090815260056020526040902054613045908463ffffffff612e3616565b6001600160a01b038b1660009081526005602052604090205561307a565b600e54613076908463ffffffff612e3616565b600e555b6130a061309186610cc88b8763ffffffff612d5016565b6013549063ffffffff612e3616565b6013556011546305f5e10010156130d7576011546013546130cb906305f5e10063ffffffff612d1816565b816130d257fe5b046014555b64e8d4a510006130ef6568657874657760d01b610d69565b10613106576131066568657874657760d01b612612565b6040805189815260208101839052428183015290516001600160a01b03808d1692908c16917fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de869181900360600190a36014546040805191825242602083015280516000805160206133628339815191529281900390910190a19998505050505050505050565b60145460009081906131a8856305f5e10063ffffffff612d1816565b816131af57fe5b049050600160401b830281158015906131d857506011546131d6838263ffffffff612e3616565b115b6131e157600080fd5b60115415613239576011546131fc908363ffffffff612e3616565b6011819055600160401b85028161320f57fe5b60128054929091049091019055601154600160401b85028161322d57fe5b0482028103900361323f565b60118290555b6001600160a01b038616600090815260046020526040902054613268908363ffffffff612e3616565b6001600160a01b038716600081815260046020908152604080832094909455601254600682528483208054918802879003918201905584518781529451909460008051602061338283398151915292908290030190a3509095945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061330a57805160ff1916838001178555613337565b82800160010185558215613337579182015b8281111561333757825182559160200191906001019061331c565b50613343929150613347565b5090565b610e3991905b80821115613343576000815560010161334d56fe0d257a4fe7c6968563ed5ac588cf5b4ddb95868eb9b8fe412c2000cb6f2843acddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582067f94d52f3e810cb33ee3e8255761e716348e38169714b47aa9f38b2cd05d51d64736f6c634300050d0032
Deployed Bytecode Sourcemap
1902:23413:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5977:8;;;21860:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21860:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21860:224:0;-1:-1:-1;;;;;21860:224:0;;:::i;:::-;;;;;;;;;;;;;;;;22092:701;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22092:701:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22092:701:0;;;;:::i;3758:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3758:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3758:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25005:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25005:307:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25005:307:0;;:::i;20718:113::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20718:113:0;;;:::i;20839:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20839:89:0;;;:::i;6528:449::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6528:449:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6528:449:0;;:::i;:::-;;4456:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4456:57:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4456:57:0;-1:-1:-1;;;;;4456:57:0;;:::i;5592:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:68:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5592:68:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5592:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3830:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4765:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4765:36:0;;;:::i;23500:861::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23500:861:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23500:861:0;;;;;;;;;:::i;8606:504::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8606:504:0;;;:::i;4713:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4713:45:0;;;:::i;20472:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20472:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20472:118:0;;;;:::i;15808:1429::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15808:1429:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15808:1429:0;;;;;;;:::i;4930:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4930:40:0;;;:::i;20936:178::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20936:178:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20936:178:0;;;;:::i;20598:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20598:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20598:112:0;;;;:::i;22801:691::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22801:691:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22801:691:0;;;;:::i;21122:275::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21122:275:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21122:275:0;;;;:::i;21405:447::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21405:447:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21405:447:0;;;;;;;;;;:::i;4884:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4884:39:0;;;:::i;4977:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4977:40:0;;;:::i;1699:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1699:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;1699:20:0;;;;;;;;;;;;;;6178:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6178:342:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6178:342:0;;:::i;3794:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3794:29:0;;;:::i;24684:313::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24684:313:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24684:313:0;;;;;;;;;;:::i;9315:224::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9315:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9315:224:0;;;;;;;;;;;;;;;;;:::i;14415:1385::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14415:1385:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14415:1385:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5024:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5024:41:0;;;:::i;17245:1011::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17245:1011:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17245:1011:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20365:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20365:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20365:99:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;20365:99:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20365:99:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20365:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;20365:99:0;;-1:-1:-1;20365:99:0;;-1:-1:-1;;;;;20365:99:0:i;20266:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20266:91:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20266:91:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;20266:91:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20266:91:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;20266:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;20266:91:0;;-1:-1:-1;20266:91:0;;-1:-1:-1;;;;;20266:91:0:i;4808:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4808:30:0;;;:::i;9118:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9118:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9118:189:0;;;;;;;;:::i;7785:470::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7785:470:0;;;:::i;4660:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4660:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4660:44:0;-1:-1:-1;;;;;4660:44:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12427:1980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12427:1980:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12427:1980:0;;:::i;24369:307::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24369:307:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24369:307:0;;;;;;;;;;:::i;8263:335::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8263:335:0;;;:::i;6985:792::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6985:792:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6985:792:0;;:::i;4845:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4845:32:0;;;:::i;18264:1994::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18264:1994:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18264:1994:0;;;;;;;;;;;;;;:::i;21860:224::-;-1:-1:-1;;;;;22033:27:0;;21928:7;22033:27;;;:9;:27;;;;;;;;;21993:18;:36;;;;;;21976:14;;-1:-1:-1;;;3963:7:0;21976:53;;21966:94;21955:121;21948:128;;21860:224;;;;:::o;22092:701::-;22151:7;;;;;22309:377;;;;22359:10;;:38;;22393:3;;22359:29;;4018:1;22359:29;:14;:29;:::i;:::-;:33;:38;:33;:38;:::i;:::-;22427:13;;22342:55;;-1:-1:-1;;;;22427:13:0;;;;:21;;22444:4;22427:21;:99;;22489:10;;:37;;22522:3;;22489:28;;22504:12;22489:28;:14;:28;:::i;:37::-;22427:99;;;22451:10;;:35;;22482:3;;22451:26;;4104:1;22451:26;:14;:26;:::i;:35::-;22551:10;;22412:114;;-1:-1:-1;22551:31:0;;22578:3;;22551:22;;4189:1;22551:22;:14;:22;:::i;:31::-;22611:13;;22541:41;;-1:-1:-1;;;;22611:13:0;;;;:21;;22628:4;22611:21;:63;;22673:1;22611:63;;;22635:10;;:35;;22666:3;;22635:26;;4276:1;22635:26;:14;:26;:::i;:35::-;22597:77;;22309:377;22706:78;22772:11;22706:61;22759:7;22706:48;22741:12;22706:30;22721:14;22706:10;;:14;;:30;;;;:::i;:::-;:34;:48;:34;:48;:::i;:78::-;22698:87;22092:701;-1:-1:-1;;;;;;22092:701:0:o;3758:29::-;;;;;;;;;;;;;;-1:-1:-1;;3758:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25005:307::-;25066:7;25090:8;-1:-1:-1;;;25090:20:0;25086:219;;;25158:20;;25132:21;;:47;;;:25;:47;:::i;:::-;25125:54;;;;25086:219;25201:8;-1:-1:-1;;;25201:21:0;25197:108;;;25271:21;;25244:22;;:49;;;:26;:49;:::i;20718:113::-;20793:5;;:30;;;-1:-1:-1;;;20793:30:0;;20817:4;20793:30;;;;;;20766:7;;-1:-1:-1;;;;;20793:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;20793:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20793:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20793:30:0;;-1:-1:-1;20718:113:0;;:::o;20839:89::-;20909:11;;20839:89;:::o;6528:449::-;2057:15;;2050:3;:22;;2042:31;;;;;;2098:15;;2116:9;2098:27;2090:3;:36;2086:102;;2166:9;2151:11;:24;;2143:33;;;;;;6623:1;6613:7;:11;6605:48;;;;;-1:-1:-1;;;6605:48:0;;;;;;;;;;;;-1:-1:-1;;;6605:48:0;;;;;;;;;;;;;;;6664:28;6684:7;6664:19;:28::i;:::-;6703:13;:24;;;;;;6754:13;;:26;;6720:7;6754:26;:17;:26;:::i;:::-;6738:13;:42;6797:11;;3913:3;-1:-1:-1;6793:123:0;;;6893:11;;6856:13;;:33;;3913:3;6856:33;:17;:33;:::i;:::-;6855:49;;;;;;6842:10;:62;6793:123;6953:10;;6933:36;;;;;;6965:3;6933:36;;;;;;-1:-1:-1;;;;;;;;;;;6933:36:0;;;;;;;;;6528:449;:::o;4456:57::-;;;;;;;;;;;;;:::o;5592:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5592:68:0;;;;-1:-1:-1;;;5592:68:0;;;;;-1:-1:-1;;;5592:68:0;;;;;-1:-1:-1;;;5592:68:0;;;;;-1:-1:-1;;;5592:68:0;;;;;-1:-1:-1;;;5592:68:0;;;;:::o;3830:34::-;3863:1;3830:34;:::o;4765:36::-;;;;:::o;23500:861::-;23594:7;;;;;23751:376;;;;23801:39;23836:3;23801:30;:11;4018:1;23801:30;:15;:30;:::i;:39::-;23870:13;;23784:56;;-1:-1:-1;;;;23870:13:0;;;;:21;;23887:4;23870:21;:97;;23931:36;23963:3;23931:27;:11;23947:10;23931:27;:15;:27;:::i;:36::-;23870:97;;;23894:34;23924:3;23894:25;:11;4060:1;23894:25;:15;:25;:::i;:34::-;23855:112;-1:-1:-1;23992:32:0;24020:3;23992:23;:11;4189:1;23992:23;:15;:23;:::i;:32::-;24052:13;;23982:42;;-1:-1:-1;;;;24052:13:0;;;;:21;;24069:4;24052:21;:63;;24114:1;24052:63;;;24076:35;24107:3;24076:26;:11;4232:1;24076:26;:15;:26;:::i;:35::-;24039:76;;23751:376;24139:17;24159:78;24226:10;24159:62;24213:7;24159:62;24195:12;24159:62;:11;24175:14;24159:31;:15;:31;:::i;:78::-;24308:10;;24139:98;;-1:-1:-1;24248:23:0;;24275:29;24139:98;3913:3;24275:29;:13;:29;:::i;:::-;24274:44;;;;;;;-1:-1:-1;;;;;;;23500:861:0;;;;;:::o;8606:504::-;2365:1;2345:17;2357:4;2345:11;:17::i;:::-;:21;2337:30;;;;;;8681:10;8654:24;8723:18;8654:24;8723:11;:18::i;:::-;-1:-1:-1;;;;;8752:27:0;;;;;;;:9;:27;;;;;;;;:67;;-1:-1:-1;;;8793:25:0;;8752:67;;;8844:15;:33;;;;;;;8888:37;;;;8936:5;;:44;;-1:-1:-1;;;8936:44:0;;;;;;;;;8830:47;;8936:44;;;;;;;;8830:47;;-1:-1:-1;8936:5:0;;;;;:14;;:44;;;;;8752:27;;8936:44;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;8936:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8936:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;8991:29:0;;;;;;:11;8936:44;8991:29;;;;;;;;:41;;:55;;;;;;9062:40;;;;;;;;;;;;;;;;;2378:1;;8606:504::o;4713:45::-;;;;:::o;20472:118::-;1875:5;;-1:-1:-1;;;;;1875:5:0;1861:10;:19;1853:28;;;;;;20550:14;:32;;;;;-1:-1:-1;;;20550:32:0;-1:-1:-1;;;;20550:32:0;;;;;;;;;20472:118::o;15808:1429::-;2440:14;;-1:-1:-1;;;2440:14:0;;;;:22;;2458:4;2440:22;2432:31;;;;;;-1:-1:-1;;;;;15903:7:0;:33;;15895:42;;;;;;15995:7;15956:35;15974:10;15986:4;15956:17;:35::i;:::-;:46;;15948:55;;;;;;16016:5;;:32;;;-1:-1:-1;;;16016:32:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16016:5:0;;;;:16;;:32;;;;;:5;;:32;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;16016:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16241:5:0;;:31;;;-1:-1:-1;;;16241:31:0;;16266:4;16241:31;;;;;;16082:19;;-1:-1:-1;16082:19:0;;-1:-1:-1;16082:19:0;;;;;;-1:-1:-1;;;;;16241:5:0;;;;:16;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;16241:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16241:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16241:31:0;;-1:-1:-1;16297:28:0;16241:31;16323:1;16297:12;:28::i;:::-;16390:5;;:44;;;-1:-1:-1;;;16390:44:0;;16415:4;16390:44;;;;;;;;;;;;16283:42;;-1:-1:-1;;;;;;16390:5:0;;;;:16;;:44;;;;;;;;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;16390:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16390:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;16390:44:0;;;;;;;;;;;;;;;;16486:40;;;;;;-1:-1:-1;;;;;;16486:40:0;16390:44;16486:40;;;;;;;;;;;-1:-1:-1;;;;;;16486:40:0;;;;;;;26:21:-1;;;22:32;;6:49;;16486:40:0;;;;;;16476:51;;;;;;;;;16575:10;-1:-1:-1;16564:22:0;;;:10;:22;;;;;:33;;;;;;;;;:41;;;16390:44;;-1:-1:-1;16390:44:0;;-1:-1:-1;16390:44:0;;-1:-1:-1;16390:44:0;;-1:-1:-1;;;;16564:41:0;;;;:50;16556:59;;;;;;16699:4;16655:10;:22;16666:10;-1:-1:-1;;;;;16655:22:0;-1:-1:-1;;;;;16655:22:0;;;;;;;;;;;;:33;16678:9;16655:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;16752:92;;;;;;;;16763:8;16752:92;;;;;;16773:7;16752:92;;;;16782:12;-1:-1:-1;;;;;16752:92:0;;;;;16796:10;16752:92;;;;;;16808:11;16752:92;;;;;;16828:1;16752:92;;;;;;16832:4;16752:92;;;;;;16838:5;16752:92;;;;;16716:10;:22;16727:10;-1:-1:-1;;;;;16716:22:0;-1:-1:-1;;;;;16716:22:0;;;;;;;;;;;;:33;16739:9;16716:33;;;;;;;;;;;:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16716:128:0;;;;;-1:-1:-1;;;;;16716:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16877:40;16890:17;;16909:7;16877:12;:40::i;:::-;16857:17;:60;16942:10;16930:23;;;;:11;:23;;;;;;;;:36;;;:41;;16970:1;16930:41;;;16982:30;;:41;;;;;;17086:22;:34;;;;;;17073:57;;17016:7;17073:12;:57::i;:::-;17059:10;17036:34;;;;:22;:34;;;;;:94;;;;17059:10;17148:81;;17173:9;;17184:39;;17208:7;;17184:23;:39::i;:::-;17148:81;;;;;;;;;;;;;17225:3;17148:81;;;;;;;;;;;;;2474:1;;;;;;15808:1429;;:::o;4930:40::-;;;;:::o;20936:178::-;20992:7;21039:10;21067:39;21039:10;21095;21067:9;:39::i;:::-;21060:46;20936:178;-1:-1:-1;;;20936:178:0:o;20598:112::-;1875:5;;-1:-1:-1;;;;;1875:5:0;1861:10;:19;1853:28;;;;;;20672:13;:30;;;;;-1:-1:-1;;;20672:30:0;-1:-1:-1;;;;20672:30:0;;;;;;;;;20598:112::o;22801:691::-;22858:7;;;;;23015:371;;;;23065:10;;:38;;23099:3;;23065:29;;4018:1;23065:29;:14;:29;:::i;:38::-;23133:13;;23048:55;;-1:-1:-1;;;;23133:13:0;;;;:21;;23150:4;23133:21;:95;;23193:10;;:35;;23224:3;;23193:26;;23208:10;23193:26;:14;:26;:::i;:35::-;23133:95;;;23157:10;;:33;;23186:3;;23157:24;;4060:1;23157:24;:14;:24;:::i;:33::-;23253:10;;23118:110;;-1:-1:-1;23253:31:0;;23280:3;;23253:22;;4189:1;23253:22;:14;:22;:::i;:31::-;23312:13;;23243:41;;-1:-1:-1;;;;23312:13:0;;;;:21;;23329:4;23312:21;:62;;23373:1;23312:62;;;23336:10;;:34;;23366:3;;23336:25;;4232:1;23336:25;:14;:25;:::i;:34::-;23299:75;;23015:371;23406:77;23472:10;23406:61;23459:7;23406:48;23441:12;23406:30;23421:14;23406:10;;:14;;:30;;;;:::i;:::-;:34;:48;:34;:48;:::i;21122:275::-;21192:7;21239:10;21267:21;:121;;21359:29;21371:16;21359:11;:29::i;:::-;21267:121;;;-1:-1:-1;;;;;21323:33:0;;;;;;:15;:33;;;;;;21291:29;21339:16;21291:11;:29::i;:::-;:65;;21122:275;-1:-1:-1;;;21122:275:0:o;21405:447::-;21488:7;21512:19;21508:337;;-1:-1:-1;;;;;;21555:36:0;;;;;;:18;:36;;;;;;21548:43;;21508:337;21636:4;21622:18;;;;21618:227;;;21745:10;;-1:-1:-1;;;;;21681:40:0;;21657:20;21681:40;;;:22;:40;;;;;;21657:20;;21745:10;21681:60;;3913:3;21681:60;:44;:60;:::i;:::-;21680:75;;;;;-1:-1:-1;;;;;21778:36:0;;;;;;:18;:36;;;;;;21680:75;;;;-1:-1:-1;21778:54:0;;21680:75;21778:54;:40;:54;:::i;:::-;21770:63;;;;;4884:39;;;;:::o;4977:40::-;;;;:::o;1699:20::-;;;-1:-1:-1;;;;;1699:20:0;;:::o;6178:342::-;2057:15;;2050:3;:22;;2042:31;;;;;;2098:15;;2116:9;2098:27;2090:3;:36;2086:102;;2166:9;2151:11;:24;;2143:33;;;;;;6263:1;6253:7;:11;6245:48;;;;;-1:-1:-1;;;6245:48:0;;;;;;;;;;;;-1:-1:-1;;;6245:48:0;;;;;;;;;;;;;;;6304:28;6324:7;6304:19;:28::i;:::-;6343:13;:24;;;;;;6408:14;;6451:11;;6395:68;;6408:14;-1:-1:-1;;;6425:22:0;;6451:11;6424:38;;;;;6395:12;:68::i;:::-;6378:14;:85;6479:33;;;;;;;;6492:10;;6479:33;;;;;;;;;;6178:342;:::o;3794:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3794:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24684:313;24774:7;24794:14;24811:16;24821:5;24811:9;:16::i;:::-;24794:33;;24838:16;24857:39;24867:16;24885:10;24857:9;:39::i;:::-;24838:58;-1:-1:-1;24907:14:0;3913:3;24925:20;24838:58;24938:6;24925:20;:12;:20;:::i;:::-;24924:39;;;;;;;24684:313;-1:-1:-1;;;;;;24684:313:0:o;9315:224::-;9411:7;9431:28;9451:7;9431:19;:28::i;:::-;9477:54;9492:11;9505:16;9523:7;9477:14;:54::i;:::-;9470:61;9315:224;-1:-1:-1;;;;9315:224:0:o;14415:1385::-;14525:4;2057:15;;2050:3;:22;;2042:31;;;;;;2098:15;;2116:9;2098:27;2090:3;:36;2086:102;;2166:9;2151:11;:24;;2143:33;;;;;;2277:1;2260:14;2269:4;2260:8;:14::i;:::-;:18;2252:27;;;;;;14678:10;;14569;14542:24;14614:40;;;:22;:40;;;;;;14569:10;;14542:24;;14614:60;;3913:3;14614:60;:44;:60;:::i;:::-;14613:75;;;;;;14590:98;;14727:1;14709:15;:19;:96;;;;-1:-1:-1;;;;;;14751:36:0;;;;;;:18;:36;;;;;;:54;;14792:12;14751:54;:40;:54;:::i;:::-;14732:15;:73;;14709:96;14701:105;;;;;;14843:1;14823:17;14835:4;14823:11;:17::i;:::-;:21;14819:64;;;14861:10;:8;:10::i;:::-;14895:17;14915:41;14952:3;14915:32;:15;4149:1;14915:32;:19;:32;:::i;:41::-;14895:61;-1:-1:-1;14967:20:0;14990:30;:15;14895:61;14990:30;:19;:30;:::i;:::-;-1:-1:-1;;;;;15072:36:0;;;;;;:18;:36;;;;;;14967:53;;-1:-1:-1;15072:57:0;;15113:15;15072:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;15033:36:0;;;;;;;:18;:36;;;;;;:96;;;;15173:30;;;;;;;:48;;15208:12;15173:48;:34;:48;:::i;:::-;-1:-1:-1;;;;;15140:30:0;;;;;;;:18;:30;;;;;;;;:81;;;;15275:14;;;15234:27;;;;;:9;:27;;;;;;:74;;15275:32;;;15234:74;;;;;;15354:14;;15319:21;;;;;;:65;;15354:29;;;15319:65;;;;;15411:11;;:26;;15427:9;15411:15;:26::i;:::-;15397:11;:40;;;3913:3;-1:-1:-1;15450:132:0;;;15559:11;;15522:13;;:33;;3913:3;15522:33;:17;:33;:::i;:::-;15521:49;;;;;;15508:10;:62;15450:132;15599:49;;;;;;;;15634:1;;-1:-1:-1;;;;;15599:49:0;;;-1:-1:-1;;;;;;;;;;;15599:49:0;;;;;;;;15691:10;-1:-1:-1;;;;;15664:52:0;15673:16;-1:-1:-1;;;;;15664:52:0;-1:-1:-1;;;;;;;;;;;15703:12:0;15664:52;;;;;;;;;;;;;;;;;;15752:10;;15732:36;;;;;;15764:3;15732:36;;;;;;-1:-1:-1;;;;;;;;;;;15732:36:0;;;;;;;;;-1:-1:-1;15788:4:0;;14415:1385;-1:-1:-1;;;;;;14415:1385:0:o;5024:41::-;;;;:::o;17245:1011::-;17618:5;;:44;;;-1:-1:-1;;;17618:44:0;;17643:4;17618:44;;;;;;;;;;;;17347:6;;;;;;;;;;;;;;-1:-1:-1;;;;;17618:5:0;;:16;;:44;;;;;;;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17618:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17618:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17618:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17541:121;;;;;;;;;;;;;;;;;;;;;;;;;17681:10;:22;17692:10;-1:-1:-1;;;;;17681:22:0;-1:-1:-1;;;;;17681:22:0;;;;;;;;;;;;:33;17704:9;17681:33;;;;;;;;;;;:41;;;;;;;;;;;;:49;;17726:4;17681:49;;;:101;;;;-1:-1:-1;17745:10:0;17734:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;;-1:-1:-1;;;17734:39:0;;;;:48;17681:101;17673:110;;;;;;17813:10;17802:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:41;:58;;;;:41;;:58;:87;;;;;17881:8;17864:25;;:13;:25;;;17802:87;17794:96;;;;;;17920:10;17909:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;-1:-1:-1;;;;;17956:22:0;;17909:69;17901:78;;;;;;18009:10;17998:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;;-1:-1:-1;;;;;17998:61:0;;;:45;;:61;17990:70;;;;;;18090:10;18079:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;:57;;;;-1:-1:-1;;;18079:43:0;;;;:57;18071:66;;;;;;18167:10;18156:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:44;;;:59;;;;-1:-1:-1;;;18156:44:0;;;;:59;18148:68;;;;;;18236:12;17245:1011;-1:-1:-1;;;;;;;;;17245:1011:0:o;20365:99::-;1875:5;;-1:-1:-1;;;;;1875:5:0;1861:10;:19;1853:28;;;;;;20440:16;;;;:6;;:16;;;;;:::i;:::-;;20365:99;:::o;20266:91::-;1875:5;;-1:-1:-1;;;;;1875:5:0;1861:10;:19;1853:28;;;;;;20337:12;;;;:4;;:12;;;;;:::i;4808:30::-;;;;:::o;9118:189::-;9185:7;9205:28;9225:7;9205:19;:28::i;:::-;9251:48;9266:11;9279:10;9291:7;9251:14;:48::i;7785:470::-;2365:1;2345:17;2357:4;2345:11;:17::i;:::-;:21;2337:30;;;;;;7856:10;7829:24;7898:18;7829:24;7898:11;:18::i;:::-;-1:-1:-1;;;;;7927:27:0;;;;;;:9;:27;;;;;;;;:68;;-1:-1:-1;;;7969:25:0;;7927:68;;;8020:15;:33;;;;;;;8064:37;;;;8006:47;;;;-1:-1:-1;8130:56:0;7927:27;7937:16;8006:47;8130:14;:56::i;:::-;8112:74;;8209:16;-1:-1:-1;;;;;8202:45:0;;8227:10;8239:7;8202:45;;;;;;;;;;;;;;;;;;;;;;;;2378:1;;;7785:470::o;4660:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12427:1980::-;2057:15;;2050:3;:22;;2042:31;;;;;;2098:15;;2116:9;2098:27;2090:3;:36;2086:102;;2166:9;2151:11;:24;;2143:33;;;;;;2277:1;2260:14;2269:4;2260:8;:14::i;:::-;:18;2252:27;;;;;;12649:10;;12540;12513:24;12585:40;;;:22;:40;;;;;;12540:10;;12513:24;;12585:60;;3913:3;12585:60;:44;:60;:::i;:::-;12584:75;;;;;;12561:98;;12698:1;12680:15;:19;:96;;;;-1:-1:-1;;;;;;12722:36:0;;;;;;:18;:36;;;;;;:54;;12763:12;12722:54;:40;:54;:::i;:::-;12703:15;:73;;12680:96;12672:105;;;;;;12790:12;12805:51;3913:3;12805:31;12825:10;;12805:15;:19;;:31;;;;:::i;:51::-;12790:66;-1:-1:-1;12867:22:0;12892:32;12920:3;12892:23;12790:66;4018:1;12892:23;:8;:23;:::i;:32::-;12867:57;;12935:20;12958:13;;;;;;;;;;;:21;;12975:4;12958:21;;;:87;;13014:31;13041:3;13014:22;:4;13023:12;13014:22;:8;:22;:::i;:31::-;12958:87;;;12982:29;13007:3;12982:20;:4;4104:1;12982:20;:8;:20;:::i;:29::-;12935:110;-1:-1:-1;13056:15:0;13074:25;13095:3;13074:16;:4;4189:1;13074:16;:8;:16;:::i;:25::-;13056:43;;13110:19;13132:13;;;;;;;;;;;:21;;13149:4;13132:21;;;:57;;13188:1;13132:57;;;13156:29;13181:3;13156:20;:4;4276:1;13156:20;:8;:20;:::i;:29::-;13218:5;;;13110:79;;-1:-1:-1;13202:34:0;;-1:-1:-1;;;;;13218:5:0;;13225:7;;13202:15;:34::i;:::-;-1:-1:-1;13272:22:0;;:39;;13299:11;13272:39;:26;:39;:::i;:::-;13247:22;:64;13331:72;13391:11;13331:55;13378:7;13331:55;13360:12;13331:55;:4;13340:14;13331:24;:8;:24;:::i;:72::-;13430:11;;13324:79;;-1:-1:-1;13430:32:0;;13446:15;13430:32;:15;:32;:::i;:::-;13416:11;:46;-1:-1:-1;;;;;13512:36:0;;;;;;:18;:36;;;;;;:57;;13553:15;13512:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;13473:36:0;;;;;;:18;:36;;;;;;;;:96;;;;13617:14;;13685:9;:27;;;;;;:46;;13617:32;;;-1:-1:-1;;;13653:19:0;;13617:56;13685:46;;;;;;13748:11;;:15;13744:138;;13797:73;13810:14;;13858:11;;-1:-1:-1;;;13827:12:0;:27;13826:43;;;;13797:73;13780:14;:90;13744:138;13910:58;13928:39;13954:12;13928:21;:4;13937:11;13928:21;:8;:21;:::i;:39::-;13910:13;;;:58;:17;:58;:::i;:::-;13894:13;:74;13985:11;;3913:3;-1:-1:-1;13981:123:0;;;14081:11;;14044:13;;:33;;3913:3;14044:33;:17;:33;:::i;:::-;14043:49;;;;;;14030:10;:62;13981:123;14148:7;14120:24;-1:-1:-1;;;14120:13:0;:24::i;:::-;:35;14116:86;;14172:18;-1:-1:-1;;;14172:7:0;:18::i;:::-;14219:55;;;;;;;;14254:1;;-1:-1:-1;;;;;14219:55:0;;;-1:-1:-1;;;;;;;;;;;14219:55:0;;;;;;;;14290:57;;;;;;;;;;;;14343:3;14290:57;;;;;;-1:-1:-1;;;;;14290:57:0;;;;;;;;;;;;;14383:10;;14363:36;;;;;;14395:3;14363:36;;;;;;-1:-1:-1;;;;;;;;;;;14363:36:0;;;;;;;;;2290:1;;;;;;;;12427:1980;:::o;24369:307::-;24454:7;24474:14;24491:15;24501:4;24491:9;:15::i;8263:335::-;8435:10;;8326;8299:24;8371:40;;;:22;:40;;;;;;8326:10;;8299:24;;8371:60;;3913:3;8371:60;:44;:60;:::i;:::-;8370:75;;;;;-1:-1:-1;;;;;8474:36:0;;8456:15;8474:36;;;:18;:36;;;;;;8370:75;;;;;-1:-1:-1;8456:15:0;8474:54;;8370:75;8474:54;:40;:54;:::i;:::-;8456:72;-1:-1:-1;8543:11:0;;8539:30;;8556:13;8561:7;8556:4;:13::i;:::-;8580:10;:8;:10::i;:::-;8263:335;;;:::o;6985:792::-;7042:8;-1:-1:-1;;;7042:20:0;7038:732;;;7077:17;7097:47;7123:20;;7097:21;;:25;;:47;;;;:::i;:::-;7077:67;;7177:1;7165:9;:13;7157:22;;;;;;7215:20;;:35;;7240:9;7215:35;:24;:35;:::i;:::-;7192:20;:58;7263:5;;:77;;;-1:-1:-1;;;7263:77:0;;7285:42;7263:77;;;;;;;;;;;;-1:-1:-1;;;;;7263:5:0;;;;:13;;:77;;;;;;;;;;;;;;;:5;;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;7263:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7263:77:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7353:6:0;;:28;;;-1:-1:-1;;;7353:28:0;;;;;;;;;;-1:-1:-1;;;;;7353:6:0;;;;:17;;:28;;;;;7263:77;;7353:28;;;;;;;;:6;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;7353:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7353:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7038:732:0;;-1:-1:-1;;7038:732:0;;7403:8;-1:-1:-1;;;7403:21:0;7399:371;;;7439:17;7459:49;7486:21;;7459:22;;:26;;:49;;;;:::i;:::-;7439:69;;7541:1;7529:9;:13;7521:22;;;;;;7580:21;;:36;;7606:9;7580:36;:25;:36;:::i;:::-;7556:21;:60;7629:5;;:77;;;-1:-1:-1;;;7629:77:0;;7651:42;7629:77;;;;;;;;;;;;-1:-1:-1;;;;;7629:5:0;;;;:13;;:77;;;;;;;;;;;;;;;:5;;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;7629:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7629:77:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7719:7:0;;:39;;;-1:-1:-1;;;7719:39:0;;;;;;;;;;-1:-1:-1;;;;;7719:7:0;;;;:28;;:39;;;;;:7;;:39;;;;;;;;:7;;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7719:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7719:39:0;;;;7399:371;;6985:792;:::o;4845:32::-;;;;:::o;18264:1994::-;18362:19;18384:48;18394:11;18407:13;18422:9;18384;:48::i;:::-;18362:70;-1:-1:-1;18449:17:0;;;18445:245;;18537:5;;;;;;;;;-1:-1:-1;;;;;18537:5:0;-1:-1:-1;;;;;18537:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18537:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18537:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18537:18:0;18493:10;18482:22;;;;:10;18537:18;18482:22;;;;;;;:33;;;;;;;;:45;;:74;;;;;;-1:-1:-1;;;18482:74:0;-1:-1:-1;;;;18482:74:0;;;;;;;;;18445:245;;;18629:10;18618:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;:60;;-1:-1:-1;;;;18618:60:0;-1:-1:-1;;;18618:60:0;;;;;;;18445:245;18721:5;;:30;;;-1:-1:-1;;;18721:30:0;;18745:4;18721:30;;;;;;18702:16;;-1:-1:-1;;;;;18721:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18721:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18721:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18721:30:0;18764:5;;:42;;;-1:-1:-1;;;18764:42:0;;;;;;;;;;;;;;;;;18721:30;;-1:-1:-1;;;;;;18764:5:0;;;;:14;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;18764:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18882:10:0;18871:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;:46;;-1:-1:-1;;;;18871:46:0;-1:-1:-1;;;18871:46:0;;;18961:5;;:30;;-1:-1:-1;;;18961:30:0;;18985:4;18961:30;;;;;;18871:22;;-1:-1:-1;18948:54:0;;-1:-1:-1;;;;;;18961:5:0;;:15;;:30;;;;;18871:22;;18961:30;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18961:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18961:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18961:30:0;18993:8;18948:12;:54::i;:::-;19048:10;19013:21;19037:22;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;18930:72;;-1:-1:-1;19127:24:0;;;19123:806;;19182:36;19195:13;19210:7;19182:12;:36::i;:::-;19249:13;;19168:50;;-1:-1:-1;19249:30:0;;19168:50;19249:30;:17;:30;:::i;:::-;19233:13;:46;19344:10;;19309:31;:11;3913:3;19309:31;:15;:31;:::i;:::-;19308:46;;;;;;19294:60;;19383:38;19396:11;;19409;19383:12;:38::i;:::-;19369:11;:52;19501:10;19482:30;;;;:18;:30;;;;;;19469:57;;19514:11;19469:12;:57::i;:::-;19455:10;19436:30;;;;:18;:30;;;;;;;;:90;;;;19576:14;;19620:9;:21;;;;;:40;;19576:28;;;19620:40;;;;;;19680:45;;;;;;;19576:28;;19436:30;;19455:10;-1:-1:-1;;;;;;;;;;;19680:45:0;;;;;;;;19123:806;;;;19757:13;19747:7;:23;19743:186;;;19801:36;19814:7;19823:13;19801:12;:36::i;:::-;19787:50;;19866:51;19889:1;19893:10;19905:11;19866:14;:51::i;:::-;19852:65;;19743:186;19961:46;19974:17;;19993:13;19961:12;:46::i;:::-;19941:17;:66;20030:10;20018:23;;;;:11;:23;;;;;;;;:36;;:41;;-1:-1:-1;;20018:41:0;;;20122:22;:34;;;;;;20109:63;;20158:13;20109:12;:63::i;:::-;20095:10;20072:34;;;;:22;:34;;;;;;;;;:100;;;;20190:60;;;;;;;;;;;;;;;;;20246:3;20190:60;;;;;20095:10;;20190:60;;;;;;;;;;18264:1994;;;;;;;;:::o;50:174::-;108:9;130:6;126:37;;-1:-1:-1;154:1:0;147:8;;126:37;-1:-1:-1;173:5:0;;;177:1;173;:5;:1;192:5;;;;;:10;185:18;;;230:92;288:7;315:1;311;:5;;;;;;;230:92;-1:-1:-1;;;230:92:0:o;328:113::-;386:7;414:1;409;:6;;402:14;;;;-1:-1:-1;430:5:0;;;328:113::o;6001:169::-;6074:5;;:54;;;-1:-1:-1;;;6074:54:0;;6093:10;6074:54;;;;6113:4;6074:54;;;;;;;;;;;;-1:-1:-1;;;;;6074:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;6074:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6074:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6074:54:0;:62;;6132:4;6074:62;6066:96;;;;;-1:-1:-1;;;6066:96:0;;;;;;;;;;;;-1:-1:-1;;;6066:96:0;;;;;;;;;;;;;;447:127;527:5;;;546:6;;;;539:14;;;10611:1808;10733:7;2057:15;;2050:3;:22;;2042:31;;;;;;2098:15;;2116:9;2098:27;2090:3;:36;2086:102;;2166:9;2151:11;:24;;2143:33;;;;;;-1:-1:-1;;;;;10757:29:0;;;;;;:11;:29;;;;;:38;10753:89;;10817:11;:13;;;;;;10753:89;-1:-1:-1;;;;;10854:29:0;;;;;;:11;:29;;;;;:54;;;;;;10929:16;10921:25;;;;;;10959:22;10984:40;11020:3;10984:31;:12;4018:1;10984:31;:16;:31;:::i;:40::-;10959:65;;11035:20;11058:13;;;;;;;;;;;:21;;11075:4;11058:21;;;:99;;11120:37;11153:3;11120:28;:12;11137:10;11120:28;:16;:28;:::i;:37::-;11058:99;;;11082:35;11113:3;11082:26;:12;4060:1;11082:26;:16;:26;:::i;:35::-;11035:122;-1:-1:-1;11168:15:0;11186:33;11215:3;11186:24;:12;4189:1;11186:24;:16;:24;:::i;:33::-;11168:51;;11230:18;11251:13;;;;;;;;;;;:21;;11268:4;11251:21;;;:64;;11314:1;11251:64;;;11275:36;11307:3;11275:27;:12;4232:1;11275:27;:16;:27;:::i;:36::-;11230:85;-1:-1:-1;11326:17:0;11346:79;11230:85;11346:63;11401:7;11346:63;11383:12;11346:63;:12;11363:14;11346:32;:16;:32;:::i;:79::-;11454:5;;;11326:99;;-1:-1:-1;11438:34:0;;-1:-1:-1;;;;;11454:5:0;;11461:7;;11438:15;:34::i;:::-;;11483:23;11509:58;11525:16;11543:9;11554:12;11509:15;:58::i;:::-;11483:84;-1:-1:-1;;;;;;11584:25:0;;;;;;:60;;;11628:16;-1:-1:-1;;;;;11613:31:0;:11;-1:-1:-1;;;;;11613:31:0;;;11584:60;:118;;;;-1:-1:-1;11683:19:0;;-1:-1:-1;;;;;11648:31:0;;;;;;:18;:31;;;;;;:54;;11584:118;11580:320;;;-1:-1:-1;;;;;11750:28:0;;;;;;:15;:28;;;;;;:44;;11783:10;11750:44;:32;:44;:::i;:::-;-1:-1:-1;;;;;11719:28:0;;;;;;:15;:28;;;;;:75;11580:320;;;11851:21;;:37;;11877:10;11851:37;:25;:37;:::i;:::-;11827:21;:61;11580:320;11928:65;11946:46;11979:12;11946:28;:12;11963:10;11946:28;:16;:28;:::i;:46::-;11928:13;;;:65;:17;:65;:::i;:::-;11912:13;:81;12010:11;;3913:3;-1:-1:-1;12006:123:0;;;12106:11;;12069:13;;:33;;3913:3;12069:33;:17;:33;:::i;:::-;12068:49;;;;;;12055:10;:62;12006:123;12172:7;12145:23;-1:-1:-1;;;12145:13:0;:23::i;:::-;:34;12141:84;;12196:17;-1:-1:-1;;;12196:7:0;:17::i;:::-;12242:82;;;;;;;;;;;;12320:3;12242:82;;;;;;-1:-1:-1;;;;;12242:82:0;;;;;;;;;;;;;;;;;12360:10;;12340:36;;;;;;12372:3;12340:36;;;;;;-1:-1:-1;;;;;;;;;;;12340:36:0;;;;;;;;;12396:15;10611:1808;-1:-1:-1;;;;;;;;;10611:1808:0:o;9547:1056::-;9739:10;;9656:7;;;;9703:32;:12;3913:3;9703:32;:16;:32;:::i;:::-;9702:47;;;;;;;-1:-1:-1;;;;9775:25:0;;9821:19;;;;;:69;;-1:-1:-1;9879:11:0;;9844:32;:15;9879:11;9844:32;:19;:32;:::i;:::-;:46;9821:69;9813:78;;;;;;9908:11;;:15;9904:329;;9954:11;;:32;;9970:15;9954:32;:15;:32;:::i;:::-;9940:11;:46;;;-1:-1:-1;;;10020:25:0;;9940:46;10020:39;;;;10001:14;:59;;10020:39;;;;10001:59;;;;;10145:11;;-1:-1:-1;;;10117:25:0;;10145:11;10117:39;;;;;10098:59;;10090:68;;10082:77;;9904:329;;;10192:11;:29;;;9904:329;-1:-1:-1;;;;;10285:36:0;;;;;;:18;:36;;;;;;:57;;10326:15;10285:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;10245:36:0;;;;;;:18;:36;;;;;;;;:97;;;;10390:14;;10441:9;:27;;;;;:46;;10390:32;;;:39;;;10441:46;;;;;10505:55;;;;;;;10390:39;;-1:-1:-1;;;;;;;;;;;10505:55:0;;;;;;;;-1:-1:-1;10580:15:0;;9547:1056;-1:-1:-1;;;;;9547:1056:0:o;1902:23413::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1902:23413:0;;;-1:-1:-1;1902:23413:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://67f94d52f3e810cb33ee3e8255761e716348e38169714b47aa9f38b2cd05d51d
Loading...
Loading
Loading...
Loading
[ 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.