Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0.000750842719538102 ETH
Eth Value
$2.47 (@ $3,287.77/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 13,019 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Drain | 12944692 | 1091 days ago | IN | 0 ETH | 0.00049512 | ||||
Drain | 12944666 | 1091 days ago | IN | 0 ETH | 0.0006333 | ||||
Transfer | 10504689 | 1468 days ago | IN | 0 ETH | 0.00470377 | ||||
Transfer | 10502633 | 1468 days ago | IN | 0 ETH | 0.00914601 | ||||
Transfer | 10502627 | 1468 days ago | IN | 0 ETH | 0.0091472 | ||||
Transfer | 10439051 | 1478 days ago | IN | 0 ETH | 0.00319139 | ||||
Transfer | 10430080 | 1479 days ago | IN | 0 ETH | 0.00068274 | ||||
Transfer | 10401003 | 1484 days ago | IN | 0 ETH | 0.00209001 | ||||
Transfer | 10400960 | 1484 days ago | IN | 0 ETH | 0.00213407 | ||||
Transfer | 10394887 | 1485 days ago | IN | 0 ETH | 0.00053328 | ||||
Buy | 10390263 | 1485 days ago | IN | 0.3 ETH | 0.00203462 | ||||
Transfer | 10322738 | 1496 days ago | IN | 0 ETH | 0.00406489 | ||||
Transfer | 10322738 | 1496 days ago | IN | 0 ETH | 0.00406489 | ||||
Transfer | 10319238 | 1496 days ago | IN | 0 ETH | 0.00408059 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00049394 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00051863 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00051863 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00039515 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00039515 | ||||
Stake Tokens | 10310616 | 1498 days ago | IN | 0 ETH | 0.00037045 | ||||
Transfer | 10275818 | 1503 days ago | IN | 0 ETH | 0.00418797 | ||||
Transfer | 10274682 | 1503 days ago | IN | 0 ETH | 0.00323344 | ||||
Transfer | 10268059 | 1504 days ago | IN | 0 ETH | 0.0022687 | ||||
Transfer | 10267742 | 1504 days ago | IN | 0 ETH | 0.00179484 | ||||
Transfer | 10267545 | 1504 days ago | IN | 0 ETH | 0.00126555 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
12944666 | 1091 days ago | 0.017 ETH | ||||
10504689 | 1468 days ago | 0.00834467 ETH | ||||
10502633 | 1468 days ago | 0.00030374 ETH | ||||
10502627 | 1468 days ago | 0.00892844 ETH | ||||
10439051 | 1478 days ago | 0.00015509 ETH | ||||
10401003 | 1484 days ago | 0.00194407 ETH | ||||
10400960 | 1484 days ago | 0.00029722 ETH | ||||
10322738 | 1496 days ago | 0.00095967 ETH | ||||
10322738 | 1496 days ago | 0.00429991 ETH | ||||
10319238 | 1496 days ago | 0.00000024 ETH | ||||
10275818 | 1503 days ago | 0.00000044 ETH | ||||
10274682 | 1503 days ago | 0.00000393 ETH | ||||
10268059 | 1504 days ago | 0.0120314 ETH | ||||
10267742 | 1504 days ago | 0.00591931 ETH | ||||
10267545 | 1504 days ago | 0.00406086 ETH | ||||
10267509 | 1504 days ago | 0.00000009 ETH | ||||
10185414 | 1517 days ago | 175.99956847 ETH | ||||
10185291 | 1517 days ago | 200 ETH | ||||
10185254 | 1517 days ago | 100 ETH | ||||
10185208 | 1517 days ago | 50 ETH | ||||
10185192 | 1517 days ago | 10 ETH | ||||
10185143 | 1517 days ago | 10 ETH | ||||
10185079 | 1517 days ago | 1 ETH | ||||
10184594 | 1517 days ago | 1 ETH | ||||
10183792 | 1517 days ago | 0.11817178 ETH |
Loading...
Loading
Contract Name:
XcelDream
Compiler Version
v0.4.20+commit.3155dd80
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-04-20 */ pragma solidity ^0.4.20; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function percent(uint value,uint numerator, uint denominator, uint precision) internal pure returns(uint quotient) { uint _numerator = numerator * 10 ** (precision+1); uint _quotient = ((_numerator / denominator) + 5) / 10; return (value*_quotient/1000000000000000000); } 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; } 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; } 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) { uint256 c = a + b; assert(c >= a); return c; } } contract XcelDream { /*===================================== = CONFIGURABLES = =====================================*/ string public name = "XcelDream"; string public symbol = "XDM"; uint8 constant public decimals = 18; uint8 constant internal dividendFee_ = 5; uint8 constant internal referralPer_ = 20; uint8 constant internal developerFee_ = 5; uint8 internal stakePer_ = 1; uint256 constant internal tokenPriceInitial_ = 0.0001 ether; uint256 constant internal tokenPriceIncremental_ = 0.000001 ether; uint256 constant internal tokenPriceDecremental_ = 0.0000014 ether; uint256 constant internal magnitude = 2**64; // Proof of stake (defaults at 1 token) uint256 public stakingRequirement = 1e18; // Ambassador program mapping(address => bool) internal ambassadors_; uint256 constant internal ambassadorMaxPurchase_ = 1 ether; uint256 constant internal ambassadorQuota_ = 1 ether; /*================================ = DATASETS = ================================*/ mapping(address => uint256) internal tokenBalanceLedger_; mapping(address => uint256) internal stakeBalanceLedger_; mapping(address => uint256) internal stakingTime_; mapping(address => uint256) internal referralBalance_; mapping(address => address) internal referralLevel1Address; mapping(address => address) internal referralLevel2Address; mapping(address => address) internal referralLevel3Address; mapping(address => address) internal referralLevel4Address; mapping(address => address) internal referralLevel5Address; mapping(address => address) internal referralLevel6Address; mapping(address => address) internal referralLevel7Address; mapping(address => address) internal referralLevel8Address; mapping(address => address) internal referralLevel9Address; mapping(address => address) internal referralLevel10Address; mapping(address => int256) internal payoutsTo_; mapping(address => uint256) internal ambassadorAccumulatedQuota_; uint256 internal tokenSupply_ = 0; uint256 internal developerBalance = 0; uint256 internal profitPerShare_; // administrator list (see above on what they can do) mapping(bytes32 => bool) public administrators; bool public onlyAmbassadors = false; /*================================= = MODIFIERS = =================================*/ // Only people with tokens modifier onlybelievers () { require(myTokens() > 0); _; } // Only people with profits modifier onlyhodler() { require(myDividends(true) > 0); _; } // Only admin modifier onlyAdministrator(){ address _customerAddress = msg.sender; require(administrators[keccak256(_customerAddress)]); _; } modifier antiEarlyWhale(uint256 _amountOfEthereum){ address _customerAddress = msg.sender; if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){ require( // is the customer in the ambassador list? ambassadors_[_customerAddress] == true && // does the customer purchase exceed the max ambassador quota? (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_ ); // updated the accumulated quota ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum); _; } else { // in case the ether count drops low, the ambassador phase won't reinitiate onlyAmbassadors = false; _; } } /*============================== = EVENTS = ==============================*/ event onTokenPurchase( address indexed customerAddress, uint256 incomingEthereum, uint256 tokensMinted, address indexed referredBy ); event onTokenSell( address indexed customerAddress, uint256 tokensBurned, uint256 ethereumEarned ); event onReinvestment( address indexed customerAddress, uint256 ethereumReinvested, uint256 tokensMinted ); event onWithdraw( address indexed customerAddress, uint256 ethereumWithdrawn ); event Transfer( address indexed from, address indexed to, uint256 tokens ); /*======================================= = PUBLIC FUNCTIONS = =======================================*/ /* * -- APPLICATION ENTRY POINTS -- */ function XcelDream() public { // add administrators here administrators[0xd44dea3678f826c0c142f05bdfdf646d04def08a04620100e2778d78e59600f0] = true; ambassadors_[0x0000000000000000000000000000000000000000] = true; } /** * Converts all incoming Ethereum to tokens for the caller, and passes down the referral address (if any) */ function buy(address _referredBy) public payable returns(uint256) { purchaseTokens(msg.value, _referredBy); } function() payable public { purchaseTokens(msg.value, 0x0); } /** * Converts all of caller's dividends to tokens. */ function reinvest() onlyhodler() public { // fetch dividends uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code // pay out the dividends virtually address _customerAddress = msg.sender; payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude); // retrieve ref. bonus _dividends += referralBalance_[_customerAddress]; referralBalance_[_customerAddress] = 0; // dispatch a buy order with the virtualized "withdrawn dividends" uint256 _tokens = purchaseTokens(_dividends, 0x0); // fire event onReinvestment(_customerAddress, _dividends, _tokens); } /** * Alias of sell() and withdraw(). */ function exit() public { // get token count for caller & sell them all address _customerAddress = msg.sender; uint256 _tokens = tokenBalanceLedger_[_customerAddress]; if(_tokens > 0) sell(_tokens); withdraw(); } /** * Withdraws all of the callers earnings. */ function withdraw() onlyhodler() public { // setup data address _customerAddress = msg.sender; uint256 _dividends = myDividends(false); // get ref. bonus later in the code // update dividend tracker payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude); // add ref. bonus _dividends += referralBalance_[_customerAddress]; referralBalance_[_customerAddress] = 0; // delivery service _customerAddress.transfer(_dividends); // fire event onWithdraw(_customerAddress, _dividends); } /** * Liquifies tokens to ethereum. */ function sell(uint256 _amountOfTokens) onlybelievers () public { address _customerAddress = msg.sender; require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]); uint256 _tokens = _amountOfTokens; uint256 _ethereum = tokensToEthereum_(_tokens); uint256 _dividends = SafeMath.percent(_ethereum,dividendFee_,100,18); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends); // burn the sold tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens); tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens); // update dividends tracker int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude)); payoutsTo_[_customerAddress] -= _updatedPayouts; // dividing by zero is a bad idea if (tokenSupply_ > 0) { // update the amount of dividends per token profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_); } // fire event onTokenSell(_customerAddress, _tokens, _taxedEthereum); } /** * Transfer tokens from the caller to a new holder. * Remember, there's a 10% fee here as well. */ function transfer(address _toAddress, uint256 _amountOfTokens) onlybelievers () public returns(bool) { address _customerAddress = msg.sender; // make sure we have the requested tokens require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]); // withdraw all outstanding dividends first if(myDividends(true) > 0) withdraw(); // liquify 10% of the tokens that are transfered // these are dispersed to shareholders uint256 _tokenFee = SafeMath.percent(_amountOfTokens,dividendFee_,100,18); uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee); uint256 _dividends = tokensToEthereum_(_tokenFee); // burn the fee tokens tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee); // exchange tokens tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens); tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens); // update dividend trackers payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens); payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens); // disperse dividends among holders profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_); // fire event Transfer(_customerAddress, _toAddress, _taxedTokens); return true; } /*---------- ADMINISTRATOR ONLY FUNCTIONS ----------*/ /** * administrator can manually disable the ambassador phase. */ function disableInitialStage() onlyAdministrator() public { onlyAmbassadors = false; } function changeStakePercent(uint8 stakePercent) onlyAdministrator() public { stakePer_ = stakePercent; } function setAdministrator(bytes32 _identifier, bool _status) onlyAdministrator() public { administrators[_identifier] = _status; } function setStakingRequirement(uint256 _amountOfTokens) onlyAdministrator() public { stakingRequirement = _amountOfTokens; } function setName(string _name) onlyAdministrator() public { name = _name; } function setSymbol(string _symbol) onlyAdministrator() public { symbol = _symbol; } function drain(uint256 _ethereumToDrain) external onlyAdministrator { address _adminAddress = msg.sender; require(this.balance >= _ethereumToDrain); _adminAddress.transfer(_ethereumToDrain); } function drainDeveloperFees() external onlyAdministrator { address _adminAddress = msg.sender; _adminAddress.transfer(developerBalance); developerBalance = 0; } /*---------- HELPERS AND CALCULATORS ----------*/ /** * Method to view the current Ethereum stored in the contract * Example: totalEthereumBalance() */ function totalEthereumBalance() public view returns(uint) { return this.balance; } /** * Retrieve the total developer fee balance. */ function totalDeveloperBalance() public view returns(uint) { return developerBalance; } /** * Retrieve the total token supply. */ function totalSupply() 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 dividends owned by the caller. */ function myDividends(bool _includeReferralBonus) public view returns(uint256) { address _customerAddress = msg.sender; return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ; } /** * Retrieve the token balance of any single address. */ function balanceOf(address _customerAddress) view public returns(uint256) { return tokenBalanceLedger_[_customerAddress]; } /** * Retrieve the dividend balance of any single address. */ function dividendsOf(address _customerAddress) view public returns(uint256) { return (uint256) ((int256)(profitPerShare_ * (tokenBalanceLedger_[_customerAddress] + stakeBalanceLedger_[_customerAddress])) - payoutsTo_[_customerAddress]) / magnitude; } /** * Return the buy price of 1 individual token. */ function sellPrice() public view returns(uint256) { if(tokenSupply_ == 0){ return tokenPriceInitial_ - tokenPriceDecremental_; } else { uint256 _ethereum = tokensToEthereum_(1e18); uint256 _dividends = SafeMath.percent(_ethereum,dividendFee_,100,18); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends); return _taxedEthereum; } } /** * Return the sell price of 1 individual token. */ function buyPrice() public view returns(uint256) { if(tokenSupply_ == 0){ return tokenPriceInitial_ + tokenPriceIncremental_; } else { uint256 _ethereum = tokensToEthereum_(1e18); uint256 untotalDeduct = developerFee_ + referralPer_ + dividendFee_; uint256 totalDeduct = SafeMath.percent(_ethereum,untotalDeduct,100,18); uint256 _taxedEthereum = SafeMath.add(_ethereum, totalDeduct); return _taxedEthereum; } } function calculateTokensReceived(uint256 _ethereumToSpend) public view returns(uint256) { uint256 untotalDeduct = developerFee_ + referralPer_ + dividendFee_; uint256 totalDeduct = SafeMath.percent(_ethereumToSpend,untotalDeduct,100,18); uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, totalDeduct); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); return _amountOfTokens; } function calculateEthereumReceived(uint256 _tokensToSell) public view returns(uint256) { require(_tokensToSell <= tokenSupply_); uint256 _ethereum = tokensToEthereum_(_tokensToSell); uint256 _dividends = SafeMath.percent(_ethereum,dividendFee_,100,18); uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends); return _taxedEthereum; } function stakeTokens(uint256 _amountOfTokens) onlybelievers () public returns(bool){ address _customerAddress = msg.sender; // make sure we have the requested tokens require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]); uint256 _amountOfTokensWith1Token = SafeMath.sub(_amountOfTokens, 1e18); stakingTime_[_customerAddress] = now; stakeBalanceLedger_[_customerAddress] = SafeMath.add(stakeBalanceLedger_[_customerAddress], _amountOfTokensWith1Token); tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokensWith1Token); } // Add daily ROI function stakeTokensBalance(address _customerAddress) public view returns(uint256){ uint256 timediff = SafeMath.sub(now, stakingTime_[_customerAddress]); uint256 dayscount = SafeMath.div(timediff, 86400); //86400 Sec for 1 Day uint256 roiPercent = SafeMath.mul(dayscount, stakePer_); uint256 roiTokens = SafeMath.percent(stakeBalanceLedger_[_customerAddress],roiPercent,100,18); uint256 finalBalance = SafeMath.add(stakeBalanceLedger_[_customerAddress],roiTokens); return finalBalance; } function stakeTokensTime(address _customerAddress) public view returns(uint256){ return stakingTime_[_customerAddress]; } function releaseStake() onlybelievers () public returns(bool){ address _customerAddress = msg.sender; // make sure we have the requested tokens require(!onlyAmbassadors && stakingTime_[_customerAddress] > 0); uint256 _amountOfTokens = stakeBalanceLedger_[_customerAddress]; uint256 timediff = SafeMath.sub(now, stakingTime_[_customerAddress]); uint256 dayscount = SafeMath.div(timediff, 86400); uint256 roiPercent = SafeMath.mul(dayscount, stakePer_); uint256 roiTokens = SafeMath.percent(_amountOfTokens,roiPercent,100,18); uint256 finalBalance = SafeMath.add(_amountOfTokens,roiTokens); // add tokens to the pool tokenSupply_ = SafeMath.add(tokenSupply_, roiTokens); // transfer tokens back tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], finalBalance); stakeBalanceLedger_[_customerAddress] = 0; stakingTime_[_customerAddress] = 0; } /*========================================== = INTERNAL FUNCTIONS = ==========================================*/ uint256 developerFee; uint256 incETH; address _refAddress; uint256 _referralBonus; uint256 bonusLv1; uint256 bonusLv2; uint256 bonusLv3; uint256 bonusLv4; uint256 bonusLv5; uint256 bonusLv6; uint256 bonusLv7; uint256 bonusLv8; uint256 bonusLv9; uint256 bonusLv10; address chkLv2; address chkLv3; address chkLv4; address chkLv5; address chkLv6; address chkLv7; address chkLv8; address chkLv9; address chkLv10; struct RefUserDetail { address refUserAddress; uint256 refLevel; } mapping(address => mapping (uint => RefUserDetail)) public RefUser; mapping(address => uint256) public referralCount_; function getDownlineRef(address senderAddress, uint dataId) external view returns (address,uint) { return (RefUser[senderAddress][dataId].refUserAddress,RefUser[senderAddress][dataId].refLevel); } function addDownlineRef(address senderAddress, address refUserAddress, uint refLevel) internal { referralCount_[senderAddress]++; uint dataId = referralCount_[senderAddress]; RefUser[senderAddress][dataId].refUserAddress = refUserAddress; RefUser[senderAddress][dataId].refLevel = refLevel; } function getref(address _customerAddress, uint _level) public view returns(address lv) { if(_level == 1) { lv = referralLevel1Address[_customerAddress]; } else if(_level == 2) { lv = referralLevel2Address[_customerAddress]; } else if(_level == 3) { lv = referralLevel3Address[_customerAddress]; } else if(_level == 4) { lv = referralLevel4Address[_customerAddress]; } else if(_level == 5) { lv = referralLevel5Address[_customerAddress]; } else if(_level == 6) { lv = referralLevel6Address[_customerAddress]; } else if(_level == 7) { lv = referralLevel7Address[_customerAddress]; } else if(_level == 8) { lv = referralLevel8Address[_customerAddress]; } else if(_level == 9) { lv = referralLevel9Address[_customerAddress]; } else if(_level == 10) { lv = referralLevel10Address[_customerAddress]; } return lv; } function distributeRefBonus(uint256 _incomingEthereum, address _referredBy, address _sender, bool _newReferral) internal { address _customerAddress = _sender; uint256 remainingRefBonus = _incomingEthereum; _referralBonus = _incomingEthereum; bonusLv1 = SafeMath.percent(_referralBonus,30,100,18); bonusLv2 = SafeMath.percent(_referralBonus,20,100,18); bonusLv3 = SafeMath.percent(_referralBonus,15,100,18); bonusLv4 = SafeMath.percent(_referralBonus,10,100,18); bonusLv5 = SafeMath.percent(_referralBonus,5,100,18); bonusLv6 = SafeMath.percent(_referralBonus,5,100,18); bonusLv7 = SafeMath.percent(_referralBonus,5,100,18); bonusLv8 = SafeMath.percent(_referralBonus,3,100,18); bonusLv9 = SafeMath.percent(_referralBonus,3,100,18); bonusLv10 = SafeMath.percent(_referralBonus,2,100,18); // Level 1 referralLevel1Address[_customerAddress] = _referredBy; referralBalance_[referralLevel1Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel1Address[_customerAddress]], bonusLv1); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv1); if(_newReferral == true) { addDownlineRef(_referredBy, _customerAddress, 1); } chkLv2 = referralLevel1Address[_referredBy]; chkLv3 = referralLevel2Address[_referredBy]; chkLv4 = referralLevel3Address[_referredBy]; chkLv5 = referralLevel4Address[_referredBy]; chkLv6 = referralLevel5Address[_referredBy]; chkLv7 = referralLevel6Address[_referredBy]; chkLv8 = referralLevel7Address[_referredBy]; chkLv9 = referralLevel8Address[_referredBy]; chkLv10 = referralLevel9Address[_referredBy]; // Level 2 if(chkLv2 != 0x0000000000000000000000000000000000000000) { referralLevel2Address[_customerAddress] = referralLevel1Address[_referredBy]; referralBalance_[referralLevel2Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel2Address[_customerAddress]], bonusLv2); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv2); if(_newReferral == true) { addDownlineRef(referralLevel1Address[_referredBy], _customerAddress, 2); } } // Level 3 if(chkLv3 != 0x0000000000000000000000000000000000000000) { referralLevel3Address[_customerAddress] = referralLevel2Address[_referredBy]; referralBalance_[referralLevel3Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel3Address[_customerAddress]], bonusLv3); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv3); if(_newReferral == true) { addDownlineRef(referralLevel2Address[_referredBy], _customerAddress, 3); } } // Level 4 if(chkLv4 != 0x0000000000000000000000000000000000000000) { referralLevel4Address[_customerAddress] = referralLevel3Address[_referredBy]; referralBalance_[referralLevel4Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel4Address[_customerAddress]], bonusLv4); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv4); if(_newReferral == true) { addDownlineRef(referralLevel3Address[_referredBy], _customerAddress, 4); } } // Level 5 if(chkLv5 != 0x0000000000000000000000000000000000000000) { referralLevel5Address[_customerAddress] = referralLevel4Address[_referredBy]; referralBalance_[referralLevel5Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel5Address[_customerAddress]], bonusLv5); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv5); if(_newReferral == true) { addDownlineRef(referralLevel4Address[_referredBy], _customerAddress, 5); } } // Level 6 if(chkLv6 != 0x0000000000000000000000000000000000000000) { referralLevel6Address[_customerAddress] = referralLevel5Address[_referredBy]; referralBalance_[referralLevel6Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel6Address[_customerAddress]], bonusLv6); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv6); if(_newReferral == true) { addDownlineRef(referralLevel5Address[_referredBy], _customerAddress, 6); } } // Level 7 if(chkLv7 != 0x0000000000000000000000000000000000000000) { referralLevel7Address[_customerAddress] = referralLevel6Address[_referredBy]; referralBalance_[referralLevel7Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel7Address[_customerAddress]], bonusLv7); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv7); if(_newReferral == true) { addDownlineRef(referralLevel6Address[_referredBy], _customerAddress, 7); } } // Level 8 if(chkLv8 != 0x0000000000000000000000000000000000000000) { referralLevel8Address[_customerAddress] = referralLevel7Address[_referredBy]; referralBalance_[referralLevel8Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel8Address[_customerAddress]], bonusLv8); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv8); if(_newReferral == true) { addDownlineRef(referralLevel7Address[_referredBy], _customerAddress, 8); } } // Level 9 if(chkLv9 != 0x0000000000000000000000000000000000000000) { referralLevel9Address[_customerAddress] = referralLevel8Address[_referredBy]; referralBalance_[referralLevel9Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel9Address[_customerAddress]], bonusLv9); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv9); if(_newReferral == true) { addDownlineRef(referralLevel8Address[_referredBy], _customerAddress, 9); } } // Level 10 if(chkLv10 != 0x0000000000000000000000000000000000000000) { referralLevel10Address[_customerAddress] = referralLevel9Address[_referredBy]; referralBalance_[referralLevel10Address[_customerAddress]] = SafeMath.add(referralBalance_[referralLevel10Address[_customerAddress]], bonusLv10); remainingRefBonus = SafeMath.sub(remainingRefBonus, bonusLv10); if(_newReferral == true) { addDownlineRef(referralLevel9Address[_referredBy], _customerAddress, 10); } } developerBalance = SafeMath.add(developerBalance, remainingRefBonus); } function purchaseTokens(uint256 _incomingEthereum, address _referredBy) antiEarlyWhale(_incomingEthereum) internal returns(uint256) { // data setup address _customerAddress = msg.sender; incETH = _incomingEthereum; // Developer Fees 2% developerFee = SafeMath.percent(incETH,developerFee_,100,18); developerBalance = SafeMath.add(developerBalance, developerFee); _referralBonus = SafeMath.percent(incETH,referralPer_,100,18); uint256 _dividends = SafeMath.percent(incETH,dividendFee_,100,18); uint256 untotalDeduct = developerFee_ + referralPer_ + dividendFee_; uint256 totalDeduct = SafeMath.percent(incETH,untotalDeduct,100,18); uint256 _taxedEthereum = SafeMath.sub(incETH, totalDeduct); uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum); uint256 _fee = _dividends * magnitude; bool _newReferral = true; if(referralLevel1Address[_customerAddress] != 0x0000000000000000000000000000000000000000) { _referredBy = referralLevel1Address[_customerAddress]; _newReferral = false; } require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_)); // is the user referred by a link? if( // is this a referred purchase? _referredBy != 0x0000000000000000000000000000000000000000 && // no cheating! _referredBy != _customerAddress && tokenBalanceLedger_[_referredBy] >= stakingRequirement ){ // wealth redistribution distributeRefBonus(_referralBonus,_referredBy,_customerAddress,_newReferral); } else { // no ref purchase // send referral bonus back to admin developerBalance = SafeMath.add(developerBalance, _referralBonus); } // we can't give people infinite ethereum if(tokenSupply_ > 0){ // add tokens to the pool tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens); // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder profitPerShare_ += (_dividends * magnitude / (tokenSupply_)); // calculate the amount of tokens the customer receives over his purchase _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_)))); } else { // add tokens to the pool tokenSupply_ = _amountOfTokens; } // update circulating supply & the ledger address for the customer tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens); int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee); payoutsTo_[_customerAddress] += _updatedPayouts; // fire event onTokenPurchase(_customerAddress, incETH, _amountOfTokens, _referredBy); return _amountOfTokens; } /** * Calculate Token price based on an amount of incoming ethereum * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation; * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code. */ function ethereumToTokens_(uint256 _ethereum) internal view returns(uint256) { uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18; uint256 _tokensReceived = ( ( SafeMath.sub( (sqrt ( (_tokenPriceInitial**2) + (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18)) + (((tokenPriceIncremental_)**2)*(tokenSupply_**2)) + (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_) ) ), _tokenPriceInitial ) )/(tokenPriceIncremental_) )-(tokenSupply_) ; return _tokensReceived; } /** * Calculate token sell value. */ function tokensToEthereum_(uint256 _tokens) internal view returns(uint256) { uint256 tokens_ = (_tokens + 2e18); uint256 _tokenSupply = (tokenSupply_ + 2e18); uint256 _etherReceived = ( SafeMath.sub( ( ( ( tokenPriceInitial_ +(tokenPriceDecremental_ * (_tokenSupply/2e18)) )-tokenPriceDecremental_ )*(tokens_ - 2e18) ),(tokenPriceDecremental_*((tokens_**2-tokens_)/2e18))/2 ) /2e18); 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; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"stakePercent","type":"uint8"}],"name":"changeStakePercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"senderAddress","type":"address"},{"name":"dataId","type":"uint256"}],"name":"getDownlineRef","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"RefUser","outputs":[{"name":"refUserAddress","type":"address"},{"name":"refLevel","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseStake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDeveloperBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"stakeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"drainDeveloperFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_level","type":"uint256"}],"name":"getref","outputs":[{"name":"lv","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralCount_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_ethereumToDrain","type":"uint256"}],"name":"drain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60606040526040805190810160405280600981526020017f5863656c447265616d00000000000000000000000000000000000000000000008152506000908051906020019062000051929190620001aa565b506040805190810160405280600381526020017f58444d0000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620001aa565b506001600260006101000a81548160ff021916908360ff160217905550670de0b6b3a7640000600355600060155560006016556000601960006101000a81548160ff0219169083151502179055503415620000f957600080fd5b6001601860007fd44dea3678f826c0c142f05bdfdf646d04def08a04620100e2778d78e59600f060010260001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000259565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ed57805160ff19168380011785556200021e565b828001600101855582156200021e579182015b828111156200021d57825182559160200191906001019062000200565b5b5090506200022d919062000231565b5090565b6200025691905b808211156200025257600081600090555060010162000238565b5090565b90565b615ded80620002696000396000f3006060604052600436106101e2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b146101f057806306fdde031461023d57806310d0ffdd146102cb57806317ef4e921461030257806318160ddd14610328578063226093731461035157806327defa1f146103885780632b152e40146103b55780632fc2a5721461043e578063313ce5671461048b578063392efb52146104ba5780633ccfd60b146104f957806343360a8e1461050e5780634b7503341461059757806356d399e8146105c05780635c48c1fa146105e957806366b3fa6014610616578063688abbf71461063f5780636b2f46321461067857806370a08231146106a15780637547c7a3146106ee57806377e79b41146107295780638328b610146107765780638620410b1461079957806389135ae9146107c2578063949e8acd146107f457806395d89b411461081d578063a0156861146108ab578063a8e04f34146108c0578063a9059cbb146108d5578063b84c82461461092f578063c47f00271461098c578063e4735104146109e9578063e4849b3214610a6b578063e5deb30414610a8e578063e9fad8ee14610adb578063f088d54714610af0578063f6b19c7414610b32578063fdb5a03e14610b55575b6101ed346000610b6a565b50005b34156101fb57600080fd5b610227600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611621565b6040518082815260200191505060405180910390f35b341561024857600080fd5b610250611704565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610290578082015181840152602081019050610275565b50505050905090810190601f1680156102bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d657600080fd5b6102ec60048080359060200190919050506117a2565b6040518082815260200191505060405180910390f35b341561030d57600080fd5b610326600480803560ff169060200190919050506117ea565b005b341561033357600080fd5b61033b611892565b6040518082815260200191505060405180910390f35b341561035c57600080fd5b610372600480803590602001909190505061189c565b6040518082815260200191505060405180910390f35b341561039357600080fd5b61039b6118e9565b604051808215151515815260200191505060405180910390f35b34156103c057600080fd5b6103f5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118fc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b341561044957600080fd5b610475600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119d2565b6040518082815260200191505060405180910390f35b341561049657600080fd5b61049e611afa565b604051808260ff1660ff16815260200191505060405180910390f35b34156104c557600080fd5b6104df600480803560001916906020019091905050611aff565b604051808215151515815260200191505060405180910390f35b341561050457600080fd5b61050c611b1f565b005b341561051957600080fd5b61054e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cbc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156105a257600080fd5b6105aa611d0d565b6040518082815260200191505060405180910390f35b34156105cb57600080fd5b6105d3611d71565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611d77565b604051808215151515815260200191505060405180910390f35b341561062157600080fd5b61062961200b565b6040518082815260200191505060405180910390f35b341561064a57600080fd5b61066260048080351515906020019091905050612015565b6040518082815260200191505060405180910390f35b341561068357600080fd5b61068b612081565b6040518082815260200191505060405180910390f35b34156106ac57600080fd5b6106d8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a0565b6040518082815260200191505060405180910390f35b34156106f957600080fd5b61070f60048080359060200190919050506120e9565b604051808215151515815260200191505060405180910390f35b341561073457600080fd5b610760600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122e4565b6040518082815260200191505060405180910390f35b341561078157600080fd5b610797600480803590602001909190505061232d565b005b34156107a457600080fd5b6107ac6123c1565b6040518082815260200191505060405180910390f35b34156107cd57600080fd5b6107f2600480803560001916906020019091908035151590602001909190505061242f565b005b34156107ff57600080fd5b6108076124f0565b6040518082815260200191505060405180910390f35b341561082857600080fd5b610830612505565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610870578082015181840152602081019050610855565b50505050905090810190601f16801561089d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108b657600080fd5b6108be6125a3565b005b34156108cb57600080fd5b6108d361267e565b005b34156108e057600080fd5b610915600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612725565b604051808215151515815260200191505060405180910390f35b341561093a57600080fd5b61098a600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612a5b565b005b341561099757600080fd5b6109e7600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612aff565b005b34156109f457600080fd5b610a29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612ba3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a7657600080fd5b610a8c6004808035906020019091905050613013565b005b3415610a9957600080fd5b610ac5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613245565b6040518082815260200191505060405180910390f35b3415610ae657600080fd5b610aee61325d565b005b610b1c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132c4565b6040518082815260200191505060405180910390f35b3415610b3d57600080fd5b610b5360048080359060200190919050506132d6565b005b3415610b6057600080fd5b610b686133ce565b005b6000806000806000806000806000808b6000339050601960009054906101000a900460ff168015610bac5750670de0b6b3a764000082610ba8612081565b0311155b156111755760011515600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015610c5a5750670de0b6b3a764000082601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515610c6557600080fd5b610cae601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550339a508d601b81905550610d0f601b54600560ff1660646012613560565b601a81905550610d23601654601a54613542565b601681905550610d3d601b54601460ff1660646012613560565b601d81905550610d57601b54600560ff1660646012613560565b9950600560146005010160ff169850610d76601b548a60646012613560565b9750610d84601b54896135af565b9650610d8f876135c8565b9550680100000000000000008a02945060019350600073ffffffffffffffffffffffffffffffffffffffff16600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9f57600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169c50600093505b600086118015610ebb5750601554610eb987601554613542565b115b1515610ec657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015610f2f57508a73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b8015610f7c5750600354600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610f9457610f8f601d548e8d87613656565b610fa9565b610fa2601654601d54613542565b6016819055505b6000601554111561101457610fc060155487613542565b601581905550601554680100000000000000008b02811515610fde57fe5b04601760008282540192505081905550601554680100000000000000008b0281151561100657fe5b04860285038503945061101c565b856015819055505b611065600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487613542565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866017540203925082601360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508c73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601b5489604051808381526020018281526020019250505060405180910390a3859b50611610565b6000601960006101000a81548160ff021916908315150217905550339a508d601b819055506111ae601b54600560ff1660646012613560565b601a819055506111c2601654601a54613542565b6016819055506111dc601b54601460ff1660646012613560565b601d819055506111f6601b54600560ff1660646012613560565b9950600560146005010160ff169850611215601b548a60646012613560565b9750611223601b54896135af565b965061122e876135c8565b9550680100000000000000008a02945060019350600073ffffffffffffffffffffffffffffffffffffffff16600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561133e57600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169c50600093505b60008611801561135a575060155461135887601554613542565b115b151561136557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16141580156113ce57508a73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b801561141b5750600354600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156114335761142e601d548e8d87613656565b611448565b611441601654601d54613542565b6016819055505b600060155411156114b35761145f60155487613542565b601581905550601554680100000000000000008b0281151561147d57fe5b04601760008282540192505081905550601554680100000000000000008b028115156114a557fe5b0486028503850394506114bb565b856015819055505b611504600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487613542565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866017540203925082601360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508c73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601b5489604051808381526020018281526020019250505060405180910390a3859b505b505050505050505050505092915050565b600068010000000000000000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540160175402038115156116fc57fe5b049050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179a5780601f1061176f5761010080835404028352916020019161179a565b820191906000526020600020905b81548152906001019060200180831161177d57829003601f168201915b505050505081565b6000806000806000600560146005010160ff1693506117c5868560646012613560565b92506117d186846135af565b91506117dc826135c8565b905080945050505050919050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561187357600080fd5b81600260006101000a81548160ff021916908360ff1602179055505050565b6000601554905090565b60008060008060155485111515156118b357600080fd5b6118bc85615a49565b92506118d083600560ff1660646012613560565b91506118dc83836135af565b9050809350505050919050565b601960009054906101000a900460ff1681565b600080603160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060010154915091509250929050565b600080600080600080611a2442600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135af565b9450611a338562015180615af8565b9350611a5184600260009054906101000a900460ff1660ff16615b13565b9250611aa0600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548460646012613560565b9150611aeb600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b90508095505050505050919050565b601281565b60186020528060005260406000206000915054906101000a900460ff1681565b6000806000611b2e6001612015565b111515611b3a57600080fd5b339150611b476000612015565b9050680100000000000000008102601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611c6a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6031602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060006015541415611d3457650145f680b000655af3107a4000039350611d6b565b611d45670de0b6b3a7640000615a49565b9250611d5983600560ff1660646012613560565b9150611d6583836135af565b90508093505b50505090565b60035481565b6000806000806000806000806000611d8d6124f0565b111515611d9957600080fd5b339650601960009054906101000a900460ff16158015611df857506000600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1515611e0357600080fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550611e8e42600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135af565b9450611e9d8562015180615af8565b9350611ebb84600260009054906101000a900460ff1660ff16615b13565b9250611ecb868460646012613560565b9150611ed78683613542565b9050611ee560155483613542565b601581905550611f34600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613542565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505090565b6000601654905090565b6000803390508261202e5761202981611621565b612079565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207782611621565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806120f76124f0565b11151561210357600080fd5b339150601960009054906101000a900460ff161580156121625750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411155b151561216d57600080fd5b61217f84670de0b6b3a76400006135af565b905042600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061220e600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613542565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061229a600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826135af565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156123b657600080fd5b816003819055505050565b60008060008060008060155414156123e85764e8d4a51000655af3107a4000019450612428565b6123f9670de0b6b3a7640000615a49565b9350600560146005010160ff169250612416848460646012613560565b91506124228483613542565b90508094505b5050505090565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156124b857600080fd5b8160186000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506124ff816120a0565b91505090565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561259b5780601f106125705761010080835404028352916020019161259b565b820191906000526020600020905b81548152906001019060200180831161257e57829003601f168201915b505050505081565b6000803390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561262d57600080fd5b3391508173ffffffffffffffffffffffffffffffffffffffff166108fc6016549081150290604051600060405180830381858888f19350505050151561267257600080fd5b60006016819055505050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561270757600080fd5b6000601960006101000a81548160ff02191690831515021790555050565b6000806000806000806127366124f0565b11151561274257600080fd5b339350601960009054906101000a900460ff161580156127a15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156127ac57600080fd5b60006127b86001612015565b11156127c7576127c6611b1f565b5b6127d986600560ff1660646012613560565b92506127e586846135af565b91506127f083615a49565b90506127fe601554846135af565b60158190555061284d600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876135af565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128d9600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560175402601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160175402601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506129e26017546015546801000000000000000084028115156129dc57fe5b04613542565b6017819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515612ae457600080fd5b8160019080519060200190612afa929190615d1c565b505050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515612b8857600080fd5b8160009080519060200190612b9e929190615d1c565b505050565b60006001821415612c1557600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061300a565b6002821415612c8557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613009565b6003821415612cf557600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613008565b6004821415612d6557600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613007565b6005821415612dd557600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613006565b6006821415612e4557600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613005565b6007821415612eb557600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613004565b6008821415612f2557601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613003565b6009821415612f9557601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613002565b600a82141561300157601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b5b5b5b5b5b5b5b80905092915050565b60008060008060008060006130266124f0565b11151561303257600080fd5b339550600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561308357600080fd5b86945061308f85615a49565b93506130a384600560ff1660646012613560565b92506130af84846135af565b91506130bd601554866135af565b60158190555061310c600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866135af565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856017540201905080601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600060155411156131e6576131df6017546015546801000000000000000086028115156131d957fe5b04613542565b6017819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b60326020528060005260406000206000915090505481565b600080339150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156132b8576132b781613013565b5b6132c0611b1f565b5050565b60006132d03483610b6a565b50919050565b6000803390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561336057600080fd5b339150823073ffffffffffffffffffffffffffffffffffffffff16311015151561338957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156133c957600080fd5b505050565b6000806000806133de6001612015565b1115156133ea57600080fd5b6133f46000612015565b9250339150680100000000000000008302601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134e5836000610b6a565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561355657fe5b8091505092915050565b600080600060018401600a0a86029150600a6005868481151561357f57fe5b040181151561358a57fe5b049050670de0b6b3a76400008188028115156135a257fe5b0492505050949350505050565b60008282111515156135bd57fe5b818303905092915050565b6000806000670de0b6b3a7640000655af3107a400002915060155464e8d4a5100061363f6136396015548664e8d4a51000600202020260026015540a600264e8d4a510000a02670de0b6b3a76400008a02670de0b6b3a764000064e8d4a5100002600202026002890a010101615b4e565b856135af565b81151561364857fe5b040390508092505050919050565b60008083915085905085601d81905550613677601d54601e60646012613560565b601e8190555061368e601d54601460646012613560565b601f819055506136a5601d54600f60646012613560565b6020819055506136bc601d54600a60646012613560565b6021819055506136d3601d54600560646012613560565b6022819055506136ea601d54600560646012613560565b602381905550613701601d54600560646012613560565b602481905550613718601d54600360646012613560565b60258190555061372f601d54600360646012613560565b602681905550613746601d54600260646012613560565b60278190555084600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061387460086000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601e54613542565b60086000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061392281601e546135af565b905060011515831515141561393e5761393d85836001615b99565b5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16603060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156141e757600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506140bd60086000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601f54613542565b60086000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061416b81601f546135af565b90506001151583151514156141e6576141e5600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836002615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156144f057600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506143c660086000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602054613542565b60086000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614474816020546135af565b90506001151583151514156144ef576144ee600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156147f957600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506146cf60086000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602154613542565b60086000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061477d816021546135af565b90506001151583151514156147f8576147f7600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836004615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614b0257600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506149d860086000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602254613542565b60086000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a86816022546135af565b9050600115158315151415614b0157614b00600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836005615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614e0b57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614ce160086000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602354613542565b60086000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614d8f816023546135af565b9050600115158315151415614e0a57614e09600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836006615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561511457600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614fea60086000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602454613542565b60086000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550615098816024546135af565b905060011515831515141561511357615112600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836007615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561541d57600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506152f360086000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602554613542565b60086000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506153a1816025546135af565b905060011515831515141561541c5761541b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836008615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561572657601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506155fc60086000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602654613542565b60086000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506156aa816026546135af565b905060011515831515141561572557615724601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836009615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515615a2f57601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061590560086000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602754613542565b60086000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506159b3816027546135af565b9050600115158315151415615a2e57615a2d601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600a615b99565b5b5b615a3b60165482613542565b601681905550505050505050565b600080600080671bc16d674ec8000085019250671bc16d674ec80000601554019150671bc16d674ec80000615ae1671bc16d674ec800008503650145f680b000671bc16d674ec8000086811515615a9c57fe5b04650145f680b00002655af3107a40000103026002671bc16d674ec80000876002890a03811515615ac957fe5b04650145f680b00002811515615adb57fe5b046135af565b811515615aea57fe5b049050809350505050919050565b6000808284811515615b0657fe5b0490508091505092915050565b6000806000841415615b285760009150615b47565b8284029050828482811515615b3957fe5b04141515615b4357fe5b8091505b5092915050565b600080600260018401811515615b6057fe5b0490508291505b81811015615b93578091506002818285811515615b8057fe5b0401811515615b8b57fe5b049050615b67565b50919050565b6000603260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550603260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001018190555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615d5d57805160ff1916838001178555615d8b565b82800160010185558215615d8b579182015b82811115615d8a578251825591602001919060010190615d6f565b5b509050615d989190615d9c565b5090565b615dbe91905b80821115615dba576000816000905550600101615da2565b5090565b905600a165627a7a72305820b6c7f9ffbbbe91f964b767f5e90c14887508f2a67bafdf6a6acb41d6a68535810029
Deployed Bytecode
0x6060604052600436106101e2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b146101f057806306fdde031461023d57806310d0ffdd146102cb57806317ef4e921461030257806318160ddd14610328578063226093731461035157806327defa1f146103885780632b152e40146103b55780632fc2a5721461043e578063313ce5671461048b578063392efb52146104ba5780633ccfd60b146104f957806343360a8e1461050e5780634b7503341461059757806356d399e8146105c05780635c48c1fa146105e957806366b3fa6014610616578063688abbf71461063f5780636b2f46321461067857806370a08231146106a15780637547c7a3146106ee57806377e79b41146107295780638328b610146107765780638620410b1461079957806389135ae9146107c2578063949e8acd146107f457806395d89b411461081d578063a0156861146108ab578063a8e04f34146108c0578063a9059cbb146108d5578063b84c82461461092f578063c47f00271461098c578063e4735104146109e9578063e4849b3214610a6b578063e5deb30414610a8e578063e9fad8ee14610adb578063f088d54714610af0578063f6b19c7414610b32578063fdb5a03e14610b55575b6101ed346000610b6a565b50005b34156101fb57600080fd5b610227600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611621565b6040518082815260200191505060405180910390f35b341561024857600080fd5b610250611704565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610290578082015181840152602081019050610275565b50505050905090810190601f1680156102bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d657600080fd5b6102ec60048080359060200190919050506117a2565b6040518082815260200191505060405180910390f35b341561030d57600080fd5b610326600480803560ff169060200190919050506117ea565b005b341561033357600080fd5b61033b611892565b6040518082815260200191505060405180910390f35b341561035c57600080fd5b610372600480803590602001909190505061189c565b6040518082815260200191505060405180910390f35b341561039357600080fd5b61039b6118e9565b604051808215151515815260200191505060405180910390f35b34156103c057600080fd5b6103f5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118fc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b341561044957600080fd5b610475600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119d2565b6040518082815260200191505060405180910390f35b341561049657600080fd5b61049e611afa565b604051808260ff1660ff16815260200191505060405180910390f35b34156104c557600080fd5b6104df600480803560001916906020019091905050611aff565b604051808215151515815260200191505060405180910390f35b341561050457600080fd5b61050c611b1f565b005b341561051957600080fd5b61054e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cbc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156105a257600080fd5b6105aa611d0d565b6040518082815260200191505060405180910390f35b34156105cb57600080fd5b6105d3611d71565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611d77565b604051808215151515815260200191505060405180910390f35b341561062157600080fd5b61062961200b565b6040518082815260200191505060405180910390f35b341561064a57600080fd5b61066260048080351515906020019091905050612015565b6040518082815260200191505060405180910390f35b341561068357600080fd5b61068b612081565b6040518082815260200191505060405180910390f35b34156106ac57600080fd5b6106d8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120a0565b6040518082815260200191505060405180910390f35b34156106f957600080fd5b61070f60048080359060200190919050506120e9565b604051808215151515815260200191505060405180910390f35b341561073457600080fd5b610760600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122e4565b6040518082815260200191505060405180910390f35b341561078157600080fd5b610797600480803590602001909190505061232d565b005b34156107a457600080fd5b6107ac6123c1565b6040518082815260200191505060405180910390f35b34156107cd57600080fd5b6107f2600480803560001916906020019091908035151590602001909190505061242f565b005b34156107ff57600080fd5b6108076124f0565b6040518082815260200191505060405180910390f35b341561082857600080fd5b610830612505565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610870578082015181840152602081019050610855565b50505050905090810190601f16801561089d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108b657600080fd5b6108be6125a3565b005b34156108cb57600080fd5b6108d361267e565b005b34156108e057600080fd5b610915600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612725565b604051808215151515815260200191505060405180910390f35b341561093a57600080fd5b61098a600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612a5b565b005b341561099757600080fd5b6109e7600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612aff565b005b34156109f457600080fd5b610a29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612ba3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a7657600080fd5b610a8c6004808035906020019091905050613013565b005b3415610a9957600080fd5b610ac5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613245565b6040518082815260200191505060405180910390f35b3415610ae657600080fd5b610aee61325d565b005b610b1c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132c4565b6040518082815260200191505060405180910390f35b3415610b3d57600080fd5b610b5360048080359060200190919050506132d6565b005b3415610b6057600080fd5b610b686133ce565b005b6000806000806000806000806000808b6000339050601960009054906101000a900460ff168015610bac5750670de0b6b3a764000082610ba8612081565b0311155b156111755760011515600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015610c5a5750670de0b6b3a764000082601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515610c6557600080fd5b610cae601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550339a508d601b81905550610d0f601b54600560ff1660646012613560565b601a81905550610d23601654601a54613542565b601681905550610d3d601b54601460ff1660646012613560565b601d81905550610d57601b54600560ff1660646012613560565b9950600560146005010160ff169850610d76601b548a60646012613560565b9750610d84601b54896135af565b9650610d8f876135c8565b9550680100000000000000008a02945060019350600073ffffffffffffffffffffffffffffffffffffffff16600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9f57600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169c50600093505b600086118015610ebb5750601554610eb987601554613542565b115b1515610ec657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015610f2f57508a73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b8015610f7c5750600354600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610f9457610f8f601d548e8d87613656565b610fa9565b610fa2601654601d54613542565b6016819055505b6000601554111561101457610fc060155487613542565b601581905550601554680100000000000000008b02811515610fde57fe5b04601760008282540192505081905550601554680100000000000000008b0281151561100657fe5b04860285038503945061101c565b856015819055505b611065600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487613542565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866017540203925082601360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508c73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601b5489604051808381526020018281526020019250505060405180910390a3859b50611610565b6000601960006101000a81548160ff021916908315150217905550339a508d601b819055506111ae601b54600560ff1660646012613560565b601a819055506111c2601654601a54613542565b6016819055506111dc601b54601460ff1660646012613560565b601d819055506111f6601b54600560ff1660646012613560565b9950600560146005010160ff169850611215601b548a60646012613560565b9750611223601b54896135af565b965061122e876135c8565b9550680100000000000000008a02945060019350600073ffffffffffffffffffffffffffffffffffffffff16600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561133e57600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169c50600093505b60008611801561135a575060155461135887601554613542565b115b151561136557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16141580156113ce57508a73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b801561141b5750600354600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156114335761142e601d548e8d87613656565b611448565b611441601654601d54613542565b6016819055505b600060155411156114b35761145f60155487613542565b601581905550601554680100000000000000008b0281151561147d57fe5b04601760008282540192505081905550601554680100000000000000008b028115156114a557fe5b0486028503850394506114bb565b856015819055505b611504600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487613542565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084866017540203925082601360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508c73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601b5489604051808381526020018281526020019250505060405180910390a3859b505b505050505050505050505092915050565b600068010000000000000000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540160175402038115156116fc57fe5b049050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179a5780601f1061176f5761010080835404028352916020019161179a565b820191906000526020600020905b81548152906001019060200180831161177d57829003601f168201915b505050505081565b6000806000806000600560146005010160ff1693506117c5868560646012613560565b92506117d186846135af565b91506117dc826135c8565b905080945050505050919050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561187357600080fd5b81600260006101000a81548160ff021916908360ff1602179055505050565b6000601554905090565b60008060008060155485111515156118b357600080fd5b6118bc85615a49565b92506118d083600560ff1660646012613560565b91506118dc83836135af565b9050809350505050919050565b601960009054906101000a900460ff1681565b600080603160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060010154915091509250929050565b600080600080600080611a2442600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135af565b9450611a338562015180615af8565b9350611a5184600260009054906101000a900460ff1660ff16615b13565b9250611aa0600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548460646012613560565b9150611aeb600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b90508095505050505050919050565b601281565b60186020528060005260406000206000915054906101000a900460ff1681565b6000806000611b2e6001612015565b111515611b3a57600080fd5b339150611b476000612015565b9050680100000000000000008102601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611c6a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6031602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060006015541415611d3457650145f680b000655af3107a4000039350611d6b565b611d45670de0b6b3a7640000615a49565b9250611d5983600560ff1660646012613560565b9150611d6583836135af565b90508093505b50505090565b60035481565b6000806000806000806000806000611d8d6124f0565b111515611d9957600080fd5b339650601960009054906101000a900460ff16158015611df857506000600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1515611e0357600080fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550611e8e42600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135af565b9450611e9d8562015180615af8565b9350611ebb84600260009054906101000a900460ff1660ff16615b13565b9250611ecb868460646012613560565b9150611ed78683613542565b9050611ee560155483613542565b601581905550611f34600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613542565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505090565b6000601654905090565b6000803390508261202e5761202981611621565b612079565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207782611621565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806120f76124f0565b11151561210357600080fd5b339150601960009054906101000a900460ff161580156121625750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411155b151561216d57600080fd5b61217f84670de0b6b3a76400006135af565b905042600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061220e600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613542565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061229a600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826135af565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156123b657600080fd5b816003819055505050565b60008060008060008060155414156123e85764e8d4a51000655af3107a4000019450612428565b6123f9670de0b6b3a7640000615a49565b9350600560146005010160ff169250612416848460646012613560565b91506124228483613542565b90508094505b5050505090565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156124b857600080fd5b8160186000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506124ff816120a0565b91505090565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561259b5780601f106125705761010080835404028352916020019161259b565b820191906000526020600020905b81548152906001019060200180831161257e57829003601f168201915b505050505081565b6000803390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561262d57600080fd5b3391508173ffffffffffffffffffffffffffffffffffffffff166108fc6016549081150290604051600060405180830381858888f19350505050151561267257600080fd5b60006016819055505050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561270757600080fd5b6000601960006101000a81548160ff02191690831515021790555050565b6000806000806000806127366124f0565b11151561274257600080fd5b339350601960009054906101000a900460ff161580156127a15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156127ac57600080fd5b60006127b86001612015565b11156127c7576127c6611b1f565b5b6127d986600560ff1660646012613560565b92506127e586846135af565b91506127f083615a49565b90506127fe601554846135af565b60158190555061284d600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876135af565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128d9600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613542565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560175402601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160175402601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506129e26017546015546801000000000000000084028115156129dc57fe5b04613542565b6017819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515612ae457600080fd5b8160019080519060200190612afa929190615d1c565b505050565b60003390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515612b8857600080fd5b8160009080519060200190612b9e929190615d1c565b505050565b60006001821415612c1557600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061300a565b6002821415612c8557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613009565b6003821415612cf557600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613008565b6004821415612d6557600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613007565b6005821415612dd557600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613006565b6006821415612e4557600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613005565b6007821415612eb557600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613004565b6008821415612f2557601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613003565b6009821415612f9557601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613002565b600a82141561300157601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b5b5b5b5b5b5b5b80905092915050565b60008060008060008060006130266124f0565b11151561303257600080fd5b339550600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561308357600080fd5b86945061308f85615a49565b93506130a384600560ff1660646012613560565b92506130af84846135af565b91506130bd601554866135af565b60158190555061310c600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866135af565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856017540201905080601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600060155411156131e6576131df6017546015546801000000000000000086028115156131d957fe5b04613542565b6017819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b60326020528060005260406000206000915090505481565b600080339150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156132b8576132b781613013565b5b6132c0611b1f565b5050565b60006132d03483610b6a565b50919050565b6000803390506018600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561336057600080fd5b339150823073ffffffffffffffffffffffffffffffffffffffff16311015151561338957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156133c957600080fd5b505050565b6000806000806133de6001612015565b1115156133ea57600080fd5b6133f46000612015565b9250339150680100000000000000008302601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134e5836000610b6a565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561355657fe5b8091505092915050565b600080600060018401600a0a86029150600a6005868481151561357f57fe5b040181151561358a57fe5b049050670de0b6b3a76400008188028115156135a257fe5b0492505050949350505050565b60008282111515156135bd57fe5b818303905092915050565b6000806000670de0b6b3a7640000655af3107a400002915060155464e8d4a5100061363f6136396015548664e8d4a51000600202020260026015540a600264e8d4a510000a02670de0b6b3a76400008a02670de0b6b3a764000064e8d4a5100002600202026002890a010101615b4e565b856135af565b81151561364857fe5b040390508092505050919050565b60008083915085905085601d81905550613677601d54601e60646012613560565b601e8190555061368e601d54601460646012613560565b601f819055506136a5601d54600f60646012613560565b6020819055506136bc601d54600a60646012613560565b6021819055506136d3601d54600560646012613560565b6022819055506136ea601d54600560646012613560565b602381905550613701601d54600560646012613560565b602481905550613718601d54600360646012613560565b60258190555061372f601d54600360646012613560565b602681905550613746601d54600260646012613560565b60278190555084600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061387460086000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601e54613542565b60086000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061392281601e546135af565b905060011515831515141561393e5761393d85836001615b99565b5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16603060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156141e757600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506140bd60086000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601f54613542565b60086000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061416b81601f546135af565b90506001151583151514156141e6576141e5600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836002615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156144f057600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506143c660086000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602054613542565b60086000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614474816020546135af565b90506001151583151514156144ef576144ee600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156147f957600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506146cf60086000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602154613542565b60086000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061477d816021546135af565b90506001151583151514156147f8576147f7600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836004615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614b0257600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506149d860086000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602254613542565b60086000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a86816022546135af565b9050600115158315151415614b0157614b00600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836005615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614e0b57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614ce160086000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602354613542565b60086000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614d8f816023546135af565b9050600115158315151415614e0a57614e09600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836006615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561511457600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614fea60086000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602454613542565b60086000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550615098816024546135af565b905060011515831515141561511357615112600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836007615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561541d57600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506152f360086000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602554613542565b60086000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506153a1816025546135af565b905060011515831515141561541c5761541b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836008615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561572657601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506155fc60086000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602654613542565b60086000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506156aa816026546135af565b905060011515831515141561572557615724601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836009615b99565b5b5b600073ffffffffffffffffffffffffffffffffffffffff16603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515615a2f57601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061590560086000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602754613542565b60086000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506159b3816027546135af565b9050600115158315151415615a2e57615a2d601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600a615b99565b5b5b615a3b60165482613542565b601681905550505050505050565b600080600080671bc16d674ec8000085019250671bc16d674ec80000601554019150671bc16d674ec80000615ae1671bc16d674ec800008503650145f680b000671bc16d674ec8000086811515615a9c57fe5b04650145f680b00002655af3107a40000103026002671bc16d674ec80000876002890a03811515615ac957fe5b04650145f680b00002811515615adb57fe5b046135af565b811515615aea57fe5b049050809350505050919050565b6000808284811515615b0657fe5b0490508091505092915050565b6000806000841415615b285760009150615b47565b8284029050828482811515615b3957fe5b04141515615b4357fe5b8091505b5092915050565b600080600260018401811515615b6057fe5b0490508291505b81811015615b93578091506002818285811515615b8057fe5b0401811515615b8b57fe5b049050615b67565b50919050565b6000603260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550603260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081603160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001018190555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615d5d57805160ff1916838001178555615d8b565b82800160010185558215615d8b579182015b82811115615d8a578251825591602001919060010190615d6f565b5b509050615d989190615d9c565b5090565b615dbe91905b80821115615dba576000816000905550600101615da2565b5090565b905600a165627a7a72305820b6c7f9ffbbbe91f964b767f5e90c14887508f2a67bafdf6a6acb41d6a68535810029
Deployed Bytecode Sourcemap
1250:35843:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7166:30;7181:9;7192:3;7166:14;:30::i;:::-;;1250:35843;15388:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1423:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1423:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16877:499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12647:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17387:437;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21474:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18561:633;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1569:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8503:665;;;;;;;;;;;;;;21339:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15734:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19353:1178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14205:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14786:286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14035:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15160:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17836:691;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19206:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12967:155;;;;;;;;;;;;;;;;;;;;;;;;;;16295:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12803:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14540:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1499:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1499:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13640:201;;;;;;;;;;;;;;12515:120;;;;;;;;;;;;;;10702:1656;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13266:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13134:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22038:1052;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9236:1329;;;;;;;;;;;;;;;;;;;;;;;;;;21412:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8138:292;;;;;;;;;;;;;;6994:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13404:224;;;;;;;;;;;;;;;;;;;;;;;;;;7288:780;;;;;;;;;;;;;;31385:3511;31508:7;31551:24;32006:18;32109:21;32201:19;32305:22;32387:23;32469:12;32540:20;34594:22;31472:17;4686:24;4713:10;4686:37;;4738:15;;;;;;;;;;;:86;;;;;2543:7;4784:17;4759:22;:20;:22::i;:::-;:42;4758:64;;4738:86;4734:823;;;4960:4;4926:38;;:12;:30;4939:16;4926:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:232;;;;;2471:7;5114:17;5066:27;:45;5094:16;5066:45;;;;;;;;;;;;;;;;:65;5065:93;;4926:232;4840:333;;;;;;;;5286:78;5299:27;:45;5327:16;5299:45;;;;;;;;;;;;;;;;5346:17;5286:12;:78::i;:::-;5238:27;:45;5266:16;5238:45;;;;;;;;;;;;;;;:126;;;;31589:10;31551:48;;31648:17;31610:6;:55;;;;31744:45;31761:6;;1827:1;31744:45;;31782:3;31786:2;31744:16;:45::i;:::-;31706:12;:83;;;;31838:44;31851:16;;31869:12;;31838;:44::i;:::-;31800:16;:82;;;;31941:44;31958:6;;1760:2;31941:44;;31978:3;31982:2;31941:16;:44::i;:::-;31903:14;:82;;;;32044:44;32061:6;;1694:1;32044:44;;32081:3;32085:2;32044:16;:44::i;:::-;32006:82;;1694:1;1760:2;1827:1;32147:28;:43;32109:81;;;;32239:45;32256:6;;32263:13;32277:3;32281:2;32239:16;:45::i;:::-;32201:83;;32343:33;32356:6;;32364:11;32343:12;:33::i;:::-;32305:71;;32425:33;32443:14;32425:17;:33::i;:::-;32387:71;;2195:5;32507:10;:22;32469:60;;32578:4;32540:42;;32639;32596:85;;:21;:39;32618:16;32596:39;;;;;;;;;;;;;;;;;;;;;;;;;:85;;;;32593:244;;;32732:21;:39;32754:16;32732:39;;;;;;;;;;;;;;;;;;;;;;;;;32698:73;;32820:5;32786:39;;32593:244;32883:1;32865:15;:19;:82;;;;;32934:12;;32889:42;32902:15;32918:12;;32889;:42::i;:::-;:57;32865:82;32857:91;;;;;;;;33080:42;33065:57;;:11;:57;;;;:134;;;;;33183:16;33168:31;;:11;:31;;;;33065:134;:205;;;;;33252:18;;33216:19;:32;33236:11;33216:32;;;;;;;;;;;;;;;;:54;;33065:205;33003:614;;;33334:76;33353:14;;33368:11;33380:16;33397:12;33334:18;:76::i;:::-;33003:614;;;33559:46;33572:16;;33590:14;;33559:12;:46::i;:::-;33525:16;:80;;;;33003:614;33696:1;33681:12;;:16;33678:711;;;33786:43;33799:12;;33813:15;33786:12;:43::i;:::-;33752:12;:77;;;;34030:12;;2195:5;34004:10;:22;:39;;;;;;;;33968:15;;:76;;;;;;;;;;;34240:12;;2195:5;34214:10;:22;:39;;;;;;;;34195:15;:59;34189:4;:66;34181:4;:75;34147:109;;33678:711;;;34362:15;34328:12;:49;;;;33678:711;34515:68;34528:19;:37;34548:16;34528:37;;;;;;;;;;;;;;;;34567:15;34515:12;:68::i;:::-;34475:19;:37;34495:16;34475:37;;;;;;;;;;;;;;;:108;;;;34680:4;34661:15;34643;;:33;34642:42;34594:91;;34735:15;34696:10;:28;34707:16;34696:28;;;;;;;;;;;;;;;;:54;;;;;;;;;;;34843:11;34784:71;;34800:16;34784:71;;;34818:6;;34826:15;34784:71;;;;;;;;;;;;;;;;;;;;;;;;34873:15;34866:22;;4734:823;;;5520:5;5502:15;;:23;;;;;;;;;;;;;;;;;;31589:10;31551:48;;31648:17;31610:6;:55;;;;31744:45;31761:6;;1827:1;31744:45;;31782:3;31786:2;31744:16;:45::i;:::-;31706:12;:83;;;;31838:44;31851:16;;31869:12;;31838;:44::i;:::-;31800:16;:82;;;;31941:44;31958:6;;1760:2;31941:44;;31978:3;31982:2;31941:16;:44::i;:::-;31903:14;:82;;;;32044:44;32061:6;;1694:1;32044:44;;32081:3;32085:2;32044:16;:44::i;:::-;32006:82;;1694:1;1760:2;1827:1;32147:28;:43;32109:81;;;;32239:45;32256:6;;32263:13;32277:3;32281:2;32239:16;:45::i;:::-;32201:83;;32343:33;32356:6;;32364:11;32343:12;:33::i;:::-;32305:71;;32425:33;32443:14;32425:17;:33::i;:::-;32387:71;;2195:5;32507:10;:22;32469:60;;32578:4;32540:42;;32639;32596:85;;:21;:39;32618:16;32596:39;;;;;;;;;;;;;;;;;;;;;;;;;:85;;;;32593:244;;;32732:21;:39;32754:16;32732:39;;;;;;;;;;;;;;;;;;;;;;;;;32698:73;;32820:5;32786:39;;32593:244;32883:1;32865:15;:19;:82;;;;;32934:12;;32889:42;32902:15;32918:12;;32889;:42::i;:::-;:57;32865:82;32857:91;;;;;;;;33080:42;33065:57;;:11;:57;;;;:134;;;;;33183:16;33168:31;;:11;:31;;;;33065:134;:205;;;;;33252:18;;33216:19;:32;33236:11;33216:32;;;;;;;;;;;;;;;;:54;;33065:205;33003:614;;;33334:76;33353:14;;33368:11;33380:16;33397:12;33334:18;:76::i;:::-;33003:614;;;33559:46;33572:16;;33590:14;;33559:12;:46::i;:::-;33525:16;:80;;;;33003:614;33696:1;33681:12;;:16;33678:711;;;33786:43;33799:12;;33813:15;33786:12;:43::i;:::-;33752:12;:77;;;;34030:12;;2195:5;34004:10;:22;:39;;;;;;;;33968:15;;:76;;;;;;;;;;;34240:12;;2195:5;34214:10;:22;:39;;;;;;;;34195:15;:59;34189:4;:66;34181:4;:75;34147:109;;33678:711;;;34362:15;34328:12;:49;;;;33678:711;34515:68;34528:19;:37;34548:16;34528:37;;;;;;;;;;;;;;;;34567:15;34515:12;:68::i;:::-;34475:19;:37;34495:16;34475:37;;;;;;;;;;;;;;;:108;;;;34680:4;34661:15;34643;;:33;34642:42;34594:91;;34735:15;34696:10;:28;34707:16;34696:28;;;;;;;;;;;;;;;;:54;;;;;;;;;;;34843:11;34784:71;;34800:16;34784:71;;;34818:6;;34826:15;34784:71;;;;;;;;;;;;;;;;;;;;;;;;34873:15;34866:22;;4734:823;31385:3511;;;;;;;;;;;;;;;:::o;15388:264::-;15455:7;2195:5;15603:10;:28;15614:16;15603:28;;;;;;;;;;;;;;;;15561:19;:37;15581:16;15561:37;;;;;;;;;;;;;;;;15521:19;:37;15541:16;15521:37;;;;;;;;;;;;;;;;:77;15502:15;;:97;15493:138;15482:162;;;;;;;;15475:169;;15388:264;;;:::o;1423:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16877:499::-;16956:7;16976:21;17068:19;17172:22;17264:23;1694:1;1760:2;1827:1;17014:28;:43;16976:81;;;;17106:55;17123:16;17140:13;17154:3;17158:2;17106:16;:55::i;:::-;17068:93;;17210:43;17223:16;17241:11;17210:12;:43::i;:::-;17172:81;;17302:33;17320:14;17302:17;:33::i;:::-;17264:71;;17353:15;17346:22;;16877:499;;;;;;;:::o;12647:144::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;12771:12;12733:9;;:50;;;;;;;;;;;;;;;;;;12647:144;;:::o;14371:90::-;14414:7;14441:12;;14434:19;;14371:90;:::o;17387:437::-;17465:7;17534:17;17615:18;17711:22;17510:12;;17493:13;:29;;17485:38;;;;;;;;17572:32;17590:13;17572:17;:32::i;:::-;17534:70;;17653:47;17670:9;1694:1;17653:47;;17693:3;17697:2;17653:16;:47::i;:::-;17615:85;;17749:35;17762:9;17773:10;17749:12;:35::i;:::-;17711:73;;17802:14;17795:21;;17387:437;;;;;;:::o;4006:35::-;;;;;;;;;;;;;:::o;21474:211::-;21557:7;21565:4;21591:7;:22;21599:13;21591:22;;;;;;;;;;;;;;;:30;21614:6;21591:30;;;;;;;;;;;:45;;;;;;;;;;;;21637:7;:22;21645:13;21637:22;;;;;;;;;;;;;;;:30;21660:6;21637:30;;;;;;;;;;;:39;;;21583:94;;;;21474:211;;;;;:::o;18561:633::-;18635:7;18654:16;18752:17;18852:18;18935:17;19057:20;18692:49;18705:3;18710:12;:30;18723:16;18710:30;;;;;;;;;;;;;;;;18692:12;:49::i;:::-;18654:87;;18790:29;18803:8;18813:5;18790:12;:29::i;:::-;18752:67;;18890:34;18903:9;18914;;;;;;;;;;;18890:34;;:12;:34::i;:::-;18852:72;;18973:73;18990:19;:37;19010:16;18990:37;;;;;;;;;;;;;;;;19028:10;19039:3;19043:2;18973:16;:73::i;:::-;18935:111;;19095:61;19108:19;:37;19128:16;19108:37;;;;;;;;;;;;;;;;19146:9;19095:12;:61::i;:::-;19057:99;;19174:12;19167:19;;18561:633;;;;;;;;:::o;1569:60::-;1627:2;1569:60;:::o;3953:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;8503:665::-;8577:24;8636:18;4401:1;4381:17;4393:4;4381:11;:17::i;:::-;:21;4373:30;;;;;;;;8615:10;8577:48;;8674:18;8686:5;8674:11;:18::i;:::-;8636:56;;2195:5;8825:10;:22;8775:10;:28;8786:16;8775:28;;;;;;;;;;;;;;;;:73;;;;;;;;;;;8925:16;:34;8942:16;8925:34;;;;;;;;;;;;;;;;8886:73;;;;9008:1;8970:16;:34;8987:16;8970:34;;;;;;;;;;;;;;;:39;;;;9049:16;:25;;:37;9075:10;9049:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9131:16;9120:40;;;9149:10;9120:40;;;;;;;;;;;;;;;;;;8503:665;;:::o;21339:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15734:478::-;15775:7;15920:17;15992:18;16088:22;15814:1;15798:12;;:17;15795:410;;;2115:15;1959:12;15838:49;15831:56;;;;15795:410;15954:23;15972:4;15954:17;:23::i;:::-;15920:57;;16026:47;16043:9;1694:1;16026:47;;16066:3;16070:2;16026:16;:47::i;:::-;15992:81;;16122:35;16135:9;16146:10;16122:12;:35::i;:::-;16088:69;;16179:14;16172:21;;15734:478;;;;;:::o;2258:62::-;;;;:::o;19353:1178::-;19409:4;19425:24;19609:23;19695:16;19793:17;19871:18;19954:17;20054:20;4273:1;4260:10;:8;:10::i;:::-;:14;4252:23;;;;;;;;19463:10;19425:48;;19544:15;;;;;;;;;;;19543:16;:54;;;;;19596:1;19563:12;:30;19576:16;19563:30;;;;;;;;;;;;;;;;:34;19543:54;19535:63;;;;;;;;19647:19;:37;19667:16;19647:37;;;;;;;;;;;;;;;;19609:75;;19733:49;19746:3;19751:12;:30;19764:16;19751:30;;;;;;;;;;;;;;;;19733:12;:49::i;:::-;19695:87;;19831:29;19844:8;19854:5;19831:12;:29::i;:::-;19793:67;;19909:34;19922:9;19933;;;;;;;;;;;19909:34;;:12;:34::i;:::-;19871:72;;19992:51;20009:15;20025:10;20036:3;20040:2;19992:16;:51::i;:::-;19954:89;;20092:39;20105:15;20121:9;20092:12;:39::i;:::-;20054:77;;20225:37;20238:12;;20252:9;20225:12;:37::i;:::-;20187:12;:75;;;;20346:65;20359:19;:37;20379:16;20359:37;;;;;;;;;;;;;;;;20398:12;20346;:65::i;:::-;20306:19;:37;20326:16;20306:37;;;;;;;;;;;;;;;:105;;;;20462:1;20422:19;:37;20442:16;20422:37;;;;;;;;;;;;;;;:41;;;;20512:1;20474:12;:30;20487:16;20474:30;;;;;;;;;;;;;;;:39;;;;19353:1178;;;;;;;;:::o;14205:101::-;14258:4;14282:16;;14275:23;;14205:101;:::o;14786:286::-;14855:7;14875:24;14913:10;14875:48;;14941:21;:122;;15034:29;15046:16;15034:11;:29::i;:::-;14941:122;;;14997:16;:34;15014:16;14997:34;;;;;;;;;;;;;;;;14965:29;14977:16;14965:11;:29::i;:::-;:66;14941:122;14934:129;;14786:286;;;;:::o;14035:96::-;14087:4;14111;:12;;;14104:19;;14035:96;:::o;15160:137::-;15225:7;15252:19;:37;15272:16;15252:37;;;;;;;;;;;;;;;;15245:44;;15160:137;;;:::o;17836:691::-;17914:4;17930:24;18136:33;4273:1;4260:10;:8;:10::i;:::-;:14;4252:23;;;;;;;;17968:10;17930:48;;18049:15;;;;;;;;;;;18048:16;:76;;;;;18087:19;:37;18107:16;18087:37;;;;;;;;;;;;;;;;18068:15;:56;;18048:76;18040:85;;;;;;;;18174:35;18187:15;18204:4;18174:12;:35::i;:::-;18136:73;;18258:3;18220:12;:30;18233:16;18220:30;;;;;;;;;;;;;;;:41;;;;18312:78;18325:19;:37;18345:16;18325:37;;;;;;;;;;;;;;;;18364:25;18312:12;:78::i;:::-;18272:19;:37;18292:16;18272:37;;;;;;;;;;;;;;;:118;;;;18441:78;18454:19;:37;18474:16;18454:37;;;;;;;;;;;;;;;;18493:25;18441:12;:78::i;:::-;18401:19;:37;18421:16;18401:37;;;;;;;;;;;;;;;:118;;;;17836:691;;;;;:::o;19206:135::-;19277:7;19303:12;:30;19316:16;19303:30;;;;;;;;;;;;;;;;19296:37;;19206:135;;;:::o;12967:155::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;13099:15;13061:18;:53;;;;12967:155;;:::o;16295:571::-;16335:7;16480:17;16552:21;16644:19;16741:22;16374:1;16358:12;;:17;16355:504;;;2036:14;1959:12;16398:49;16391:56;;;;16355:504;16514:23;16532:4;16514:17;:23::i;:::-;16480:57;;1694:1;1760:2;1827:1;16586:28;:43;16552:77;;;;16678:48;16695:9;16705:13;16719:3;16723:2;16678:16;:48::i;:::-;16644:82;;16775:36;16788:9;16799:11;16775:12;:36::i;:::-;16741:70;;16833:14;16826:21;;16295:571;;;;;;:::o;12803:152::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;12940:7;12902:14;:27;12917:11;12902:27;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;12803:152;;;:::o;14540:161::-;14580:7;14600:24;14638:10;14600:48;;14666:27;14676:16;14666:9;:27::i;:::-;14659:34;;14540:161;;:::o;1499:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13640:201::-;13708:21;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;13734:10;13708:36;;13755:13;:22;;:40;13778:16;;13755:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13832:1;13806:16;:27;;;;13640:201;;:::o;12515:120::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;12622:5;12584:15;;:43;;;;;;;;;;;;;;;;;;12515:120;:::o;10702:1656::-;10797:4;10814:24;11226:17;11328:20;11417:18;4273:1;4260:10;:8;:10::i;:::-;:14;4252:23;;;;;;;;10852:10;10814:48;;10933:15;;;;;;;;;;;10932:16;:76;;;;;10971:19;:37;10991:16;10971:37;;;;;;;;;;;;;;;;10952:15;:56;;10932:76;10924:85;;;;;;;;11096:1;11076:17;11088:4;11076:11;:17::i;:::-;:21;11073:36;;;11099:10;:8;:10::i;:::-;11073:36;11264:53;11281:15;1694:1;11264:53;;11310:3;11314:2;11264:16;:53::i;:::-;11226:91;;11366:40;11379:15;11396:9;11366:12;:40::i;:::-;11328:78;;11455:28;11473:9;11455:17;:28::i;:::-;11417:66;;11564:37;11577:12;;11591:9;11564:12;:37::i;:::-;11526:12;:75;;;;11680:68;11693:19;:37;11713:16;11693:37;;;;;;;;;;;;;;;;11732:15;11680:12;:68::i;:::-;11640:19;:37;11660:16;11640:37;;;;;;;;;;;;;;;:108;;;;11797:59;11810:19;:31;11830:10;11810:31;;;;;;;;;;;;;;;;11843:12;11797;:59::i;:::-;11759:19;:31;11779:10;11759:31;;;;;;;;;;;;;;;:97;;;;11971:15;11953;;:33;11904:10;:28;11915:16;11904:28;;;;;;;;;;;;;;;;:83;;;;;;;;;;;12065:12;12047:15;;:30;11998:10;:22;12009:10;11998:22;;;;;;;;;;;;;;;;:80;;;;;;;;;;;12172:70;12185:15;;12229:12;;2195:5;12203:10;:22;12202:39;;;;;;;;12172:12;:70::i;:::-;12134:15;:108;;;;12303:10;12276:52;;12285:16;12276:52;;;12315:12;12276:52;;;;;;;;;;;;;;;;;;12346:4;12339:11;;10702:1656;;;;;;;;:::o;13266:126::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;13377:7;13339:6;:45;;;;;;;;;;;;:::i;:::-;;13266:126;;:::o;13134:120::-;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;13241:5;13203:4;:43;;;;;;;;;;;;:::i;:::-;;13134:120;;:::o;22038:1052::-;22113:10;22149:1;22139:6;:11;22136:926;;;22172:21;:39;22194:16;22172:39;;;;;;;;;;;;;;;;;;;;;;;;;22167:44;;22136:926;;;22242:1;22232:6;:11;22229:833;;;22265:21;:39;22287:16;22265:39;;;;;;;;;;;;;;;;;;;;;;;;;22260:44;;22229:833;;;22335:1;22325:6;:11;22322:740;;;22358:21;:39;22380:16;22358:39;;;;;;;;;;;;;;;;;;;;;;;;;22353:44;;22322:740;;;22428:1;22418:6;:11;22415:647;;;22451:21;:39;22473:16;22451:39;;;;;;;;;;;;;;;;;;;;;;;;;22446:44;;22415:647;;;22521:1;22511:6;:11;22508:554;;;22544:21;:39;22566:16;22544:39;;;;;;;;;;;;;;;;;;;;;;;;;22539:44;;22508:554;;;22614:1;22604:6;:11;22601:461;;;22637:21;:39;22659:16;22637:39;;;;;;;;;;;;;;;;;;;;;;;;;22632:44;;22601:461;;;22707:1;22697:6;:11;22694:368;;;22730:21;:39;22752:16;22730:39;;;;;;;;;;;;;;;;;;;;;;;;;22725:44;;22694:368;;;22800:1;22790:6;:11;22787:275;;;22823:21;:39;22845:16;22823:39;;;;;;;;;;;;;;;;;;;;;;;;;22818:44;;22787:275;;;22893:1;22883:6;:11;22880:182;;;22916:21;:39;22938:16;22916:39;;;;;;;;;;;;;;;;;;;;;;;;;22911:44;;22880:182;;;22986:2;22976:6;:12;22973:89;;;23010:22;:40;23033:16;23010:40;;;;;;;;;;;;;;;;;;;;;;;;;23005:45;;22973:89;22880:182;22787:275;22694:368;22601:461;22508:554;22415:647;22322:740;22229:833;22136:926;23080:2;23073:9;;22038:1052;;;;:::o;9236:1329::-;9310:24;9445:15;9509:17;9584:18;9680:22;10029;4273:1;4260:10;:8;:10::i;:::-;:14;4252:23;;;;;;;;9348:10;9310:48;;9396:19;:37;9416:16;9396:37;;;;;;;;;;;;;;;;9377:15;:56;;9369:65;;;;;;;;9483:15;9445:53;;9547:26;9565:7;9547:17;:26::i;:::-;9509:64;;9622:47;9639:9;1694:1;9622:47;;9662:3;9666:2;9622:16;:47::i;:::-;9584:85;;9718:35;9731:9;9742:10;9718:12;:35::i;:::-;9680:73;;9835:35;9848:12;;9862:7;9835:12;:35::i;:::-;9797:12;:73;;;;9921:60;9934:19;:37;9954:16;9934:37;;;;;;;;;;;;;;;;9973:7;9921:12;:60::i;:::-;9881:19;:37;9901:16;9881:37;;;;;;;;;;;;;;;:100;;;;2195:5;10106:14;:26;10095:7;10077:15;;:25;:56;10029:105;;10184:15;10145:10;:28;10156:16;10145:28;;;;;;;;;;;;;;;;:54;;;;;;;;;;;10279:1;10264:12;;:16;10260:210;;;10388:70;10401:15;;10445:12;;2195:5;10419:10;:22;10418:39;;;;;;;;10388:12;:70::i;:::-;10354:15;:104;;;;10260:210;10515:16;10503:54;;;10533:7;10542:14;10503:54;;;;;;;;;;;;;;;;;;;;;;;;9236:1329;;;;;;;:::o;21412:49::-;;;;;;;;;;;;;;;;;:::o;8138:292::-;8227:24;8286:15;8265:10;8227:48;;8324:19;:37;8344:16;8324:37;;;;;;;;;;;;;;;;8286:75;;8385:1;8375:7;:11;8372:29;;;8388:13;8393:7;8388:4;:13::i;:::-;8372:29;8412:10;:8;:10::i;:::-;8138:292;;:::o;6994:123::-;7051:7;7071:38;7086:9;7097:11;7071:14;:38::i;:::-;;6994:123;;;:::o;13404:224::-;13483:21;4493:24;4520:10;4493:37;;4549:14;:43;4574:16;4564:27;;;;;;;;;;;;;;;;;;;;;;;;4549:43;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:52;;;;;;;;13507:10;13483:34;;13552:16;13536:4;:12;;;:32;;13528:41;;;;;;;;13580:13;:22;;:40;13603:16;13580:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13404:224;;;:::o;7288:780::-;7367:18;7519:24;7904:15;4401:1;4381:17;4393:4;4381:11;:17::i;:::-;:21;4373:30;;;;;;;;7405:18;7417:5;7405:11;:18::i;:::-;7367:56;;7557:10;7519:48;;2195:5;7628:10;:22;7578:10;:28;7589:16;7578:28;;;;;;;;;;;;;;;;:73;;;;;;;;;;;7733:16;:34;7750:16;7733:34;;;;;;;;;;;;;;;;7694:73;;;;7816:1;7778:16;:34;7795:16;7778:34;;;;;;;;;;;;;;;:39;;;;7942:31;7957:10;7969:3;7942:14;:31::i;:::-;7904:69;;8022:16;8007:53;;;8040:10;8052:7;8007:53;;;;;;;;;;;;;;;;;;;;;;;;7288:780;;;:::o;1096:147::-;1154:7;1174:9;1190:1;1186;:5;1174:17;;1214:1;1209;:6;;1202:14;;;;;;1234:1;1227:8;;1096:147;;;;;:::o;147:306::-;248:13;274:15;335:14;322:1;312:9;:11;305:2;:19;293:9;:31;274:50;;388:2;383:1;368:11;355:10;:24;;;;;;;;354:30;353:37;;;;;;;;335:55;;425:19;415:9;409:5;:15;:35;;;;;;;;401:44;;147:306;;;;;;;;:::o;967:123::-;1025:7;1057:1;1052;:6;;1045:14;;;;;;1081:1;1077;:5;1070:12;;967:123;;;;:::o;35192:919::-;35260:7;35280:26;35354:23;35339:4;1959:12;35318:25;35280:63;;36045:12;;2036:14;35437:555;35473:457;35890:12;;35871:18;2036:14;35844:1;:26;:45;:58;35779:1;35765:12;;:15;35761:1;2036:14;35735:27;35734:47;35666:4;35654:9;:16;35647:4;2036:14;35622:29;35619:1;:33;:52;35555:1;35535:18;:21;35534:138;:248;:369;35473:4;:457::i;:::-;35955:18;35437:12;:555::i;:::-;35418:614;;;;;;;;35403:655;35354:704;;36088:15;36081:22;;35192:919;;;;;:::o;23102:8275::-;23234:24;23286:25;23268:7;23234:41;;23320:17;23286:51;;23382:17;23348:14;:51;;;;23454:42;23471:14;;23486:2;23489:3;23493:2;23454:16;:42::i;:::-;23420:8;:76;;;;23541:42;23558:14;;23573:2;23576:3;23580:2;23541:16;:42::i;:::-;23507:8;:76;;;;23628:42;23645:14;;23660:2;23663:3;23667:2;23628:16;:42::i;:::-;23594:8;:76;;;;23715:42;23732:14;;23747:2;23750:3;23754:2;23715:16;:42::i;:::-;23681:8;:76;;;;23802:41;23819:14;;23834:1;23836:3;23840:2;23802:16;:41::i;:::-;23768:8;:75;;;;23888:41;23905:14;;23920:1;23922:3;23926:2;23888:16;:41::i;:::-;23854:8;:75;;;;23974:41;23991:14;;24006:1;24008:3;24012:2;23974:16;:41::i;:::-;23940:8;:75;;;;24060:41;24077:14;;24092:1;24094:3;24098:2;24060:16;:41::i;:::-;24026:8;:75;;;;24146:41;24163:14;;24178:1;24180:3;24184:2;24146:16;:41::i;:::-;24112:8;:75;;;;24232:41;24249:14;;24264:1;24266:3;24270:2;24232:16;:41::i;:::-;24198:9;:75;;;;24376:11;24314:21;:39;24336:16;24314:39;;;;;;;;;;;;;;;;:73;;;;;;;;;;;;;;;;;;24460:81;24473:16;:57;24490:21;:39;24512:16;24490:39;;;;;;;;;;;;;;;;;;;;;;;;;24473:57;;;;;;;;;;;;;;;;24532:8;;24460:12;:81::i;:::-;24398:16;:57;24415:21;:39;24437:16;24415:39;;;;;;;;;;;;;;;;;;;;;;;;;24398:57;;;;;;;;;;;;;;;:143;;;;24614:41;24627:17;24646:8;;24614:12;:41::i;:::-;24552:103;;24685:4;24669:20;;:12;:20;;;24666:100;;;24706:48;24721:11;24734:16;24752:1;24706:14;:48::i;:::-;24666:100;24820:21;:34;24842:11;24820:34;;;;;;;;;;;;;;;;;;;;;;;;;24786:6;;:68;;;;;;;;;;;;;;;;;;24899:21;:34;24921:11;24899:34;;;;;;;;;;;;;;;;;;;;;;;;;24865:6;;:68;;;;;;;;;;;;;;;;;;24978:21;:34;25000:11;24978:34;;;;;;;;;;;;;;;;;;;;;;;;;24944:6;;:68;;;;;;;;;;;;;;;;;;25057:21;:34;25079:11;25057:34;;;;;;;;;;;;;;;;;;;;;;;;;25023:6;;:68;;;;;;;;;;;;;;;;;;25136:21;:34;25158:11;25136:34;;;;;;;;;;;;;;;;;;;;;;;;;25102:6;;:68;;;;;;;;;;;;;;;;;;25215:21;:34;25237:11;25215:34;;;;;;;;;;;;;;;;;;;;;;;;;25181:6;;:68;;;;;;;;;;;;;;;;;;25294:21;:34;25316:11;25294:34;;;;;;;;;;;;;;;;;;;;;;;;;25260:6;;:68;;;;;;;;;;;;;;;;;;25373:21;:34;25395:11;25373:34;;;;;;;;;;;;;;;;;;;;;;;;;25339:6;;:68;;;;;;;;;;;;;;;;;;25452:21;:34;25474:11;25452:34;;;;;;;;;;;;;;;;;;;;;;;;;25418:7;;:68;;;;;;;;;;;;;;;;;;25540:42;25530:52;;:6;;;;;;;;;;;:52;;;;25527:601;;;25661:21;:34;25683:11;25661:34;;;;;;;;;;;;;;;;;;;;;;;;;25599:21;:39;25621:16;25599:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;25772:81;25785:16;:57;25802:21;:39;25824:16;25802:39;;;;;;;;;;;;;;;;;;;;;;;;;25785:57;;;;;;;;;;;;;;;;25844:8;;25772:12;:81::i;:::-;25710:16;:57;25727:21;:39;25749:16;25727:39;;;;;;;;;;;;;;;;;;;;;;;;;25710:57;;;;;;;;;;;;;;;:143;;;;25930:41;25943:17;25962:8;;25930:12;:41::i;:::-;25868:103;;26005:4;25989:20;;:12;:20;;;25986:131;;;26030:71;26045:21;:34;26067:11;26045:34;;;;;;;;;;;;;;;;;;;;;;;;;26081:16;26099:1;26030:14;:71::i;:::-;25986:131;25527:601;26181:42;26171:52;;:6;;;;;;;;;;;:52;;;;26168:601;;;26302:21;:34;26324:11;26302:34;;;;;;;;;;;;;;;;;;;;;;;;;26240:21;:39;26262:16;26240:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;26413:81;26426:16;:57;26443:21;:39;26465:16;26443:39;;;;;;;;;;;;;;;;;;;;;;;;;26426:57;;;;;;;;;;;;;;;;26485:8;;26413:12;:81::i;:::-;26351:16;:57;26368:21;:39;26390:16;26368:39;;;;;;;;;;;;;;;;;;;;;;;;;26351:57;;;;;;;;;;;;;;;:143;;;;26571:41;26584:17;26603:8;;26571:12;:41::i;:::-;26509:103;;26646:4;26630:20;;:12;:20;;;26627:131;;;26671:71;26686:21;:34;26708:11;26686:34;;;;;;;;;;;;;;;;;;;;;;;;;26722:16;26740:1;26671:14;:71::i;:::-;26627:131;26168:601;26822:42;26812:52;;:6;;;;;;;;;;;:52;;;;26809:601;;;26943:21;:34;26965:11;26943:34;;;;;;;;;;;;;;;;;;;;;;;;;26881:21;:39;26903:16;26881:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;27054:81;27067:16;:57;27084:21;:39;27106:16;27084:39;;;;;;;;;;;;;;;;;;;;;;;;;27067:57;;;;;;;;;;;;;;;;27126:8;;27054:12;:81::i;:::-;26992:16;:57;27009:21;:39;27031:16;27009:39;;;;;;;;;;;;;;;;;;;;;;;;;26992:57;;;;;;;;;;;;;;;:143;;;;27212:41;27225:17;27244:8;;27212:12;:41::i;:::-;27150:103;;27287:4;27271:20;;:12;:20;;;27268:131;;;27312:71;27327:21;:34;27349:11;27327:34;;;;;;;;;;;;;;;;;;;;;;;;;27363:16;27381:1;27312:14;:71::i;:::-;27268:131;26809:601;27463:42;27453:52;;:6;;;;;;;;;;;:52;;;;27450:601;;;27584:21;:34;27606:11;27584:34;;;;;;;;;;;;;;;;;;;;;;;;;27522:21;:39;27544:16;27522:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;27695:81;27708:16;:57;27725:21;:39;27747:16;27725:39;;;;;;;;;;;;;;;;;;;;;;;;;27708:57;;;;;;;;;;;;;;;;27767:8;;27695:12;:81::i;:::-;27633:16;:57;27650:21;:39;27672:16;27650:39;;;;;;;;;;;;;;;;;;;;;;;;;27633:57;;;;;;;;;;;;;;;:143;;;;27853:41;27866:17;27885:8;;27853:12;:41::i;:::-;27791:103;;27928:4;27912:20;;:12;:20;;;27909:131;;;27953:71;27968:21;:34;27990:11;27968:34;;;;;;;;;;;;;;;;;;;;;;;;;28004:16;28022:1;27953:14;:71::i;:::-;27909:131;27450:601;28104:42;28094:52;;:6;;;;;;;;;;;:52;;;;28091:601;;;28225:21;:34;28247:11;28225:34;;;;;;;;;;;;;;;;;;;;;;;;;28163:21;:39;28185:16;28163:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;28336:81;28349:16;:57;28366:21;:39;28388:16;28366:39;;;;;;;;;;;;;;;;;;;;;;;;;28349:57;;;;;;;;;;;;;;;;28408:8;;28336:12;:81::i;:::-;28274:16;:57;28291:21;:39;28313:16;28291:39;;;;;;;;;;;;;;;;;;;;;;;;;28274:57;;;;;;;;;;;;;;;:143;;;;28494:41;28507:17;28526:8;;28494:12;:41::i;:::-;28432:103;;28569:4;28553:20;;:12;:20;;;28550:131;;;28594:71;28609:21;:34;28631:11;28609:34;;;;;;;;;;;;;;;;;;;;;;;;;28645:16;28663:1;28594:14;:71::i;:::-;28550:131;28091:601;28745:42;28735:52;;:6;;;;;;;;;;;:52;;;;28732:601;;;28866:21;:34;28888:11;28866:34;;;;;;;;;;;;;;;;;;;;;;;;;28804:21;:39;28826:16;28804:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;28977:81;28990:16;:57;29007:21;:39;29029:16;29007:39;;;;;;;;;;;;;;;;;;;;;;;;;28990:57;;;;;;;;;;;;;;;;29049:8;;28977:12;:81::i;:::-;28915:16;:57;28932:21;:39;28954:16;28932:39;;;;;;;;;;;;;;;;;;;;;;;;;28915:57;;;;;;;;;;;;;;;:143;;;;29135:41;29148:17;29167:8;;29135:12;:41::i;:::-;29073:103;;29210:4;29194:20;;:12;:20;;;29191:131;;;29235:71;29250:21;:34;29272:11;29250:34;;;;;;;;;;;;;;;;;;;;;;;;;29286:16;29304:1;29235:14;:71::i;:::-;29191:131;28732:601;29386:42;29376:52;;:6;;;;;;;;;;;:52;;;;29373:601;;;29507:21;:34;29529:11;29507:34;;;;;;;;;;;;;;;;;;;;;;;;;29445:21;:39;29467:16;29445:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;29618:81;29631:16;:57;29648:21;:39;29670:16;29648:39;;;;;;;;;;;;;;;;;;;;;;;;;29631:57;;;;;;;;;;;;;;;;29690:8;;29618:12;:81::i;:::-;29556:16;:57;29573:21;:39;29595:16;29573:39;;;;;;;;;;;;;;;;;;;;;;;;;29556:57;;;;;;;;;;;;;;;:143;;;;29776:41;29789:17;29808:8;;29776:12;:41::i;:::-;29714:103;;29851:4;29835:20;;:12;:20;;;29832:131;;;29876:71;29891:21;:34;29913:11;29891:34;;;;;;;;;;;;;;;;;;;;;;;;;29927:16;29945:1;29876:14;:71::i;:::-;29832:131;29373:601;30027:42;30017:52;;:6;;;;;;;;;;;:52;;;;30014:601;;;30148:21;:34;30170:11;30148:34;;;;;;;;;;;;;;;;;;;;;;;;;30086:21;:39;30108:16;30086:39;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;30259:81;30272:16;:57;30289:21;:39;30311:16;30289:39;;;;;;;;;;;;;;;;;;;;;;;;;30272:57;;;;;;;;;;;;;;;;30331:8;;30259:12;:81::i;:::-;30197:16;:57;30214:21;:39;30236:16;30214:39;;;;;;;;;;;;;;;;;;;;;;;;;30197:57;;;;;;;;;;;;;;;:143;;;;30417:41;30430:17;30449:8;;30417:12;:41::i;:::-;30355:103;;30492:4;30476:20;;:12;:20;;;30473:131;;;30517:71;30532:21;:34;30554:11;30532:34;;;;;;;;;;;;;;;;;;;;;;;;;30568:16;30586:1;30517:14;:71::i;:::-;30473:131;30014:601;30670:42;30659:53;;:7;;;;;;;;;;;:53;;;;30656:606;;;30791:21;:34;30813:11;30791:34;;;;;;;;;;;;;;;;;;;;;;;;;30729:22;:40;30752:16;30729:40;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;30902:83;30915:16;:58;30932:22;:40;30955:16;30932:40;;;;;;;;;;;;;;;;;;;;;;;;;30915:58;;;;;;;;;;;;;;;;30975:9;;30902:12;:83::i;:::-;30840:16;:58;30857:22;:40;30880:16;30857:40;;;;;;;;;;;;;;;;;;;;;;;;;30840:58;;;;;;;;;;;;;;;:145;;;;31062:42;31075:17;31094:9;;31062:12;:42::i;:::-;31000:104;;31138:4;31122:20;;:12;:20;;;31119:132;;;31163:72;31178:21;:34;31200:11;31178:34;;;;;;;;;;;;;;;;;;;;;;;;;31214:16;31232:2;31163:14;:72::i;:::-;31119:132;30656:606;31320:49;31333:16;;31351:17;31320:12;:49::i;:::-;31282:16;:87;;;;23102:8275;;;;;;:::o;36178:696::-;36244:7;36264:15;36329:20;36399:22;36313:4;36303:7;:14;36264:54;;36383:4;36368:12;;:19;36329:59;;36829:4;36461:357;36724:4;36714:7;:14;2115:15;36633:4;36620:12;:17;;;;;;;;2115:15;36594:44;1959:12;36573:66;36542:147;36515:214;36802:1;36795:4;36786:7;36784:1;36775:7;:10;:18;36774:25;;;;;;;;2115:15;36750:50;36749:54;;;;;;;;36461:12;:357::i;:::-;:372;;;;;;;;36399:435;;36852:14;36845:21;;36178:696;;;;;;:::o;673:288::-;731:7;830:9;846:1;842;:5;;;;;;;;830:17;;952:1;945:8;;673:288;;;;;:::o;459:208::-;517:7;594:9;546:1;541;:6;537:47;;;571:1;564:8;;;;537:47;610:1;606;:5;594:17;;638:1;633;629;:5;;;;;;;;:10;622:18;;;;;;658:1;651:8;;459:208;;;;;;:::o;36886:198::-;36931:6;36950;36969:1;36964;36960;:5;36959:11;;;;;;;;36950:20;;36985:1;36981:5;;36997:80;37008:1;37004;:5;36997:80;;;37030:1;37026:5;;37064:1;37059;37055;37051;:5;;;;;;;;:9;37050:15;;;;;;;;37046:19;;36997:80;;;36886:198;;;;:::o;21697:333::-;21845:11;21803:14;:29;21818:13;21803:29;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;21859:14;:29;21874:13;21859:29;;;;;;;;;;;;;;;;21845:43;;21947:14;21899:7;:22;21907:13;21899:22;;;;;;;;;;;;;;;:30;21922:6;21899:30;;;;;;;;;;;:45;;;:62;;;;;;;;;;;;;;;;;;22014:8;21972:7;:22;21980:13;21972:22;;;;;;;;;;;;;;;:30;21995:6;21972:30;;;;;;;;;;;:39;;:50;;;;21697:333;;;;:::o;1250:35843::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://b6c7f9ffbbbe91f964b767f5e90c14887508f2a67bafdf6a6acb41d6a6853581
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,287.77 | 0.00075084 | $2.47 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.