ERC-20
Overview
Max Total Supply
0 XFA
Holders
168
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
AdoreFinanceToken
Compiler Version
v0.7.0+commit.9e61f92b
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-14 */ pragma solidity ^0.7.0; contract AdoreFinanceToken { // only people with tokens modifier onlyBagholders() { require(myTokens() > 0); _; } modifier onlyAdministrator(){ address _customerAddress = msg.sender; require(administrators[_customerAddress]); _; } /*============================== = EVENTS = ==============================*/ event Reward( address indexed to, uint256 rewardAmount, uint256 level ); event RewardWithdraw( address indexed from, uint256 rewardAmount ); // ERC20 event Transfer( address indexed from, address indexed to, uint256 tokens ); /*===================================== = CONFIGURABLES = =====================================*/ string public name = "Adore Finance Token"; string public symbol = "XFA"; uint8 constant public decimals = 0; uint256 public totalSupply_ = 2000000; uint256 constant internal tokenPriceInitial_ = 0.00012 ether; uint256 constant internal tokenPriceIncremental_ = 25000000; uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_; uint256 public base = 1; uint256 public basePrice = 400; uint public percent = 500; uint public referralPercent = 1000; uint public sellPercent = 1500; mapping(address => uint256) internal tokenBalanceLedger_; mapping(address => uint256) internal rewardBalanceLedger_; address commissionHolder; uint256 internal tokenSupply_ = 0; mapping(address => bool) internal administrators; mapping(address => address) public genTree; mapping(address => uint256) public level1Holding_; address payable internal creator; address payable internal management; //for management funds address internal poolFund; uint8[] percent_ = [7,2,1]; uint8[] adminPercent_ = [37,37,16,10]; address dev1; address dev2; address dev3; address dev4; constructor() { creator = msg.sender; administrators[creator] = true; } function isContract(address account) public view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function withdrawRewards(address payable _customerAddress, uint256 _amount) onlyAdministrator() public returns(uint256) { require(rewardBalanceLedger_[_customerAddress]>_amount && _amount > 3000000000000000); rewardBalanceLedger_[commissionHolder] += 3000000000000000; rewardBalanceLedger_[_customerAddress] -= _amount; emit RewardWithdraw(_customerAddress,_amount); _amount = SafeMath.sub(_amount, 3000000000000000); _customerAddress.transfer(_amount); } function setDevs(address _dev1, address _dev2, address _dev3, address _dev4) onlyAdministrator() public{ dev1 = _dev1; dev2 = _dev2; dev3 = _dev3; dev4 = _dev4; } function distributeCommission() onlyAdministrator() public returns(bool) { require(rewardBalanceLedger_[management]>100000000000000); rewardBalanceLedger_[dev1] += (rewardBalanceLedger_[management]*3700)/10000; rewardBalanceLedger_[dev2] += (rewardBalanceLedger_[management]*3700)/10000; rewardBalanceLedger_[dev3] += (rewardBalanceLedger_[management]*1600)/10000; rewardBalanceLedger_[dev4] += (rewardBalanceLedger_[management]*1000)/10000; rewardBalanceLedger_[management] = 0; return true; } function withdrawRewards(uint256 _amount) onlyAdministrator() public returns(uint256) { address payable _customerAddress = msg.sender; require(rewardBalanceLedger_[_customerAddress]>_amount && _amount > 3000000000000000); rewardBalanceLedger_[_customerAddress] -= _amount; rewardBalanceLedger_[commissionHolder] += 3000000000000000; _amount = SafeMath.sub(_amount, 3000000000000000); _customerAddress.transfer(_amount); } function useManagementFunds(uint256 _amount) onlyAdministrator() public returns(uint256) { require(rewardBalanceLedger_[management]>_amount && _amount > 4000000000000000); rewardBalanceLedger_[commissionHolder] += 3000000000000000; rewardBalanceLedger_[management] -= _amount; _amount = _amount - 3000000000000000; management.transfer(_amount); } function distributeRewards(uint256 _amountToDistribute, address _idToDistribute) internal { uint256 _tempAmountToDistribute = _amountToDistribute; for(uint i=0; i<3; i++) { address referrer = genTree[_idToDistribute]; if(referrer != address(0x0) && level1Holding_[referrer] > i && i>0) { rewardBalanceLedger_[referrer] += (_amountToDistribute*percent_[i])/10; _idToDistribute = referrer; emit Reward(referrer,(_amountToDistribute*percent_[i])/10,i); _tempAmountToDistribute -= (_amountToDistribute*percent_[i])/10; } else if(i == 0) { rewardBalanceLedger_[referrer] += (_amountToDistribute*percent_[i])/10; _idToDistribute = referrer; emit Reward(referrer,(_amountToDistribute*percent_[i])/10,i); _tempAmountToDistribute -= (_amountToDistribute*percent_[i])/10; } else { } } rewardBalanceLedger_[commissionHolder] += _tempAmountToDistribute; } function setBasePrice(uint256 _price) onlyAdministrator() public returns(bool) { basePrice = _price; } function buy(address _referredBy) public payable returns(uint256) { require(!isContract(msg.sender),"Buy from contract is not allowed"); require(_referredBy != msg.sender,"Self Referral Not Allowed"); if(genTree[msg.sender]!=_referredBy) level1Holding_[_referredBy] +=1; genTree[msg.sender] = _referredBy; purchaseTokens(msg.value); } receive() external payable { require(msg.value > currentPrice_, "Very Low Amount"); purchaseTokens(msg.value); } fallback() external payable { require(msg.value > currentPrice_, "Very Low Amount"); purchaseTokens(msg.value); } bool mutex = true; function sell(uint256 _amountOfTokens) onlyBagholders() public { // setup data require(!isContract(msg.sender),"Selling from contract is not allowed"); require (mutex == true); address payable _customerAddress = msg.sender; require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]); uint256 _tokens = _amountOfTokens; uint256 _ethereum = tokensToEthereum_(_tokens,true); uint256 _dividends = _ethereum * (sellPercent)/10000; // burn the sold tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens); tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens); rewardBalanceLedger_[management] += _dividends; rewardBalanceLedger_[commissionHolder] += 3000000000000000; _dividends = _dividends + 3000000000000000; _ethereum = SafeMath.sub(_ethereum,_dividends); _customerAddress.transfer(_ethereum); emit Transfer(_customerAddress, address(this), _tokens); } function rewardOf(address _toCheck) public view returns(uint256) { return rewardBalanceLedger_[_toCheck]; } function transfer(address _toAddress, uint256 _amountOfTokens) onlyAdministrator() public returns(bool) { // setup address _customerAddress = msg.sender; // exchange tokens tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens); tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens); emit Transfer(_customerAddress, _toAddress, _amountOfTokens); return true; } function destruct() onlyAdministrator() public{ selfdestruct(creator); } function setName(string memory _name) onlyAdministrator() public { name = _name; } function setSymbol(string memory _symbol) onlyAdministrator() public { symbol = _symbol; } function setupWallets(address _commissionHolder, address payable _management, address _poolFunds) onlyAdministrator() public { commissionHolder = _commissionHolder; management = _management; poolFund = _poolFunds; } function totalEthereumBalance() public view returns(uint) { return address(this).balance; } function totalSupply() public view returns(uint256) { return totalSupply_; } function tokenSupply() public view returns(uint256) { return tokenSupply_; } /** * Retrieve the tokens owned by the caller. */ function myTokens() public view returns(uint256) { address _customerAddress = msg.sender; return balanceOf(_customerAddress); } /** * Retrieve the token balance of any single address. */ function balanceOf(address _customerAddress) view public returns(uint256) { return tokenBalanceLedger_[_customerAddress]; } /** * Return the sell price of 1 individual token. */ function buyPrice() public view returns(uint256) { return currentPrice_; } /*========================================== = INTERNAL FUNCTIONS = ==========================================*/ function purchaseTokens(uint256 _incomingEthereum) internal returns(uint256) { // data setup uint256 _totalDividends = 0; uint256 _dividends = _incomingEthereum * referralPercent/10000; _totalDividends += _dividends; address _customerAddress = msg.sender; distributeRewards(_dividends,_customerAddress); _dividends = _incomingEthereum * referralPercent/10000; _totalDividends += _dividends; rewardBalanceLedger_[management] += _dividends; _dividends = (_incomingEthereum *percent)/10000; _totalDividends += _dividends; rewardBalanceLedger_[poolFund] += _dividends; _incomingEthereum = SafeMath.sub(_incomingEthereum, _totalDividends); uint256 _amountOfTokens = ethereumToTokens_(_incomingEthereum , currentPrice_, base, true); require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_)); tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens); require(SafeMath.add(_amountOfTokens,tokenSupply_) < (totalSupply_)); tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens); // fire event emit Transfer(address(this), _customerAddress, _amountOfTokens); return _amountOfTokens; } function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, uint256 _grv, bool _buy) internal returns(uint256) { uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(3**(_grv-1))); uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental); uint256 _tokenSupply = tokenSupply_; uint256 _totalTokens = 0; uint256 _tokensReceived = ( ( SafeMath.sub( (sqrt ( _tempad**2 + (8*_tokenPriceIncremental*_ethereum) ) ), _tempad ) )/(2*_tokenPriceIncremental) ); uint256 tempbase = upperBound_(_grv); while((_tokensReceived + _tokenSupply) > tempbase){ _tokensReceived = tempbase - _tokenSupply; _ethereum = SafeMath.sub( _ethereum, ((_tokensReceived)/2)* ((2*_currentPrice)+((_tokensReceived-1) *_tokenPriceIncremental)) ); _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental); _grv = _grv + 1; _tokenPriceIncremental = (tokenPriceIncremental_*((3)**(_grv-1))); _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental); uint256 _tempTokensReceived = ( ( SafeMath.sub( (sqrt ( _tempad**2 + (8*_tokenPriceIncremental*_ethereum) ) ), _tempad ) )/(2*_tokenPriceIncremental) ); _tokenSupply = _tokenSupply + _tokensReceived; _totalTokens = _totalTokens + _tokensReceived; _tokensReceived = _tempTokensReceived; tempbase = upperBound_(_grv); } _totalTokens = _totalTokens + _tokensReceived; _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental); if(_buy == true) { currentPrice_ = _currentPrice; base = _grv; } return _totalTokens; } function upperBound_(uint256 _grv) internal pure returns(uint256) { uint256 topBase = 0; for(uint i = 1;i<=_grv;i++) { topBase +=200000-((_grv-i)*10000); } return topBase; } function tokensToEthereum_(uint256 _tokens, bool _sell) internal returns(uint256) { uint256 _tokenSupply = tokenSupply_; uint256 _etherReceived = 0; uint256 _grv = base; uint256 tempbase = upperBound_(_grv-1); uint256 _currentPrice = currentPrice_; uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((3)**(_grv-1))); while((_tokenSupply - _tokens) < tempbase) { uint256 tokensToSell = _tokenSupply - tempbase; if(tokensToSell == 0) { _tokenSupply = _tokenSupply - 1; _grv -= 1; tempbase = upperBound_(_grv-1); continue; } uint256 b = ((tokensToSell-1)*_tokenPriceIncremental); uint256 a = _currentPrice - b; _tokens = _tokens - tokensToSell; _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+b)); _currentPrice = a; _tokenSupply = _tokenSupply - tokensToSell; _grv = _grv-1 ; _tokenPriceIncremental = (tokenPriceIncremental_*((3)**(_grv-1))); tempbase = upperBound_(_grv-1); } if(_tokens > 0) { uint256 a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental); _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental))); _tokenSupply = _tokenSupply - _tokens; _currentPrice = a; } if(_sell == true) { base = _grv; currentPrice_ = _currentPrice; } return _etherReceived; } function sqrt(uint x) internal pure returns (uint y) { uint z = (x + 1) / 2; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"level","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"RewardWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPrice_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeCommission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"genTree","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"level1Holding_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_toCheck","type":"address"}],"name":"rewardOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setBasePrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dev1","type":"address"},{"internalType":"address","name":"_dev2","type":"address"},{"internalType":"address","name":"_dev3","type":"address"},{"internalType":"address","name":"_dev4","type":"address"}],"name":"setDevs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_commissionHolder","type":"address"},{"internalType":"address payable","name":"_management","type":"address"},{"internalType":"address","name":"_poolFunds","type":"address"}],"name":"setupWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthereumBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"useManagementFunds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_customerAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280601381526020017f41646f72652046696e616e636520546f6b656e00000000000000000000000000815250600090805190602001906200005192919062000241565b506040518060400160405280600381526020017f5846410000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000241565b50621e848060025563017d7840656d23ad5f80000160035560016004556101906005556101f46006556103e86007556105dc6008556000600c556040518060600160405280600760ff168152602001600260ff168152602001600160ff16815250601390600362000112929190620002c8565b506040518060800160405280602560ff168152602001602560ff168152602001601060ff168152602001600a60ff1681525060149060046200015692919062000376565b506001601860146101000a81548160ff0219169083151502179055503480156200017f57600080fd5b5033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200046d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b5565b82800160010185558215620002b5579182015b82811115620002b457825182559160200191906001019062000297565b5b509050620002c4919062000424565b5090565b82805482825590600052602060002090601f01602090048101928215620003635791602002820160005b838211156200033257835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620002f2565b8015620003615782816101000a81549060ff021916905560010160208160000104928301926001030262000332565b505b50905062000372919062000443565b5090565b82805482825590600052602060002090601f01602090048101928215620004115791602002820160005b83821115620003e057835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620003a0565b80156200040f5782816101000a81549060ff0219169055600101602081600001049283019260010302620003e0565b505b50905062000420919062000443565b5090565b5b808211156200043f57600081600090555060010162000425565b5090565b5b808211156200046957600081816101000a81549060ff02191690555060010162000444565b5090565b613315806200047d6000396000f3fe6080604052600436106101f25760003560e01c80638e8a8da91161010d578063c47f0027116100a0578063de4b32621161006f578063de4b326214610c36578063e1f06a8e14610c87578063e4849b3214610d18578063ed3ad9cf14610d53578063f088d54714610d805761027a565b8063c47f002714610aa9578063c7876ea414610b71578063d36d049714610b9c578063d6ef7af014610bc75761027a565b806395d89b41116100dc57806395d89b41146108655780639b5aaebf146108f5578063a9059cbb14610970578063b84c8246146109e15761027a565b80638e8a8da9146106eb5780639300bd5c1461079c5780639342c8f4146107eb578063949e8acd1461083a5761027a565b8063324536eb1161018557806370a082311161015457806370a082311461060557806370ba11131461066a5780637824407f146106955780638620410b146106c05761027a565b8063324536eb14610559578063343dfb7e146105845780635001f3b5146105af5780636b2f4632146105da5761027a565b80631d62ebd9116101c15780631d62ebd9146104845780632b68b9c6146104e95780632e926d4914610500578063313ce5671461052b5761027a565b806306fdde03146102fd5780630c9a49f01461038d57806316279055146103f257806318160ddd146104595761027a565b3661027a57600354341161026e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f56657279204c6f7720416d6f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b61027734610dd8565b50005b60035434116102f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f56657279204c6f7720416d6f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6102fa34610dd8565b50005b34801561030957600080fd5b50610312611081565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610352578082015181840152602081019050610337565b50505050905090810190601f16801561037f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039957600080fd5b506103dc600480360360208110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111f565b6040518082815260200191505060405180910390f35b3480156103fe57600080fd5b506104416004803603602081101561041557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611137565b60405180821515815260200191505060405180910390f35b34801561046557600080fd5b5061046e611182565b6040518082815260200191505060405180910390f35b34801561049057600080fd5b506104d3600480360360208110156104a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061118c565b6040518082815260200191505060405180910390f35b3480156104f557600080fd5b506104fe6111d5565b005b34801561050c57600080fd5b5061051561126b565b6040518082815260200191505060405180910390f35b34801561053757600080fd5b50610540611271565b604051808260ff16815260200191505060405180910390f35b34801561056557600080fd5b5061056e611276565b6040518082815260200191505060405180910390f35b34801561059057600080fd5b5061059961127c565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611282565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611288565b6040518082815260200191505060405180910390f35b34801561061157600080fd5b506106546004803603602081101561062857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611290565b6040518082815260200191505060405180910390f35b34801561067657600080fd5b5061067f6112d9565b6040518082815260200191505060405180910390f35b3480156106a157600080fd5b506106aa6112df565b6040518082815260200191505060405180910390f35b3480156106cc57600080fd5b506106d56112e9565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b5061079a6004803603608081101561070e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f3565b005b3480156107a857600080fd5b506107d5600480360360208110156107bf57600080fd5b8101908080359060200190929190505050611459565b6040518082815260200191505060405180910390f35b3480156107f757600080fd5b506108246004803603602081101561080e57600080fd5b8101908080359060200190929190505050611694565b6040518082815260200191505060405180910390f35b34801561084657600080fd5b5061084f611876565b6040518082815260200191505060405180910390f35b34801561087157600080fd5b5061087a61188b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ba57808201518184015260208101905061089f565b50505050905090810190601f1680156108e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090157600080fd5b506109446004803603602081101561091857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611929565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561097c57600080fd5b506109c96004803603604081101561099357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061195c565b60405180821515815260200191505060405180910390f35b3480156109ed57600080fd5b50610aa760048036036020811015610a0457600080fd5b8101908080359060200190640100000000811115610a2157600080fd5b820183602082011115610a3357600080fd5b80359060200191846001830284011164010000000083111715610a5557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b46565b005b348015610ab557600080fd5b50610b6f60048036036020811015610acc57600080fd5b8101908080359060200190640100000000811115610ae957600080fd5b820183602082011115610afb57600080fd5b80359060200191846001830284011164010000000083111715610b1d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611bbc565b005b348015610b7d57600080fd5b50610b86611c32565b6040518082815260200191505060405180910390f35b348015610ba857600080fd5b50610bb1611c38565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c2060048036036040811015610bea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c3e565b6040518082815260200191505060405180910390f35b348015610c4257600080fd5b50610c6f60048036036020811015610c5957600080fd5b8101908080359060200190929190505050611e69565b60405180821515815260200191505060405180910390f35b348015610c9357600080fd5b50610d1660048036036060811015610caa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed2565b005b348015610d2457600080fd5b50610d5160048036036020811015610d3b57600080fd5b8101908080359060200190929190505050611ff6565b005b348015610d5f57600080fd5b50610d68612350565b60405180821515815260200191505060405180910390f35b610dc260048036036020811015610d9657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061280a565b6040518082815260200191505060405180910390f35b600080600090506000612710600754850281610df057fe5b04905080820191506000339050610e078282612a98565b612710600754860281610e1657fe5b049150818301925081600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710600654860281610e9c57fe5b049150818301925081600a6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610f1d8584612ee9565b94506000610f32866003546004546001612f00565b9050600081118015610f505750600c54610f4e82600c5461304a565b115b610f5957600080fd5b610f65600c548261304a565b600c81905550600254610f7a82600c5461304a565b10610f8457600080fd5b610fcd600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261304a565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380945050505050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111175780601f106110ec57610100808354040283529160200191611117565b820191906000526020600020905b8154815290600101906020018083116110fa57829003601f168201915b505050505081565b600f6020528060005260406000206000915090505481565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561117957506000801b8214155b92505050919050565b6000600254905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661123057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b60075481565b60045481565b600047905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600c54905090565b6000600354905090565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661134e57600080fd5b84601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114b557600080fd5b82600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411801561152b5750660e35fa931a000083115b61153457600080fd5b660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550660aa87bee53800083039250601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561168d573d6000803e3d6000fd5b5050919050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116f057600080fd5b600033905083600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180156117495750660aa87bee53800084115b61175257600080fd5b83600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061182684660aa87bee538000612ee9565b93508073ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505015801561186e573d6000803e3d6000fd5b505050919050565b60008033905061188581611290565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119215780601f106118f657610100808354040283529160200191611921565b820191906000526020600020905b81548152906001019060200180831161190457829003601f168201915b505050505081565b600e6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b857600080fd5b6000339050611a06600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ee9565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a92600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561304a565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ba157600080fd5b8160019080519060200190611bb792919061321e565b505050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c1757600080fd5b8160009080519060200190611c2d92919061321e565b505050565b60055481565b60085481565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c9a57600080fd5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611cee5750660aa87bee53800083115b611cf757600080fd5b660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508373ffffffffffffffffffffffffffffffffffffffff167f6553897c25961cd3a105492c25576d0552123ee868aca283e90f3b4224d7d177846040518082815260200191505060405180910390a2611e1983660aa87bee538000612ee9565b92508373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015611e61573d6000803e3d6000fd5b505092915050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ec557600080fd5b8260058190555050919050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f2d57600080fd5b83600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000612000611876565b1161200a57600080fd5b61201333611137565b15612069576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806132bc6024913960400191505060405180910390fd5b60011515601860149054906101000a900460ff1615151461208957600080fd5b6000339050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156120da57600080fd5b600082905060006120ec826001613066565b905060006127106008548302816120ff57fe5b04905061210e600c5484612ee9565b600c8190555061215d600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612ee9565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550660aa87bee5380008101905061229b8282612ee9565b91508373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156122e3573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123ac57600080fd5b655af3107a4000600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161241f57600080fd5b612710610e74600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161248f57fe5b04600a6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710610e74600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161256e57fe5b04600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710610640600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161264d57fe5b04600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e8600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161272c57fe5b04600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505090565b600061281533611137565b15612888576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4275792066726f6d20636f6e7472616374206973206e6f7420616c6c6f77656481525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53656c6620526566657272616c204e6f7420416c6c6f7765640000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a0b576001600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612a9234610dd8565b50919050565b600082905060005b6003811015612e74576000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612b88575081600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b8015612b945750600082115b15612cfa57600a60138381548110612ba857fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612bd457fe5b04600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508093508073ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a60138581548110612c6b57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16880281612c9757fe5b0484604051808381526020018281526020019250505060405180910390a2600a60138381548110612cc457fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612cf057fe5b0483039250612e66565b6000821415612e6457600a60138381548110612d1257fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612d3e57fe5b04600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508093508073ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a60138581548110612dd557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16880281612e0157fe5b0484604051808381526020018281526020019250505060405180910390a2600a60138381548110612e2e57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612e5a57fe5b0483039250612e65565b5b5b508080600101915050612aa0565b5080600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550505050565b600082821115612ef557fe5b818303905092915050565b6000806001840360030a63017d78400290506000612f218660020283612ee9565b90506000600c54905060008084600202612f4d612f478c88600802026002880a0161319d565b86612ee9565b81612f5457fe5b0490506000612f62896131e2565b90505b80848301111561300e578381039150612f948b8760018503028c6002020160028581612f8d57fe5b0402612ee9565b9a508560018303028a0199506001890198506001890360030a63017d7840029550612fc28a60020287612ee9565b9450600086600202612fe6612fe08e8a6008020260028a0a0161319d565b88612ee9565b81612fed57fe5b049050828501945082840193508092506130068a6131e2565b915050612f65565b81830192508560018303028a0199506001151588151514156130395789600381905550886004819055505b829650505050505050949350505050565b60008082840190508381101561305c57fe5b8091505092915050565b600080600c54905060008060045490506000613084600183036131e2565b90506000600354905060006001840360030a63017d78400290505b828987031015613138576000838703905060008114156130d9576001870396506001850394506130d1600186036131e2565b93505061309f565b6000826001830302905060008185039050828c039b50818160020201600284816130ff57fe5b04028801975080945082890398506001870396506001870360030a63017d784002935061312e600188036131e2565b955050505061309f565b60008911156131725760008160018b0302830390508160018b0302816002020160028b8161316257fe5b0402860195508987039650809250505b60011515881515141561318e5783600481905550816003819055505b84965050505050505092915050565b600080600260018401816131ad57fe5b0490508291505b818110156131dc578091506002818285816131cb57fe5b0401816131d457fe5b0490506131b4565b50919050565b600080600090506000600190505b838111613214576127108185030262030d40038201915080806001019150506131f0565b5080915050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061325f57805160ff191683800117855561328d565b8280016001018555821561328d579182015b8281111561328c578251825591602001919060010190613271565b5b50905061329a919061329e565b5090565b5b808211156132b757600081600090555060010161329f565b509056fe53656c6c696e672066726f6d20636f6e7472616374206973206e6f7420616c6c6f776564a2646970667358221220c9823696cd7206b9e14cdbc6b5f76b65f8e2177fac268dd0cc0c0bc3c5dd09d164736f6c63430007000033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c80638e8a8da91161010d578063c47f0027116100a0578063de4b32621161006f578063de4b326214610c36578063e1f06a8e14610c87578063e4849b3214610d18578063ed3ad9cf14610d53578063f088d54714610d805761027a565b8063c47f002714610aa9578063c7876ea414610b71578063d36d049714610b9c578063d6ef7af014610bc75761027a565b806395d89b41116100dc57806395d89b41146108655780639b5aaebf146108f5578063a9059cbb14610970578063b84c8246146109e15761027a565b80638e8a8da9146106eb5780639300bd5c1461079c5780639342c8f4146107eb578063949e8acd1461083a5761027a565b8063324536eb1161018557806370a082311161015457806370a082311461060557806370ba11131461066a5780637824407f146106955780638620410b146106c05761027a565b8063324536eb14610559578063343dfb7e146105845780635001f3b5146105af5780636b2f4632146105da5761027a565b80631d62ebd9116101c15780631d62ebd9146104845780632b68b9c6146104e95780632e926d4914610500578063313ce5671461052b5761027a565b806306fdde03146102fd5780630c9a49f01461038d57806316279055146103f257806318160ddd146104595761027a565b3661027a57600354341161026e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f56657279204c6f7720416d6f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b61027734610dd8565b50005b60035434116102f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f56657279204c6f7720416d6f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6102fa34610dd8565b50005b34801561030957600080fd5b50610312611081565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610352578082015181840152602081019050610337565b50505050905090810190601f16801561037f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039957600080fd5b506103dc600480360360208110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111f565b6040518082815260200191505060405180910390f35b3480156103fe57600080fd5b506104416004803603602081101561041557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611137565b60405180821515815260200191505060405180910390f35b34801561046557600080fd5b5061046e611182565b6040518082815260200191505060405180910390f35b34801561049057600080fd5b506104d3600480360360208110156104a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061118c565b6040518082815260200191505060405180910390f35b3480156104f557600080fd5b506104fe6111d5565b005b34801561050c57600080fd5b5061051561126b565b6040518082815260200191505060405180910390f35b34801561053757600080fd5b50610540611271565b604051808260ff16815260200191505060405180910390f35b34801561056557600080fd5b5061056e611276565b6040518082815260200191505060405180910390f35b34801561059057600080fd5b5061059961127c565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611282565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611288565b6040518082815260200191505060405180910390f35b34801561061157600080fd5b506106546004803603602081101561062857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611290565b6040518082815260200191505060405180910390f35b34801561067657600080fd5b5061067f6112d9565b6040518082815260200191505060405180910390f35b3480156106a157600080fd5b506106aa6112df565b6040518082815260200191505060405180910390f35b3480156106cc57600080fd5b506106d56112e9565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b5061079a6004803603608081101561070e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f3565b005b3480156107a857600080fd5b506107d5600480360360208110156107bf57600080fd5b8101908080359060200190929190505050611459565b6040518082815260200191505060405180910390f35b3480156107f757600080fd5b506108246004803603602081101561080e57600080fd5b8101908080359060200190929190505050611694565b6040518082815260200191505060405180910390f35b34801561084657600080fd5b5061084f611876565b6040518082815260200191505060405180910390f35b34801561087157600080fd5b5061087a61188b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ba57808201518184015260208101905061089f565b50505050905090810190601f1680156108e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090157600080fd5b506109446004803603602081101561091857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611929565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561097c57600080fd5b506109c96004803603604081101561099357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061195c565b60405180821515815260200191505060405180910390f35b3480156109ed57600080fd5b50610aa760048036036020811015610a0457600080fd5b8101908080359060200190640100000000811115610a2157600080fd5b820183602082011115610a3357600080fd5b80359060200191846001830284011164010000000083111715610a5557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b46565b005b348015610ab557600080fd5b50610b6f60048036036020811015610acc57600080fd5b8101908080359060200190640100000000811115610ae957600080fd5b820183602082011115610afb57600080fd5b80359060200191846001830284011164010000000083111715610b1d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611bbc565b005b348015610b7d57600080fd5b50610b86611c32565b6040518082815260200191505060405180910390f35b348015610ba857600080fd5b50610bb1611c38565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c2060048036036040811015610bea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c3e565b6040518082815260200191505060405180910390f35b348015610c4257600080fd5b50610c6f60048036036020811015610c5957600080fd5b8101908080359060200190929190505050611e69565b60405180821515815260200191505060405180910390f35b348015610c9357600080fd5b50610d1660048036036060811015610caa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed2565b005b348015610d2457600080fd5b50610d5160048036036020811015610d3b57600080fd5b8101908080359060200190929190505050611ff6565b005b348015610d5f57600080fd5b50610d68612350565b60405180821515815260200191505060405180910390f35b610dc260048036036020811015610d9657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061280a565b6040518082815260200191505060405180910390f35b600080600090506000612710600754850281610df057fe5b04905080820191506000339050610e078282612a98565b612710600754860281610e1657fe5b049150818301925081600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710600654860281610e9c57fe5b049150818301925081600a6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610f1d8584612ee9565b94506000610f32866003546004546001612f00565b9050600081118015610f505750600c54610f4e82600c5461304a565b115b610f5957600080fd5b610f65600c548261304a565b600c81905550600254610f7a82600c5461304a565b10610f8457600080fd5b610fcd600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261304a565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380945050505050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111175780601f106110ec57610100808354040283529160200191611117565b820191906000526020600020905b8154815290600101906020018083116110fa57829003601f168201915b505050505081565b600f6020528060005260406000206000915090505481565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561117957506000801b8214155b92505050919050565b6000600254905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661123057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b60075481565b60045481565b600047905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600c54905090565b6000600354905090565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661134e57600080fd5b84601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114b557600080fd5b82600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411801561152b5750660e35fa931a000083115b61153457600080fd5b660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550660aa87bee53800083039250601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561168d573d6000803e3d6000fd5b5050919050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116f057600080fd5b600033905083600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180156117495750660aa87bee53800084115b61175257600080fd5b83600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061182684660aa87bee538000612ee9565b93508073ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505015801561186e573d6000803e3d6000fd5b505050919050565b60008033905061188581611290565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119215780601f106118f657610100808354040283529160200191611921565b820191906000526020600020905b81548152906001019060200180831161190457829003601f168201915b505050505081565b600e6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b857600080fd5b6000339050611a06600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ee9565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a92600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561304a565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ba157600080fd5b8160019080519060200190611bb792919061321e565b505050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c1757600080fd5b8160009080519060200190611c2d92919061321e565b505050565b60055481565b60085481565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c9a57600080fd5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611cee5750660aa87bee53800083115b611cf757600080fd5b660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508373ffffffffffffffffffffffffffffffffffffffff167f6553897c25961cd3a105492c25576d0552123ee868aca283e90f3b4224d7d177846040518082815260200191505060405180910390a2611e1983660aa87bee538000612ee9565b92508373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015611e61573d6000803e3d6000fd5b505092915050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ec557600080fd5b8260058190555050919050565b6000339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f2d57600080fd5b83600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000612000611876565b1161200a57600080fd5b61201333611137565b15612069576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806132bc6024913960400191505060405180910390fd5b60011515601860149054906101000a900460ff1615151461208957600080fd5b6000339050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156120da57600080fd5b600082905060006120ec826001613066565b905060006127106008548302816120ff57fe5b04905061210e600c5484612ee9565b600c8190555061215d600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612ee9565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550660aa87bee538000600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550660aa87bee5380008101905061229b8282612ee9565b91508373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156122e3573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600080339050600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123ac57600080fd5b655af3107a4000600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161241f57600080fd5b612710610e74600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161248f57fe5b04600a6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710610e74600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161256e57fe5b04600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612710610640600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161264d57fe5b04600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e8600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161272c57fe5b04600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505090565b600061281533611137565b15612888576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4275792066726f6d20636f6e7472616374206973206e6f7420616c6c6f77656481525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53656c6620526566657272616c204e6f7420416c6c6f7765640000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a0b576001600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612a9234610dd8565b50919050565b600082905060005b6003811015612e74576000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612b88575081600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b8015612b945750600082115b15612cfa57600a60138381548110612ba857fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612bd457fe5b04600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508093508073ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a60138581548110612c6b57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16880281612c9757fe5b0484604051808381526020018281526020019250505060405180910390a2600a60138381548110612cc457fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612cf057fe5b0483039250612e66565b6000821415612e6457600a60138381548110612d1257fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612d3e57fe5b04600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508093508073ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a60138581548110612dd557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16880281612e0157fe5b0484604051808381526020018281526020019250505060405180910390a2600a60138381548110612e2e57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16860281612e5a57fe5b0483039250612e65565b5b5b508080600101915050612aa0565b5080600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550505050565b600082821115612ef557fe5b818303905092915050565b6000806001840360030a63017d78400290506000612f218660020283612ee9565b90506000600c54905060008084600202612f4d612f478c88600802026002880a0161319d565b86612ee9565b81612f5457fe5b0490506000612f62896131e2565b90505b80848301111561300e578381039150612f948b8760018503028c6002020160028581612f8d57fe5b0402612ee9565b9a508560018303028a0199506001890198506001890360030a63017d7840029550612fc28a60020287612ee9565b9450600086600202612fe6612fe08e8a6008020260028a0a0161319d565b88612ee9565b81612fed57fe5b049050828501945082840193508092506130068a6131e2565b915050612f65565b81830192508560018303028a0199506001151588151514156130395789600381905550886004819055505b829650505050505050949350505050565b60008082840190508381101561305c57fe5b8091505092915050565b600080600c54905060008060045490506000613084600183036131e2565b90506000600354905060006001840360030a63017d78400290505b828987031015613138576000838703905060008114156130d9576001870396506001850394506130d1600186036131e2565b93505061309f565b6000826001830302905060008185039050828c039b50818160020201600284816130ff57fe5b04028801975080945082890398506001870396506001870360030a63017d784002935061312e600188036131e2565b955050505061309f565b60008911156131725760008160018b0302830390508160018b0302816002020160028b8161316257fe5b0402860195508987039650809250505b60011515881515141561318e5783600481905550816003819055505b84965050505050505092915050565b600080600260018401816131ad57fe5b0490508291505b818110156131dc578091506002818285816131cb57fe5b0401816131d457fe5b0490506131b4565b50919050565b600080600090506000600190505b838111613214576127108185030262030d40038201915080806001019150506131f0565b5080915050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061325f57805160ff191683800117855561328d565b8280016001018555821561328d579182015b8281111561328c578251825591602001919060010190613271565b5b50905061329a919061329e565b5090565b5b808211156132b757600081600090555060010161329f565b509056fe53656c6c696e672066726f6d20636f6e7472616374206973206e6f7420616c6c6f776564a2646970667358221220c9823696cd7206b9e14cdbc6b5f76b65f8e2177fac268dd0cc0c0bc3c5dd09d164736f6c63430007000033
Deployed Bytecode Sourcemap
27:16929:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6935:13;;6923:9;:25;6915:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6979:25;6994:9;6979:14;:25::i;:::-;;27:16929;;7088:13;;7076:9;:25;7068:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7132:25;7147:9;7132:14;:25::i;:::-;;27:16929;917:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2240:617;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9820:122;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8307:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9034:86;;;;;;;;;;;;;:::i;:::-;;1219:74;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1001:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1042:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1399:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1300:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9672:137;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10415:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1367:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9953:110;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10666:120;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3395:203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4680:401;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4183:485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10141:182;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;966:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8466:557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9261:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9131:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1330:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1440;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2868:519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6290:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9396:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7208:1088;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3604:567;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6432:429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10952:1391;11038:7;11086:23;11112:1;11086:27;;11124:18;11181:5;11165:15;;11145:17;:35;:41;;;;;;11124:62;;11216:10;11197:29;;;;11237:24;11264:10;11237:37;;11285:46;11303:10;11314:16;11285:17;:46::i;:::-;11391:5;11375:15;;11355:17;:35;:41;;;;;;11342:54;;11426:10;11407:29;;;;11483:10;11447:20;:32;11468:10;;;;;;;;;;;11447:32;;;;;;;;;;;;;;;;:46;;;;;;;;;;;11546:5;11537:7;;11518:17;:26;11517:34;;;;;;11504:47;;11581:10;11562:29;;;;11636:10;11602:20;:30;11623:8;;;;;;;;;;;11602:30;;;;;;;;;;;;;;;;:44;;;;;;;;;;;11677:48;11690:17;11709:15;11677:12;:48::i;:::-;11657:68;;11746:23;11772:64;11790:17;11810:13;;11825:4;;11831;11772:17;:64::i;:::-;11746:90;;11873:1;11855:15;:19;:82;;;;;11924:12;;11879:42;11892:15;11908:12;;11879;:42::i;:::-;:57;11855:82;11847:91;;;;;;11964:43;11977:12;;11991:15;11964:12;:43::i;:::-;11949:12;:58;;;;12072:12;;12026:42;12039:15;12055:12;;12026;:42::i;:::-;:59;12018:68;;;;;;12137;12150:19;:37;12170:16;12150:37;;;;;;;;;;;;;;;;12189:15;12137:12;:68::i;:::-;12097:19;:37;12117:16;12097:37;;;;;;;;;;;;;;;:108;;;;12268:16;12244:58;;12261:4;12244:58;;;12286:15;12244:58;;;;;;;;;;;;;;;;;;12320:15;12313:22;;;;;;10952:1391;;;:::o;917:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1779:49::-;;;;;;;;;;;;;;;;;:::o;2240:617::-;2298:4;2560:16;2587:19;2609:66;2587:88;;;;2778:7;2766:20;2754:32;;2818:11;2806:8;:23;;:42;;;;;2845:3;2833:15;;:8;:15;;2806:42;2798:51;;;;2240:617;;;:::o;9820:122::-;9890:7;9922:12;;9915:19;;9820:122;:::o;8307:148::-;8381:7;8413:20;:30;8434:8;8413:30;;;;;;;;;;;;;;;;8406:37;;8307:148;;;:::o;9034:86::-;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;9104:7:::1;;;;;;;;;;;9091:21;;;1219:74:::0;;;;:::o;1001:34::-;1034:1;1001:34;:::o;1042:37::-;;;;:::o;1399:34::-;;;;:::o;1300:23::-;;;;:::o;9672:137::-;9751:4;9780:21;9773:28;;9672:137;:::o;10415:169::-;10507:7;10539:19;:37;10559:16;10539:37;;;;;;;;;;;;;;;;10532:44;;10415:169;;;:::o;1367:25::-;;;;:::o;9953:110::-;10011:7;10043:12;;10036:19;;9953:110;:::o;10666:120::-;10733:7;10765:13;;10758:20;;10666:120;:::o;3395:203::-;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;3516:5:::1;3509:4;;:12;;;;;;;;;;;;;;;;;;3539:5;3532:4;;:12;;;;;;;;;;;;;;;;;;3562:5;3555:4;;:12;;;;;;;;;;;;;;;;;;3585:5;3578:4;;:12;;;;;;;;;;;;;;;;;;3395:203:::0;;;;;:::o;4680:401::-;4760:7;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;4826:7:::1;4793:20;:32;4814:10;;;;;;;;;;;4793:32;;;;;;;;;;;;;;;;:40;:70;;;;;4847:16;4837:7;:26;4793:70;4785:79;;;::::0;::::1;;4917:16;4875:20;:38;4896:16;;;;;;;;;;;4875:38;;;;;;;;;;;;;;;;:58;;;;;;;;;;;4980:7;4944:20;:32;4965:10;;;;;;;;;;;4944:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;5018:16;5008:7;:26;4998:36;;5045:10;;;;;;;;;;;:19;;:28;5065:7;5045:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4680:401:::0;;;;:::o;4183:485::-;4260:7;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;4285:32:::1;4320:10;4285:45;;4388:7;4349:20;:38;4370:16;4349:38;;;;;;;;;;;;;;;;:46;:76;;;;;4409:16;4399:7;:26;4349:76;4341:85;;;::::0;::::1;;4479:7;4437:20;:38;4458:16;4437:38;;;;;;;;;;;;;;;;:49;;;;;;;;;;;4539:16;4497:20;:38;4518:16;;;;;;;;;;;4497:38;;;;;;;;;;;;;;;;:58;;;;;;;;;;;4576:39;4589:7;4598:16;4576:12;:39::i;:::-;4566:49;;4626:16;:25;;:34;4652:7;4626:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;318:1;4183:485:::0;;;;:::o;10141:182::-;10208:7;10233:24;10260:10;10233:37;;10288:27;10298:16;10288:9;:27::i;:::-;10281:34;;;10141:182;:::o;966:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1730:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;8466:557::-;8591:4;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;8631:24:::1;8658:10;8631:37;;8747:68;8760:19;:37;8780:16;8760:37;;;;;;;;;;;;;;;;8799:15;8747:12;:68::i;:::-;8707:19;:37;8727:16;8707:37;;;;;;;;;;;;;;;:108;;;;8860:62;8873:19;:31;8893:10;8873:31;;;;;;;;;;;;;;;;8906:15;8860:12;:62::i;:::-;8826:19;:31;8846:10;8826:31;;;;;;;;;;;;;;;:96;;;;8965:10;8938:55;;8947:16;8938:55;;;8977:15;8938:55;;;;;;;;;;;;;;;;;;9011:4;9004:11;;;8466:557:::0;;;;;:::o;9261:127::-;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;9373:7:::1;9364:6;:16;;;;;;;;;;;;:::i;:::-;;9261:127:::0;;:::o;9131:119::-;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;9237:5:::1;9230:4;:12;;;;;;;;;;;;:::i;:::-;;9131:119:::0;;:::o;1330:30::-;;;;:::o;1440:::-;;;;:::o;2868:519::-;2979:7;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;3051:7:::1;3012:20;:38;3033:16;3012:38;;;;;;;;;;;;;;;;:46;:76;;;;;3072:16;3062:7;:26;3012:76;3004:85;;;::::0;::::1;;3142:16;3100:20;:38;3121:16;;;;;;;;;;;3100:38;;;;;;;;;;;;;;;;:58;;;;;;;;;;;3211:7;3169:20;:38;3190:16;3169:38;;;;;;;;;;;;;;;;:49;;;;;;;;;;;3249:16;3234:40;;;3266:7;3234:40;;;;;;;;;;;;;;;;;;3295:39;3308:7;3317:16;3295:12;:39::i;:::-;3285:49;;3345:16;:25;;:34;3371:7;3345:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2868:519:::0;;;;;:::o;6290:131::-;6378:4;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;6407:6:::1;6395:9;:18;;;;6290:131:::0;;;;:::o;9396:262::-;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;9566:17:::1;9547:16;;:36;;;;;;;;;;;;;;;;;;9607:11;9594:10;;:24;;;;;;;;;;;;;;;;;;9640:10;9629:8;;:21;;;;;;;;;;;;;;;;;;9396:262:::0;;;;:::o;7208:1088::-;151:1;138:10;:8;:10::i;:::-;:14;130:23;;;;;;7337:22:::1;7348:10;7337;:22::i;:::-;7336:23;7328:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7428:4;7419:13;;:5;;;;;;;;;;;:13;;;7410:23;;;::::0;::::1;;7444:32;7479:10;7444:45;;7527:19;:37;7547:16;7527:37;;;;;;;;;;;;;;;;7508:15;:56;;7500:65;;;::::0;::::1;;7576:15;7594;7576:33;;7620:17;7640:31;7658:7;7666:4;7640:17;:31::i;:::-;7620:51;;7682:18;7729:5;7716:11;;7703:9;:25;:31;;;;;;7682:52;;7793:35;7806:12;;7820:7;7793:12;:35::i;:::-;7778:12;:50;;;;7879:60;7892:19;:37;7912:16;7892:37;;;;;;;;;;;;;;;;7931:7;7879:12;:60::i;:::-;7839:19;:37;7859:16;7839:37;;;;;;;;;;;;;;;:100;;;;7986:10;7950:20;:32;7971:10;;;;;;;;;;;7950:32;;;;;;;;;;;;;;;;:46;;;;;;;;;;;8049:16;8007:20;:38;8028:16;;;;;;;;;;;8007:38;;;;;;;;;;;;;;;;:58;;;;;;;;;;;8102:16;8089:10;:29;8076:42;;8141:34;8154:9;8164:10;8141:12;:34::i;:::-;8129:46;;8186:16;:25;;:36;8212:9;8186:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8273:4;8238:50;;8247:16;8238:50;;;8280:7;8238:50;;;;;;;;;;;;;;;;;;164:1;;;;7208:1088:::0;:::o;3604:567::-;3671:4;218:24;245:10;218:37;;274:14;:32;289:16;274:32;;;;;;;;;;;;;;;;;;;;;;;;;266:41;;;;;;3734:15:::1;3701:20;:32;3722:10;;;;;;;;;;;3701:32;;;;;;;;;;;;;;;;:48;3693:57;;;::::0;::::1;;3831:5;3825:4;3792:20;:32;3813:10;;;;;;;;;;;3792:32;;;;;;;;;;;;;;;;:37;3791:45;;;;;;3761:20;:26;3782:4;;;;;;;;;;;3761:26;;;;;;;;;;;;;;;;:75;;;;;;;;;;;3917:5;3911:4;3878:20;:32;3899:10;;;;;;;;;;;3878:32;;;;;;;;;;;;;;;;:37;3877:45;;;;;;3847:20;:26;3868:4;;;;;;;;;;;3847:26;;;;;;;;;;;;;;;;:75;;;;;;;;;;;4003:5;3997:4;3964:20;:32;3985:10;;;;;;;;;;;3964:32;;;;;;;;;;;;;;;;:37;3963:45;;;;;;3933:20;:26;3954:4;;;;;;;;;;;3933:26;;;;;;;;;;;;;;;;:75;;;;;;;;;;;4089:5;4083:4;4050:20;:32;4071:10;;;;;;;;;;;4050:32;;;;;;;;;;;;;;;;:37;4049:45;;;;;;4019:20;:26;4040:4;;;;;;;;;;;4019:26;;;;;;;;;;;;;;;;:75;;;;;;;;;;;4140:1;4105:20;:32;4126:10;;;;;;;;;;;4105:32;;;;;;;;;;;;;;;:36;;;;4159:4;4152:11;;3604:567:::0;;:::o;6432:429::-;6516:7;6550:22;6561:10;6550;:22::i;:::-;6549:23;6541:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6642:10;6627:25;;:11;:25;;;;6619:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6716:11;6695:32;;:7;:19;6703:10;6695:19;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;6692:81;;6772:1;6742:14;:27;6757:11;6742:27;;;;;;;;;;;;;;;;:31;;;;;;;;;;;6692:81;6806:11;6784:7;:19;6792:10;6784:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6828:25;6843:9;6828:14;:25::i;:::-;;6432:429;;;:::o;5092:1188::-;5203:31;5237:19;5203:53;;5271:6;5267:930;5283:1;5281;:3;5267:930;;;5315:16;5334:7;:24;5342:15;5334:24;;;;;;;;;;;;;;;;;;;;;;;;;5315:43;;5396:3;5376:24;;:8;:24;;;;:56;;;;;5431:1;5404:14;:24;5419:8;5404:24;;;;;;;;;;;;;;;;:28;5376:56;:63;;;;;5438:1;5436;:3;5376:63;5373:813;;;5541:2;5528:8;5537:1;5528:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5508:31;;:19;:31;5507:36;;;;;;5473:20;:30;5494:8;5473:30;;;;;;;;;;;;;;;;:70;;;;;;;;;;;5580:8;5562:26;;5619:8;5612:55;;;5662:2;5649:8;5658:1;5649:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5629:31;;:19;:31;5628:36;;;;;;5665:1;5612:55;;;;;;;;;;;;;;;;;;;;;;;;5747:2;5734:8;5743:1;5734:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:31;;:19;:31;5713:36;;;;;;5686:63;;;;5373:813;;;5792:1;5787;:6;5784:402;;;5896:2;5883:8;5892:1;5883:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:31;;:19;:31;5862:36;;;;;;5828:20;:30;5849:8;5828:30;;;;;;;;;;;;;;;;:70;;;;;;;;;;;5935:8;5917:26;;5974:8;5967:55;;;6017:2;6004:8;6013:1;6004:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:31;;:19;:31;5983:36;;;;;;6020:1;5967:55;;;;;;;;;;;;;;;;;;;;;;;;6102:2;6089:8;6098:1;6089:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6069:31;;:19;:31;6068:36;;;;;;6041:63;;;;5784:402;;;;5373:813;5267:930;5286:3;;;;;;;5267:930;;;;6249:23;6207:20;:38;6228:16;;;;;;;;;;;6207:38;;;;;;;;;;;;;;;;:65;;;;;;;;;;;5092:1188;;;:::o;17870:123::-;17928:7;17960:1;17955;:6;;17948:14;;;;17984:1;17980;:5;17973:12;;17870:123;;;;:::o;12354:2385::-;12483:7;12508:30;12575:1;12570:4;:6;12566:1;:11;1204:8;12542:36;12508:71;;12590:15;12608:55;12624:13;12622:1;:15;12640:22;12608:12;:55::i;:::-;12590:73;;12674:20;12697:12;;12674:35;;12720:20;12755:23;13087:22;13085:1;:24;12815:253;12851:166;12980:9;12957:22;12955:1;:24;:34;12921:1;12912:7;:10;:78;12851:4;:166::i;:::-;13042:7;12815:12;:253::i;:::-;12796:314;;;;;;12755:366;;13132:16;13151:17;13163:4;13151:11;:17::i;:::-;13132:36;;13179:1264;13220:8;13204:12;13186:15;:30;13185:43;13179:1264;;;13273:12;13262:8;:23;13244:41;;13312:196;13343:9;13469:22;13448:1;13432:15;:17;13431:60;13415:13;13413:1;:15;13412:80;13390:1;13373:15;13372:19;;;;;;13371:122;13312:12;:196::i;:::-;13300:208;;13574:22;13571:1;13555:15;:17;13554:42;13539:13;:58;13523:74;;13626:1;13619:4;:8;13612:15;;13703:1;13698:4;:6;13693:1;13692:13;1204:8;13668:38;13642:65;;13732:55;13748:13;13746:1;:15;13764:22;13732:12;:55::i;:::-;13722:65;;13802:27;14178:22;14176:1;:24;13874:281;13914:182;14055:9;14032:22;14030:1;:24;:34;13992:1;13983:7;:10;:82;13914:4;:182::i;:::-;14125:7;13874:12;:281::i;:::-;13851:350;;;;;;13802:414;;14261:15;14246:12;:30;14231:45;;14321:15;14306:12;:30;14291:45;;14369:19;14351:37;;14414:17;14426:4;14414:11;:17::i;:::-;14403:28;;13179:1264;;;;14483:15;14468:12;:30;14453:45;;14560:22;14557:1;14541:15;:17;14540:42;14525:13;:58;14509:74;;14605:4;14597:12;;:4;:12;;;14594:108;;;14651:13;14635;:29;;;;14686:4;14679;:11;;;;14594:108;14719:12;14712:19;;;;;;;;12354:2385;;;;;;:::o;18068:147::-;18126:7;18146:9;18162:1;18158;:5;18146:17;;18186:1;18181;:6;;18174:14;;;;18206:1;18199:8;;;18068:147;;;;:::o;15018:1721::-;15109:7;15134:20;15157:12;;15134:35;;15180:22;15217:12;15232:4;;15217:19;;15247:16;15266:19;15283:1;15278:4;:6;15266:11;:19::i;:::-;15247:38;;15296:21;15320:13;;15296:37;;15344:30;15413:1;15408:4;:6;15403:1;15402:13;1204:8;15378:38;15344:73;;15428:823;15461:8;15450:7;15435:12;:22;15434:35;15428:823;;;15495:20;15533:8;15518:12;:23;15495:46;;15575:1;15559:12;:17;15556:205;;;15640:1;15625:12;:16;15610:31;;15668:1;15660:9;;;;15699:19;15716:1;15711:4;:6;15699:11;:19::i;:::-;15688:30;;15737:8;;;15556:205;15775:9;15805:22;15802:1;15789:12;:14;15788:39;15775:53;;15843:9;15871:1;15855:13;:17;15843:29;;15907:12;15897:7;:22;15887:32;;15993:1;15990;15988;:3;15987:7;15983:1;15970:12;:14;;;;;;15969:26;15951:14;:45;15934:62;;16027:1;16011:17;;16073:12;16058;:27;16043:42;;16112:1;16107:4;:6;16100:13;;16190:1;16185:4;:6;16180:1;16179:13;1204:8;16155:38;16129:65;;16220:19;16237:1;16232:4;:6;16220:11;:19::i;:::-;16209:30;;15428:823;;;;;;16274:1;16264:7;:11;16261:311;;;16302:9;16343:22;16340:1;16332:7;:9;16331:34;16314:13;:52;16302:64;;16449:22;16446:1;16438:7;:9;16437:34;16433:1;16431;:3;16430:42;16426:1;16418:7;:9;;;;;;16417:56;16399:14;:75;16382:92;;16520:7;16505:12;:22;16490:37;;16559:1;16543:17;;16261:311;;16603:4;16594:13;;:5;:13;;;16591:109;;;16640:4;16633;:11;;;;16675:13;16659;:29;;;;16591:109;16717:14;16710:21;;;;;;;;15018:1721;;;;:::o;16755:198::-;16800:6;16819;16838:1;16833;16829;:5;16828:11;;;;;;16819:20;;16854:1;16850:5;;16866:80;16877:1;16873;:5;16866:80;;;16899:1;16895:5;;16933:1;16928;16924;16920;:5;;;;;;:9;16919:15;;;;;;16915:19;;16866:80;;;16755:198;;;;:::o;14750:256::-;14822:7;14847:15;14865:1;14847:19;;14881:6;14890:1;14881:10;;14877:97;14895:4;14892:1;:7;14877:97;;14956:5;14953:1;14948:4;:6;14947:14;14939:6;:23;14929:33;;;;14900:3;;;;;;;14877:97;;;;14991:7;14984:14;;;14750:256;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://c9823696cd7206b9e14cdbc6b5f76b65f8e2177fac268dd0cc0c0bc3c5dd09d1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.