ETH Price: $3,973.91 (+3.36%)

Token

ERC-20: Vether (VETH)
 

Overview

Max Total Supply

1,000,000 VETH

Holders

116

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
f1hamilton.eth
Balance
12,498.904873495955221937 VETH

Value
$0.00
0xae1a1cdb13ec86506831531d9e52456b2c0eb625
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vether3

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-29
*/

pragma solidity 0.6.4;
//ERC20 Interface
interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address, uint) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address, uint) external returns (bool);
    function transferFrom(address, address, uint) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
interface VETH {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint);
    function totalSupply() external view returns (uint);
    function genesis() external view returns (uint);
    function currentEra() external view returns (uint);
    function currentDay() external view returns (uint);
    function emission() external view returns (uint);
    function daysPerEra() external view returns (uint);
    function secondsPerDay() external view returns (uint);
    function nextDayTime() external view returns (uint);
    function totalBurnt() external view returns (uint);
    function totalFees() external view returns (uint);
    function burnAddress() external view returns (address payable);
    function upgradeHeight() external view returns (uint);
    function mapEraDay_Units(uint, uint) external view returns (uint);
    function mapPreviousOwnership(address payable) external view returns (uint);
}
library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
}
    //======================================VETHER=========================================//
contract Vether3 is ERC20 {
    using SafeMath for uint;
    // ERC-20 Parameters
    string public name; string public symbol;
    uint public decimals; uint public override totalSupply;
    // ERC-20 Mappings
    mapping(address => uint) private _balances;
    mapping(address => mapping(address => uint)) private _allowances;
    // Public Parameters
    uint coin = 10**18; uint public emission;
    uint public currentEra; uint public currentDay;
    uint public daysPerEra; uint public secondsPerDay;
    uint public upgradeHeight; uint public upgradedAmount;
    uint public genesis; uint public nextEraTime; uint public nextDayTime;
    address payable public burnAddress; address public vether1; address public vether2; address deployer;
    uint public totalFees; uint public totalBurnt; uint public totalEmitted;
    address[] public holderArray; uint public holders;
    address[] public excludedArray; uint public excludedCount;
    // Public Mappings
    mapping(uint=>uint) public mapEra_Emission;                                             // Era->Emission
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_MemberCount;                        // Era,Days->MemberCount
    mapping(uint=>mapping(uint=>address[])) public mapEraDay_Members;                       // Era,Days->Members
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_Units;                              // Era,Days->Units
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_UnitsRemaining;                     // Era,Days->TotalUnits
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_EmissionRemaining;                  // Era,Days->Emission
    mapping(uint=>mapping(uint=>mapping(address=>uint))) public mapEraDay_MemberUnits;      // Era,Days,Member->Units
    mapping(address=>mapping(uint=>uint[])) public mapMemberEra_Days;                       // Member,Era->Days[]
    mapping(address=>uint) public mapPreviousOwnership;                                     // Map previous owners
    mapping(address=>bool) public mapHolder;                                                // Vether Holder
    mapping(address=>bool) public mapAddress_Excluded;                                      // Address->Excluded
    mapping(address=>uint) public mapAddress_BlockChange;                                   // Address->BlockHeight Change
    // Events
    event NewEra(uint era, uint emission, uint time, uint totalBurnt);
    event NewDay(uint era, uint day, uint time, uint previousDayTotal, uint previousDayMembers);
    event Burn(address indexed payer, address indexed member, uint era, uint day, uint units, uint dailyTotal);
    event Withdrawal(address indexed caller, address indexed member, uint era, uint day, uint value, uint vetherRemaining);

    //=====================================CREATION=========================================//
    // Constructor
    constructor() public {
        vether1 = 0x31Bb711de2e457066c6281f231fb473FC5c2afd3;                               // First Vether
        vether2 = 0x01217729940055011F17BeFE6270e6E59B7d0337;                               // Second Vether
        upgradeHeight = 50;                                                                 // Height at which to upgrade
        name = VETH(vether2).name(); symbol = VETH(vether2).symbol();
        decimals = VETH(vether2).decimals(); totalSupply = VETH(vether2).totalSupply();
        genesis = VETH(vether2).genesis(); emission = VETH(vether2).emission(); 
        currentEra = VETH(vether2).currentEra(); currentDay = upgradeHeight;                // Begin at Upgrade Height
        daysPerEra = VETH(vether2).daysPerEra(); secondsPerDay = VETH(vether2).secondsPerDay();
        totalBurnt = VETH(vether2).totalBurnt(); totalFees = VETH(vether2).totalFees();
        totalEmitted = (upgradeHeight-1)*emission;
        burnAddress = VETH(vether2).burnAddress(); deployer = msg.sender;
        _balances[address(this)] = totalSupply; 
        emit Transfer(burnAddress, address(this), totalSupply);
        nextEraTime = genesis + (secondsPerDay * daysPerEra);
        nextDayTime = VETH(vether2).nextDayTime() + (secondsPerDay * (upgradeHeight - VETH(vether2).currentDay())); 
        mapAddress_Excluded[address(this)] = true;                                          
        excludedArray.push(address(this)); excludedCount =1;                               
        mapAddress_Excluded[burnAddress] = true;
        excludedArray.push(burnAddress); excludedCount +=1; 
        mapEra_Emission[currentEra] = emission; 
        mapEraDay_EmissionRemaining[currentEra][currentDay] = emission; 
        _setMappings();                                                                  // Map historical units
    }
    function _setMappings() internal {
        uint upgradeHeight1 = VETH(vether2).upgradeHeight();                
        for(uint i=0;i<upgradeHeight1; i++) {
            mapEraDay_Units[1][i] = VETH(vether1).mapEraDay_Units(1,i); 
        }
        for(uint i=upgradeHeight1;i<upgradeHeight; i++) {
            mapEraDay_Units[1][i] = VETH(vether2).mapEraDay_Units(1,i); 
        }
    }

    //========================================ERC20=========================================//
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        if(mapAddress_Excluded[spender]){
            return totalSupply;
        } else {
            return _allowances[owner][spender];
        }
    }
    // ERC20 Transfer function
    function transfer(address to, uint value) public override returns (bool success) {
        _transfer(msg.sender, to, value);
        return true;
    }
    // ERC20 Approve function
    function approve(address spender, uint value) public override returns (bool success) {
        _allowances[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    // ERC20 TransferFrom function
    function transferFrom(address from, address to, uint value) public override returns (bool success) {
        if(!mapAddress_Excluded[msg.sender]){
            require(value <= _allowances[from][msg.sender], 'Must not send more than allowance');
            _allowances[from][msg.sender] -= value;
        }
        _transfer(from, to, value);
        return true;
    }
    // Internal transfer function which includes the Fee
    function _transfer(address _from, address _to, uint _value) private {
        require(_balances[_from] >= _value, 'Must not send more than balance');
        require(_balances[_to] + _value >= _balances[_to], 'Balance overflow');
        if(!mapHolder[_to]){holderArray.push(_to); holders+=1; mapHolder[_to]=true;}
        _balances[_from] =_balances[_from].sub(_value);
        uint _fee = _getFee(_from, _to, _value);                                            // Get fee amount
        _balances[_to] += (_value.sub(_fee));                                               // Add to receiver
        _balances[address(this)] += _fee;                                                   // Add fee to self
        totalFees += _fee;                                                                  // Track fees collected
        emit Transfer(_from, _to, (_value.sub(_fee)));                                      // Transfer event
        if (!mapAddress_Excluded[_from] && !mapAddress_Excluded[_to]) {
            emit Transfer(_from, address(this), _fee);                                      // Fee Transfer event
        }
    }
    // Calculate Fee amount
    function _getFee(address _from, address _to, uint _value) private view returns (uint) {
        if (mapAddress_Excluded[_from] || mapAddress_Excluded[_to]) {
           return 0;                                                                        // No fee if excluded
        } else {
            return (_value / 1000);                                                         // Fee amount = 0.1%
        }
    }

    //=======================================UPGRADE========================================//
    // Allow to query for remaining upgrade amount
    function getRemainingAmount() public view returns (uint amount){
        uint maxEmissions = (upgradeHeight-1) * mapEra_Emission[1];                         // Max Emission on Old Contract
        uint maxUpgradeAmount = (maxEmissions).sub(VETH(vether2).totalFees());              // Minus any collected fees
        if(maxUpgradeAmount >= upgradedAmount){
            return maxUpgradeAmount.sub(upgradedAmount);                                    // Return remaining
        } else {
            return 0;                                                                       // Return 0
        }
    }
    // V1 upgrades 
    function upgradeV1() public {
        uint amount = ERC20(vether1).balanceOf(msg.sender);                                 // Get Balance Vether1
        if(amount > 0){
            if(mapPreviousOwnership[msg.sender] < amount){
                amount = mapPreviousOwnership[msg.sender];                                  // Upgrade as much as possible
            } 
            uint remainingAmount = getRemainingAmount();
            if(remainingAmount < amount){amount = remainingAmount;}                         // Handle final amount
            upgradedAmount += amount; 
            mapPreviousOwnership[msg.sender] = mapPreviousOwnership[msg.sender].sub(amount);    // Update mappings
            ERC20(vether1).transferFrom(msg.sender, burnAddress, amount);                   // Must collect & burn tokens
            _transfer(address(this), msg.sender, amount);                                   // Send to owner
        }
    }
    // V2 upgrades 
    function upgradeV2() public {
        uint amount = ERC20(vether2).balanceOf(msg.sender);                                 // Get Balance Vether2
        if(amount > 0){
            if(mapPreviousOwnership[msg.sender] < amount){
                amount = mapPreviousOwnership[msg.sender];                                  // Upgrade as much as possible
            } 
            uint remainingAmount = getRemainingAmount();
            if(remainingAmount < amount){amount = remainingAmount;}                         // Handle final amount
            upgradedAmount += amount; 
            mapPreviousOwnership[msg.sender] = mapPreviousOwnership[msg.sender].sub(amount);    // Update mappings
            ERC20(vether2).transferFrom(msg.sender, burnAddress, amount);                   // Must collect & burn tokens
            _transfer(address(this), msg.sender, amount);                                   // Send to owner
        }
    }
    // Snapshot previous owners
    function snapshot(address[] memory owners, uint[] memory ownership) public{
        require(msg.sender == deployer);
        for(uint i = 0; i<owners.length; i++){
            mapPreviousOwnership[owners[i]] = ownership[i];
        }
    }
    // purge
    function purgeDeployer() public{require(msg.sender == deployer);deployer = address(0);}

    //==================================PROOF-OF-VALUE======================================//
    // Calls when sending Ether
    receive() external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, msg.sender, currentEra, currentDay, msg.value);             // Record Burn
    }
    // Burn ether for nominated member
    function burnEtherForMember(address member) external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, member, currentEra, currentDay, msg.value);                 // Record Burn
    }
    // Internal - Records burn
    function _recordBurn(address _payer, address _member, uint _era, uint _day, uint _eth) private {
        require(VETH(vether2).currentDay() >= upgradeHeight || VETH(vether2).currentEra() > 1); // Prohibit until upgrade height
        if (mapEraDay_MemberUnits[_era][_day][_member] == 0){                               // If hasn't contributed to this Day yet
            mapMemberEra_Days[_member][_era].push(_day);                                    // Add it
            mapEraDay_MemberCount[_era][_day] += 1;                                         // Count member
            mapEraDay_Members[_era][_day].push(_member);                                    // Add member
        }
        mapEraDay_MemberUnits[_era][_day][_member] += _eth;                                 // Add member's share
        mapEraDay_UnitsRemaining[_era][_day] += _eth;                                       // Add to total historicals
        mapEraDay_Units[_era][_day] += _eth;                                                // Add to total outstanding
        totalBurnt += _eth;                                                                 // Add to total burnt
        emit Burn(_payer, _member, _era, _day, _eth, mapEraDay_Units[_era][_day]);          // Burn event
        _updateEmission();                                                                  // Update emission Schedule
    }
    // Allows changing an excluded address
    function changeExcluded(address excluded) external {    
        if(!mapAddress_Excluded[excluded]){
            _transfer(msg.sender, address(this), mapEra_Emission[1]/16);                    // Pay fee of 128 Vether
            mapAddress_Excluded[excluded] = true;                                           // Add desired address
            excludedArray.push(excluded); excludedCount +=1;                                // Record details
            totalFees += mapEra_Emission[1]/16;                                             // Record fees
            mapAddress_BlockChange[excluded] = block.number;                                // Record time of change
        } else {
            _transfer(msg.sender, address(this), mapEra_Emission[1]/32);                    // Pay fee of 64 Vether
            mapAddress_Excluded[excluded] = false;                                          // Change desired address
            totalFees += mapEra_Emission[1]/32;                                             // Record fees
            mapAddress_BlockChange[excluded] = block.number;                                // Record time of change
        }               
    }
    //======================================WITHDRAWAL======================================//
    // Used to efficiently track participation in each era
    function getDaysContributedForEra(address member, uint era) public view returns(uint){
        return mapMemberEra_Days[member][era].length;
    }
    // Call to withdraw a claim
    function withdrawShare(uint era, uint day) external returns (uint value) {
        value = _withdrawShare(era, day, msg.sender);                           
    }
    // Call to withdraw a claim for another member
    function withdrawShareForMember(uint era, uint day, address member) external returns (uint value) {
        value = _withdrawShare(era, day, member);
    }
    // Internal - withdraw function
    function _withdrawShare (uint _era, uint _day, address _member) private returns (uint value) {
        _updateEmission(); 
        if (_era < currentEra) {                                                            // Allow if in previous Era
            value = _processWithdrawal(_era, _day, _member);                                // Process Withdrawal
        } else if (_era == currentEra) {                                                    // Handle if in current Era
            if (_day < currentDay) {                                                        // Allow only if in previous Day
                value = _processWithdrawal(_era, _day, _member);                            // Process Withdrawal
            }
        }  
        return value;
    }
    // Internal - Withdrawal function
    function _processWithdrawal (uint _era, uint _day, address _member) private returns (uint value) {
        uint memberUnits = mapEraDay_MemberUnits[_era][_day][_member];                      // Get Member Units
        if (memberUnits == 0) { 
            value = 0;                                                                      // Do nothing if 0 (prevents revert)
        } else {
            value = getEmissionShare(_era, _day, _member);                                  // Get the emission Share for Member
            mapEraDay_MemberUnits[_era][_day][_member] = 0;                                 // Set to 0 since it will be withdrawn
            mapEraDay_UnitsRemaining[_era][_day] = mapEraDay_UnitsRemaining[_era][_day].sub(memberUnits);  // Decrement Member Units
            mapEraDay_EmissionRemaining[_era][_day] = mapEraDay_EmissionRemaining[_era][_day].sub(value);  // Decrement emission
            totalEmitted += value;                                                          // Add to Total Emitted
            _transfer(address(this), _member, value);                                       // ERC20 transfer function
            emit Withdrawal(msg.sender, _member, _era, _day, 
            value, mapEraDay_EmissionRemaining[_era][_day]);
        }
        return value;
    }
    // Get emission Share function
    function getEmissionShare(uint era, uint day, address member) public view returns (uint value) {
        uint memberUnits = mapEraDay_MemberUnits[era][day][member];                         // Get Member Units
        if (memberUnits == 0) {
            return 0;                                                                       // If 0, return 0
        } else {
            uint totalUnits = mapEraDay_UnitsRemaining[era][day];                           // Get Total Units
            uint emissionRemaining = mapEraDay_EmissionRemaining[era][day];                 // Get emission remaining for Day
            uint balance = _balances[address(this)];                                        // Find remaining balance
            if (emissionRemaining > balance) { emissionRemaining = balance; }               // In case less than required emission
            value = (emissionRemaining * memberUnits) / totalUnits;                         // Calculate share
            return  value;                            
        }
    }
    //======================================EMISSION========================================//
    // Internal - Update emission function
    function _updateEmission() private {
        uint _now = now;                                                                    // Find now()
        if (_now >= nextDayTime) {                                                          // If time passed the next Day time
            if (currentDay >= daysPerEra) {                                                 // If time passed the next Era time
                currentEra += 1; currentDay = 0;                                            // Increment Era, reset Day
                nextEraTime = _now + (secondsPerDay * daysPerEra);                          // Set next Era time
                emission = getNextEraEmission();                                            // Get correct emission
                mapEra_Emission[currentEra] = emission;                                     // Map emission to Era
                emit NewEra(currentEra, emission, nextEraTime, totalBurnt);                 // Emit Event
            }
            currentDay += 1;                                                                // Increment Day
            nextDayTime = _now + secondsPerDay;                                             // Set next Day time
            emission = getDayEmission();                                                    // Check daily Dmission
            mapEraDay_EmissionRemaining[currentEra][currentDay] = emission;                 // Map emission to Day
            uint _era = currentEra; uint _day = currentDay-1;
            if(currentDay == 1){ _era = currentEra-1; _day = daysPerEra; }                  // Handle New Era
            emit NewDay(currentEra, currentDay, nextDayTime, 
            mapEraDay_Units[_era][_day], mapEraDay_MemberCount[_era][_day]);                // Emit Event
        }
    }
    // Calculate Era emission
    function getNextEraEmission() public view returns (uint) {
        if (emission > coin) {                                                              // Normal Emission Schedule
            return emission / 2;                                                            // Emissions: 2048 -> 1.0
        } else{                                                                             // Enters Fee Era
            return coin;                                                                    // Return 1.0 from fees
        }
    }
    // Calculate Day emission
    function getDayEmission() public view returns (uint) {
        uint balance = _balances[address(this)];                                            // Find remaining balance
        if (balance > emission) {                                                           // Balance is sufficient
            return emission;                                                                // Return emission
        } else {                                                                            // Balance has dropped low
            return balance;                                                                 // Return full balance
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dailyTotal","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousDayTotal","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousDayMembers","type":"uint256"}],"name":"NewDay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalBurnt","type":"uint256"}],"name":"NewEra","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"vetherRemaining","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"burnEtherForMember","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"excluded","type":"address"}],"name":"changeExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daysPerEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludedArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"excludedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDayEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"era","type":"uint256"}],"name":"getDaysContributedForEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"getEmissionShare","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEraEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemainingAmount","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holderArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAddress_BlockChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAddress_Excluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_EmissionRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_MemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"mapEraDay_MemberUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Members","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Units","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_UnitsRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEra_Emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapMemberEra_Days","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapPreviousOwnership","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextDayTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEraTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purgeDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondsPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ownership","type":"uint256[]"}],"name":"snapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEmitted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradeV1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeV2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vether1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vether2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"}],"name":"withdrawShare","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"withdrawShareForMember","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006006553480156200001d57600080fd5b507331bb711de2e457066c6281f231fb473fc5c2afd3601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507301217729940055011f17befe6270e6e59b7d0337601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600c81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200013957600080fd5b505afa1580156200014e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200017957600080fd5b81019080805160405193929190846401000000008211156200019a57600080fd5b83820191506020820185811115620001b157600080fd5b8251866001820283011164010000000082111715620001cf57600080fd5b8083526020830192505050908051906020019080838360005b8381101562000205578082015181840152602081019050620001e8565b50505050905090810190601f168015620002335780820380516001836020036101000a031916815260200191505b50604052505050600090805190602001906200025192919062001240565b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620002bb57600080fd5b505afa158015620002d0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620002fb57600080fd5b81019080805160405193929190846401000000008211156200031c57600080fd5b838201915060208201858111156200033357600080fd5b82518660018202830111640100000000821117156200035157600080fd5b8083526020830192505050908051906020019080838360005b83811015620003875780820151818401526020810190506200036a565b50505050905090810190601f168015620003b55780820380516001836020036101000a031916815260200191505b5060405250505060019080519060200190620003d392919062001240565b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043d57600080fd5b505afa15801562000452573d6000803e3d6000fd5b505050506040513d60208110156200046957600080fd5b8101908080519060200190929190505050600281905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e957600080fd5b505afa158015620004fe573d6000803e3d6000fd5b505050506040513d60208110156200051557600080fd5b8101908080519060200190929190505050600381905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7f0b3de6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200059557600080fd5b505afa158015620005aa573d6000803e3d6000fd5b505050506040513d6020811015620005c157600080fd5b8101908080519060200190929190505050600e81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663827c049e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200064157600080fd5b505afa15801562000656573d6000803e3d6000fd5b505050506040513d60208110156200066d57600080fd5b8101908080519060200190929190505050600781905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663973628f66040518163ffffffff1660e01b815260040160206040518083038186803b158015620006ed57600080fd5b505afa15801562000702573d6000803e3d6000fd5b505050506040513d60208110156200071957600080fd5b8101908080519060200190929190505050600881905550600c54600981905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ac1c8636040518163ffffffff1660e01b815260040160206040518083038186803b158015620007a257600080fd5b505afa158015620007b7573d6000803e3d6000fd5b505050506040513d6020811015620007ce57600080fd5b8101908080519060200190929190505050600a81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663638099536040518163ffffffff1660e01b815260040160206040518083038186803b1580156200084e57600080fd5b505afa15801562000863573d6000803e3d6000fd5b505050506040513d60208110156200087a57600080fd5b8101908080519060200190929190505050600b81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663966ff6506040518163ffffffff1660e01b815260040160206040518083038186803b158015620008fa57600080fd5b505afa1580156200090f573d6000803e3d6000fd5b505050506040513d60208110156200092657600080fd5b8101908080519060200190929190505050601681905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313114a9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620009a657600080fd5b505afa158015620009bb573d6000803e3d6000fd5b505050506040513d6020811015620009d257600080fd5b81019080805190602001909291905050506015819055506007546001600c540302601781905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370d5ae056040518163ffffffff1660e01b815260040160206040518083038186803b15801562000a6257600080fd5b505afa15801562000a77573d6000803e3d6000fd5b505050506040513d602081101562000a8e57600080fd5b8101908080519060200190929190505050601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a3600a54600b5402600e5401600f81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b15801562000c6957600080fd5b505afa15801562000c7e573d6000803e3d6000fd5b505050506040513d602081101562000c9557600080fd5b8101908080519060200190929190505050600c5403600b5402601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fee05d626040518163ffffffff1660e01b815260040160206040518083038186803b15801562000d1757600080fd5b505afa15801562000d2c573d6000803e3d6000fd5b505050506040513d602081101562000d4357600080fd5b8101908080519060200190929190505050016010819055506001602660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a309080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b81905550600160266000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60008282540192505081905550600754601c6000600854815260200190815260200160002081905550600754602160006008548152602001908152602001600020600060095481526020019081526020016000208190555062000f8962000f8f60201b60201c565b620012ef565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df909da66040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ffa57600080fd5b505afa1580156200100f573d6000803e3d6000fd5b505050506040513d60208110156200102657600080fd5b8101908080519060200190929190505050905060008090505b818110156200113957601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360b292596001836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015620010c557600080fd5b505afa158015620010da573d6000803e3d6000fd5b505050506040513d6020811015620010f157600080fd5b8101908080519060200190929190505050601f60006001815260200190815260200160002060008381526020019081526020016000208190555080806001019150506200103f565b5060008190505b600c548110156200123c57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360b292596001836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015620011c857600080fd5b505afa158015620011dd573d6000803e3d6000fd5b505050506040513d6020811015620011f457600080fd5b8101908080519060200190929190505050601f600060018152602001908152602001600020600083815260200190815260200160002081905550808060010191505062001140565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200128357805160ff1916838001178555620012b4565b82800160010185558215620012b4579182015b82811115620012b357825182559160200191906001019062001296565b5b509050620012c39190620012c7565b5090565b620012ec91905b80821115620012e8576000816000905550600101620012ce565b5090565b90565b613e1f80620012ff6000396000f3fe6080604052600436106103395760003560e01c80638188f71c116101ab578063ba38b83c116100f7578063dc3222a611610095578063df0244b11161006f578063df0244b1146114c9578063df909da6146114f4578063e82481cf1461151f578063fee05d621461154a576103d9565b8063dc3222a61461136c578063dc75027f146113db578063dd62ed3e14611444576103d9565b8063c31842e1116100d1578063c31842e114611244578063c7d9bc18146112bd578063dabaae11146112e8578063dac679ec14611313576103d9565b8063ba38b83c14611149578063bdf75661146111a0578063c0c8ebe114611219576103d9565b806395d89b4111610164578063973628f61161013e578063973628f614611027578063a5a1ba2114611052578063a7f0b3de146110ab578063a9059cbb146110d6576103d9565b806395d89b4114610f135780639618f7a814610fa3578063966ff65014610ffc576103d9565b80638188f71c14610dc7578063827c049e14610df25780638454ed2714610e1d57806384d9d7db14610e6c57806389b86db514610e835780638e619b0614610eae576103d9565b8063325e8f11116102855780635c9302c91161022357806370a08231116101fd57806370a0823114610c3b57806370d5ae0514610ca057806376a1b75614610cf757806377217a8914610d4e576103d9565b80635c9302c914610b8c57806360b2925914610bb75780636380995314610c10576103d9565b80633ca8a8e41161025f5780633ca8a8e4146108ec5780633db9a7ec14610a4557806348c8e8b914610abe5780634f8eddb214610b23576103d9565b8063325e8f11146107f557806337217349146108705780633ac1c863146108c1576103d9565b806313114a9d116102f257806323b872dd116102cc57806323b872dd146106635780632a423be8146106f65780632c8e259b1461074f578063313ce567146107ca576103d9565b806313114a9d146105c957806318160ddd146105f4578063227cb58c1461061f576103d9565b806303a82138146103de57806306fdde03146103f5578063090bbb0114610485578063092acf93146104b0578063095ea7b3146104c75780630e21f7b41461053a576103d9565b366103d957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146103be576040519150601f19603f3d011682016040523d82523d6000602084013e6103c3565b606091505b5050506103d7333360085460095434611575565b005b600080fd5b3480156103ea57600080fd5b506103f3611a00565b005b34801561040157600080fd5b5061040a611a9e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044a57808201518184015260208101905061042f565b50505050905090810190601f1680156104775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049157600080fd5b5061049a611b3c565b6040518082815260200191505060405180910390f35b3480156104bc57600080fd5b506104c5611b42565b005b3480156104d357600080fd5b50610520600480360360408110156104ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ebb565b604051808215151515815260200191505060405180910390f35b34801561054657600080fd5b506105876004803603606081101561055d57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611fad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105de612005565b6040518082815260200191505060405180910390f35b34801561060057600080fd5b5061060961200b565b6040518082815260200191505060405180910390f35b6106616004803603602081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612011565b005b34801561066f57600080fd5b506106dc6004803603606081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120ad565b604051808215151515815260200191505060405180910390f35b34801561070257600080fd5b506107396004803603604081101561071957600080fd5b810190808035906020019092919080359060200190929190505050612276565b6040518082815260200191505060405180910390f35b34801561075b57600080fd5b506107886004803603602081101561077257600080fd5b810190808035906020019092919050505061228b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107d657600080fd5b506107df6122c7565b6040518082815260200191505060405180910390f35b34801561080157600080fd5b5061082e6004803603602081101561081857600080fd5b81019080803590602001909291905050506122cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087c57600080fd5b506108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612309565b005b3480156108cd57600080fd5b506108d66125bd565b6040518082815260200191505060405180910390f35b3480156108f857600080fd5b50610a436004803603604081101561090f57600080fd5b810190808035906020019064010000000081111561092c57600080fd5b82018360208201111561093e57600080fd5b8035906020019184602083028401116401000000008311171561096057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156109c057600080fd5b8201836020820111156109d257600080fd5b803590602001918460208302840111640100000000831117156109f457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506125c3565b005b348015610a5157600080fd5b50610aa860048036036060811015610a6857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506126a8565b6040518082815260200191505060405180910390f35b348015610aca57600080fd5b50610b0d60048036036020811015610ae157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e3565b6040518082815260200191505060405180910390f35b348015610b2f57600080fd5b50610b7260048036036020811015610b4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126fb565b604051808215151515815260200191505060405180910390f35b348015610b9857600080fd5b50610ba161271b565b6040518082815260200191505060405180910390f35b348015610bc357600080fd5b50610bfa60048036036040811015610bda57600080fd5b810190808035906020019092919080359060200190929190505050612721565b6040518082815260200191505060405180910390f35b348015610c1c57600080fd5b50610c25612746565b6040518082815260200191505060405180910390f35b348015610c4757600080fd5b50610c8a60048036036020811015610c5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061274c565b6040518082815260200191505060405180910390f35b348015610cac57600080fd5b50610cb5612795565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d0357600080fd5b50610d0c6127bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5a57600080fd5b50610db160048036036060811015610d7157600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127e1565b6040518082815260200191505060405180910390f35b348015610dd357600080fd5b50610ddc612813565b6040518082815260200191505060405180910390f35b348015610dfe57600080fd5b50610e07612819565b6040518082815260200191505060405180910390f35b348015610e2957600080fd5b50610e5660048036036020811015610e4057600080fd5b810190808035906020019092919050505061281f565b6040518082815260200191505060405180910390f35b348015610e7857600080fd5b50610e81612837565b005b348015610e8f57600080fd5b50610e98612bb0565b6040518082815260200191505060405180910390f35b348015610eba57600080fd5b50610efd60048036036020811015610ed157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bdb565b6040518082815260200191505060405180910390f35b348015610f1f57600080fd5b50610f28612bf3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f68578082015181840152602081019050610f4d565b50505050905090810190601f168015610f955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610faf57600080fd5b50610fe660048036036040811015610fc657600080fd5b810190808035906020019092919080359060200190929190505050612c91565b6040518082815260200191505060405180910390f35b34801561100857600080fd5b50611011612cb6565b6040518082815260200191505060405180910390f35b34801561103357600080fd5b5061103c612cbc565b6040518082815260200191505060405180910390f35b34801561105e57600080fd5b506110956004803603604081101561107557600080fd5b810190808035906020019092919080359060200190929190505050612cc2565b6040518082815260200191505060405180910390f35b3480156110b757600080fd5b506110c0612ce7565b6040518082815260200191505060405180910390f35b3480156110e257600080fd5b5061112f600480360360408110156110f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ced565b604051808215151515815260200191505060405180910390f35b34801561115557600080fd5b5061115e612d04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111ac57600080fd5b50611203600480360360608110156111c357600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2a565b6040518082815260200191505060405180910390f35b34801561122557600080fd5b5061122e612e63565b6040518082815260200191505060405180910390f35b34801561125057600080fd5b506112a76004803603606081101561126757600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e69565b6040518082815260200191505060405180910390f35b3480156112c957600080fd5b506112d2612e7f565b6040518082815260200191505060405180910390f35b3480156112f457600080fd5b506112fd612e85565b6040518082815260200191505060405180910390f35b34801561131f57600080fd5b506113566004803603604081101561133657600080fd5b810190808035906020019092919080359060200190929190505050612f90565b6040518082815260200191505060405180910390f35b34801561137857600080fd5b506113c56004803603604081101561138f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fb4565b6040518082815260200191505060405180910390f35b3480156113e757600080fd5b5061142a600480360360208110156113fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613012565b604051808215151515815260200191505060405180910390f35b34801561145057600080fd5b506114b36004803603604081101561146757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613032565b6040518082815260200191505060405180910390f35b3480156114d557600080fd5b506114de613116565b6040518082815260200191505060405180910390f35b34801561150057600080fd5b5061150961311c565b6040518082815260200191505060405180910390f35b34801561152b57600080fd5b50611534613122565b6040518082815260200191505060405180910390f35b34801561155657600080fd5b5061155f613184565b6040518082815260200191505060405180910390f35b600c54601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e057600080fd5b505afa1580156115f4573d6000803e3d6000fd5b505050506040513d602081101561160a57600080fd5b81019080805190602001909291905050501015806116ca57506001601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663973628f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561168d57600080fd5b505afa1580156116a1573d6000803e3d6000fd5b505050506040513d60208110156116b757600080fd5b8101908080519060200190929190505050115b6116d357600080fd5b600060226000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561186d57602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001601d6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550601e60008481526020019081526020016000206000838152602001908152602001600020849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8060226000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806020600085815260200190815260200160002060008481526020019081526020016000206000828254019250508190555080601f6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806016600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f661f25a08ee5c15fc997f7288c9cd798e1905052f21d761925800799791f130b858585601f60008a81526020019081526020016000206000898152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a36119f961318a565b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5a57600080fd5b6000601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b345780601f10611b0957610100808354040283529160200191611b34565b820191906000526020600020905b815481529060010190602001808311611b1757829003601f168201915b505050505081565b600f5481565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611be357600080fd5b505afa158015611bf7573d6000803e3d6000fd5b505050506040513d6020811015611c0d57600080fd5b810190808051906020019092919050505090506000811115611eb85780602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611cb357602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611cbd612e85565b905081811015611ccb578091505b81600d60008282540192505081905550611d2d82602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611e6f57600080fd5b505af1158015611e83573d6000803e3d6000fd5b505050506040513d6020811015611e9957600080fd5b810190808051906020019092919050505050611eb63033846133c5565b505b50565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601e6020528260005260406000206020528160005260406000208181548110611fd257fe5b90600052602060002001600092509250509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60035481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d8060008114612091576040519150601f19603f3d011682016040523d82523d6000602084013e612096565b606091505b5050506120aa338260085460095434611575565b50565b6000602660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661226057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156121d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613dc96021913960400191505060405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b61226b8484846133c5565b600190509392505050565b600061228383833361397a565b905092915050565b6018818154811061229857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b601a81815481106122da57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124c65761238333306010601c600060018152602001908152602001600020548161237d57fe5b046133c5565b6001602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b600082825401925050819055506010601c600060018152602001908152602001600020548161246d57fe5b0460156000828254019250508190555043602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ba565b6124ef33306020601c60006001815260200190815260200160002054816124e957fe5b046133c5565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506020601c600060018152602001908152602001600020548161256557fe5b0460156000828254019250508190555043602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600a5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461261d57600080fd5b60008090505b82518110156126a35781818151811061263857fe5b60200260200101516024600085848151811061265057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050612623565b505050565b602360205282600052604060002060205281600052604060002081815481106126cd57fe5b9060005260206000200160009250925050505481565b60276020528060005260406000206000915090505481565b60266020528060005260406000206000915054906101000a900460ff1681565b60095481565b601f602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602260205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60195481565b60075481565b601c6020528060005260406000206000915090505481565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156128d857600080fd5b505afa1580156128ec573d6000803e3d6000fd5b505050506040513d602081101561290257600080fd5b810190808051906020019092919050505090506000811115612bad5780602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156129a857602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006129b2612e85565b9050818110156129c0578091505b81600d60008282540192505081905550612a2282602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b6457600080fd5b505af1158015612b78573d6000803e3d6000fd5b505050506040513d6020811015612b8e57600080fd5b810190808051906020019092919050505050612bab3033846133c5565b505b50565b60006006546007541115612bd257600260075481612bca57fe5b049050612bd8565b60065490505b90565b60246020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c895780601f10612c5e57610100808354040283529160200191612c89565b820191906000526020600020905b815481529060010190602001808311612c6c57829003601f168201915b505050505081565b601d602052816000526040600020602052806000526040600020600091509150505481565b60165481565b60085481565b6021602052816000526040600020602052806000526040600020600091509150505481565b600e5481565b6000612cfa3384846133c5565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060226000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612da4576000915050612e5c565b600060206000878152602001908152602001600020600086815260200190815260200160002054905060006021600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080821115612e46578091505b8284830281612e5157fe5b049450849450505050505b9392505050565b601b5481565b6000612e7684848461397a565b90509392505050565b600d5481565b600080601c600060018152602001908152602001600020546001600c54030290506000612f5d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313114a9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b81019080805190602001909291905050508361337b90919063ffffffff16565b9050600d548110612f8657612f7d600d548261337b90919063ffffffff16565b92505050612f8d565b6000925050505b90565b60208052816000526040600020602052806000526040600020600091509150505481565b6000602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b60256020528060005260406000206000915054906101000a900460ff1681565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613090576003549050613110565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b60175481565b600c5481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060075481111561317c57600754915050613181565b809150505b90565b60105481565b6000429050601054811061337857600a546009541061324d5760016008600082825401925050819055506000600981905550600a54600b54028101600f819055506131d3612bb0565b600781905550600754601c60006008548152602001908152602001600020819055507fa7041f0c0dac061a7423e0d7d7b69a0d28e782c6e4842f4fce5523379acbb254600854600754600f546016546040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b6001600960008282540192505081905550600b548101601081905550613271613122565b60078190555060075460216000600854815260200190815260200160002060006009548152602001908152602001600020819055506000600854905060006001600954039050600160095414156132d0576001600854039150600a5490505b7ff0047f88d9bce548f6a3b5f02aae9964bcb69afb1848b6acaab809a2b0629aaf600854600954601054601f6000878152602001908152602001600020600086815260200190815260200160002054601d6000888152602001908152602001600020600087815260200190815260200160002054604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a150505b50565b60006133bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139ce565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561347a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015613570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661368e576018829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016019600082825401925050819055506001602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6136e081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000613730848484613a8e565b9050613745818361337b90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806015600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613850848661337b90919063ffffffff16565b6040518082815260200191505060405180910390a3602660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156139095750602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613974573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b600061398461318a565b6008548410156139a057613999848484613b55565b90506139c4565b6008548414156139c3576009548310156139c2576139bf848484613b55565b90505b5b5b8090509392505050565b6000838311158290613a7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a40578082015181840152602081019050613a25565b50505050905090810190601f168015613a6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613b315750602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613b3f5760009050613b4e565b6103e88281613b4a57fe5b0490505b9392505050565b60008060226000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415613bce5760009150613dbd565b613bd9858585612d2a565b9150600060226000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c79816020600088815260200190815260200160002060008781526020019081526020016000205461337b90919063ffffffff16565b60206000878152602001908152602001600020600086815260200190815260200160002081905550613cd8826021600088815260200190815260200160002060008781526020019081526020016000205461337b90919063ffffffff16565b6021600087815260200190815260200160002060008681526020019081526020016000208190555081601760008282540192505081905550613d1b3084846133c5565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7f3fa649aa08dbaff5b36b865f9585ae5b83bcb35185c846035019b63967b6e9878786602160008c815260200190815260200160002060008b8152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a35b81915050939250505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a2646970667358221220227cb27a497b95bc8c9c88f8c6d7b23494ca6920cfa2531267510354356fefad64736f6c63430006040033

Deployed Bytecode

0x6080604052600436106103395760003560e01c80638188f71c116101ab578063ba38b83c116100f7578063dc3222a611610095578063df0244b11161006f578063df0244b1146114c9578063df909da6146114f4578063e82481cf1461151f578063fee05d621461154a576103d9565b8063dc3222a61461136c578063dc75027f146113db578063dd62ed3e14611444576103d9565b8063c31842e1116100d1578063c31842e114611244578063c7d9bc18146112bd578063dabaae11146112e8578063dac679ec14611313576103d9565b8063ba38b83c14611149578063bdf75661146111a0578063c0c8ebe114611219576103d9565b806395d89b4111610164578063973628f61161013e578063973628f614611027578063a5a1ba2114611052578063a7f0b3de146110ab578063a9059cbb146110d6576103d9565b806395d89b4114610f135780639618f7a814610fa3578063966ff65014610ffc576103d9565b80638188f71c14610dc7578063827c049e14610df25780638454ed2714610e1d57806384d9d7db14610e6c57806389b86db514610e835780638e619b0614610eae576103d9565b8063325e8f11116102855780635c9302c91161022357806370a08231116101fd57806370a0823114610c3b57806370d5ae0514610ca057806376a1b75614610cf757806377217a8914610d4e576103d9565b80635c9302c914610b8c57806360b2925914610bb75780636380995314610c10576103d9565b80633ca8a8e41161025f5780633ca8a8e4146108ec5780633db9a7ec14610a4557806348c8e8b914610abe5780634f8eddb214610b23576103d9565b8063325e8f11146107f557806337217349146108705780633ac1c863146108c1576103d9565b806313114a9d116102f257806323b872dd116102cc57806323b872dd146106635780632a423be8146106f65780632c8e259b1461074f578063313ce567146107ca576103d9565b806313114a9d146105c957806318160ddd146105f4578063227cb58c1461061f576103d9565b806303a82138146103de57806306fdde03146103f5578063090bbb0114610485578063092acf93146104b0578063095ea7b3146104c75780630e21f7b41461053a576103d9565b366103d957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146103be576040519150601f19603f3d011682016040523d82523d6000602084013e6103c3565b606091505b5050506103d7333360085460095434611575565b005b600080fd5b3480156103ea57600080fd5b506103f3611a00565b005b34801561040157600080fd5b5061040a611a9e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044a57808201518184015260208101905061042f565b50505050905090810190601f1680156104775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049157600080fd5b5061049a611b3c565b6040518082815260200191505060405180910390f35b3480156104bc57600080fd5b506104c5611b42565b005b3480156104d357600080fd5b50610520600480360360408110156104ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ebb565b604051808215151515815260200191505060405180910390f35b34801561054657600080fd5b506105876004803603606081101561055d57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611fad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105de612005565b6040518082815260200191505060405180910390f35b34801561060057600080fd5b5061060961200b565b6040518082815260200191505060405180910390f35b6106616004803603602081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612011565b005b34801561066f57600080fd5b506106dc6004803603606081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120ad565b604051808215151515815260200191505060405180910390f35b34801561070257600080fd5b506107396004803603604081101561071957600080fd5b810190808035906020019092919080359060200190929190505050612276565b6040518082815260200191505060405180910390f35b34801561075b57600080fd5b506107886004803603602081101561077257600080fd5b810190808035906020019092919050505061228b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107d657600080fd5b506107df6122c7565b6040518082815260200191505060405180910390f35b34801561080157600080fd5b5061082e6004803603602081101561081857600080fd5b81019080803590602001909291905050506122cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087c57600080fd5b506108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612309565b005b3480156108cd57600080fd5b506108d66125bd565b6040518082815260200191505060405180910390f35b3480156108f857600080fd5b50610a436004803603604081101561090f57600080fd5b810190808035906020019064010000000081111561092c57600080fd5b82018360208201111561093e57600080fd5b8035906020019184602083028401116401000000008311171561096057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156109c057600080fd5b8201836020820111156109d257600080fd5b803590602001918460208302840111640100000000831117156109f457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506125c3565b005b348015610a5157600080fd5b50610aa860048036036060811015610a6857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506126a8565b6040518082815260200191505060405180910390f35b348015610aca57600080fd5b50610b0d60048036036020811015610ae157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e3565b6040518082815260200191505060405180910390f35b348015610b2f57600080fd5b50610b7260048036036020811015610b4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126fb565b604051808215151515815260200191505060405180910390f35b348015610b9857600080fd5b50610ba161271b565b6040518082815260200191505060405180910390f35b348015610bc357600080fd5b50610bfa60048036036040811015610bda57600080fd5b810190808035906020019092919080359060200190929190505050612721565b6040518082815260200191505060405180910390f35b348015610c1c57600080fd5b50610c25612746565b6040518082815260200191505060405180910390f35b348015610c4757600080fd5b50610c8a60048036036020811015610c5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061274c565b6040518082815260200191505060405180910390f35b348015610cac57600080fd5b50610cb5612795565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d0357600080fd5b50610d0c6127bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5a57600080fd5b50610db160048036036060811015610d7157600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127e1565b6040518082815260200191505060405180910390f35b348015610dd357600080fd5b50610ddc612813565b6040518082815260200191505060405180910390f35b348015610dfe57600080fd5b50610e07612819565b6040518082815260200191505060405180910390f35b348015610e2957600080fd5b50610e5660048036036020811015610e4057600080fd5b810190808035906020019092919050505061281f565b6040518082815260200191505060405180910390f35b348015610e7857600080fd5b50610e81612837565b005b348015610e8f57600080fd5b50610e98612bb0565b6040518082815260200191505060405180910390f35b348015610eba57600080fd5b50610efd60048036036020811015610ed157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bdb565b6040518082815260200191505060405180910390f35b348015610f1f57600080fd5b50610f28612bf3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f68578082015181840152602081019050610f4d565b50505050905090810190601f168015610f955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610faf57600080fd5b50610fe660048036036040811015610fc657600080fd5b810190808035906020019092919080359060200190929190505050612c91565b6040518082815260200191505060405180910390f35b34801561100857600080fd5b50611011612cb6565b6040518082815260200191505060405180910390f35b34801561103357600080fd5b5061103c612cbc565b6040518082815260200191505060405180910390f35b34801561105e57600080fd5b506110956004803603604081101561107557600080fd5b810190808035906020019092919080359060200190929190505050612cc2565b6040518082815260200191505060405180910390f35b3480156110b757600080fd5b506110c0612ce7565b6040518082815260200191505060405180910390f35b3480156110e257600080fd5b5061112f600480360360408110156110f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ced565b604051808215151515815260200191505060405180910390f35b34801561115557600080fd5b5061115e612d04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111ac57600080fd5b50611203600480360360608110156111c357600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2a565b6040518082815260200191505060405180910390f35b34801561122557600080fd5b5061122e612e63565b6040518082815260200191505060405180910390f35b34801561125057600080fd5b506112a76004803603606081101561126757600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e69565b6040518082815260200191505060405180910390f35b3480156112c957600080fd5b506112d2612e7f565b6040518082815260200191505060405180910390f35b3480156112f457600080fd5b506112fd612e85565b6040518082815260200191505060405180910390f35b34801561131f57600080fd5b506113566004803603604081101561133657600080fd5b810190808035906020019092919080359060200190929190505050612f90565b6040518082815260200191505060405180910390f35b34801561137857600080fd5b506113c56004803603604081101561138f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fb4565b6040518082815260200191505060405180910390f35b3480156113e757600080fd5b5061142a600480360360208110156113fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613012565b604051808215151515815260200191505060405180910390f35b34801561145057600080fd5b506114b36004803603604081101561146757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613032565b6040518082815260200191505060405180910390f35b3480156114d557600080fd5b506114de613116565b6040518082815260200191505060405180910390f35b34801561150057600080fd5b5061150961311c565b6040518082815260200191505060405180910390f35b34801561152b57600080fd5b50611534613122565b6040518082815260200191505060405180910390f35b34801561155657600080fd5b5061155f613184565b6040518082815260200191505060405180910390f35b600c54601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e057600080fd5b505afa1580156115f4573d6000803e3d6000fd5b505050506040513d602081101561160a57600080fd5b81019080805190602001909291905050501015806116ca57506001601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663973628f66040518163ffffffff1660e01b815260040160206040518083038186803b15801561168d57600080fd5b505afa1580156116a1573d6000803e3d6000fd5b505050506040513d60208110156116b757600080fd5b8101908080519060200190929190505050115b6116d357600080fd5b600060226000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561186d57602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001601d6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550601e60008481526020019081526020016000206000838152602001908152602001600020849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8060226000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806020600085815260200190815260200160002060008481526020019081526020016000206000828254019250508190555080601f6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806016600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f661f25a08ee5c15fc997f7288c9cd798e1905052f21d761925800799791f130b858585601f60008a81526020019081526020016000206000898152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a36119f961318a565b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5a57600080fd5b6000601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b345780601f10611b0957610100808354040283529160200191611b34565b820191906000526020600020905b815481529060010190602001808311611b1757829003601f168201915b505050505081565b600f5481565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611be357600080fd5b505afa158015611bf7573d6000803e3d6000fd5b505050506040513d6020811015611c0d57600080fd5b810190808051906020019092919050505090506000811115611eb85780602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611cb357602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611cbd612e85565b905081811015611ccb578091505b81600d60008282540192505081905550611d2d82602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611e6f57600080fd5b505af1158015611e83573d6000803e3d6000fd5b505050506040513d6020811015611e9957600080fd5b810190808051906020019092919050505050611eb63033846133c5565b505b50565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601e6020528260005260406000206020528160005260406000208181548110611fd257fe5b90600052602060002001600092509250509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60035481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d8060008114612091576040519150601f19603f3d011682016040523d82523d6000602084013e612096565b606091505b5050506120aa338260085460095434611575565b50565b6000602660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661226057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156121d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613dc96021913960400191505060405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b61226b8484846133c5565b600190509392505050565b600061228383833361397a565b905092915050565b6018818154811061229857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b601a81815481106122da57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124c65761238333306010601c600060018152602001908152602001600020548161237d57fe5b046133c5565b6001602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b600082825401925050819055506010601c600060018152602001908152602001600020548161246d57fe5b0460156000828254019250508190555043602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ba565b6124ef33306020601c60006001815260200190815260200160002054816124e957fe5b046133c5565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506020601c600060018152602001908152602001600020548161256557fe5b0460156000828254019250508190555043602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600a5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461261d57600080fd5b60008090505b82518110156126a35781818151811061263857fe5b60200260200101516024600085848151811061265057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050612623565b505050565b602360205282600052604060002060205281600052604060002081815481106126cd57fe5b9060005260206000200160009250925050505481565b60276020528060005260406000206000915090505481565b60266020528060005260406000206000915054906101000a900460ff1681565b60095481565b601f602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602260205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60195481565b60075481565b601c6020528060005260406000206000915090505481565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156128d857600080fd5b505afa1580156128ec573d6000803e3d6000fd5b505050506040513d602081101561290257600080fd5b810190808051906020019092919050505090506000811115612bad5780602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156129a857602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006129b2612e85565b9050818110156129c0578091505b81600d60008282540192505081905550612a2282602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b602460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b6457600080fd5b505af1158015612b78573d6000803e3d6000fd5b505050506040513d6020811015612b8e57600080fd5b810190808051906020019092919050505050612bab3033846133c5565b505b50565b60006006546007541115612bd257600260075481612bca57fe5b049050612bd8565b60065490505b90565b60246020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c895780601f10612c5e57610100808354040283529160200191612c89565b820191906000526020600020905b815481529060010190602001808311612c6c57829003601f168201915b505050505081565b601d602052816000526040600020602052806000526040600020600091509150505481565b60165481565b60085481565b6021602052816000526040600020602052806000526040600020600091509150505481565b600e5481565b6000612cfa3384846133c5565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060226000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612da4576000915050612e5c565b600060206000878152602001908152602001600020600086815260200190815260200160002054905060006021600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080821115612e46578091505b8284830281612e5157fe5b049450849450505050505b9392505050565b601b5481565b6000612e7684848461397a565b90509392505050565b600d5481565b600080601c600060018152602001908152602001600020546001600c54030290506000612f5d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313114a9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b81019080805190602001909291905050508361337b90919063ffffffff16565b9050600d548110612f8657612f7d600d548261337b90919063ffffffff16565b92505050612f8d565b6000925050505b90565b60208052816000526040600020602052806000526040600020600091509150505481565b6000602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b60256020528060005260406000206000915054906101000a900460ff1681565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613090576003549050613110565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b60175481565b600c5481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060075481111561317c57600754915050613181565b809150505b90565b60105481565b6000429050601054811061337857600a546009541061324d5760016008600082825401925050819055506000600981905550600a54600b54028101600f819055506131d3612bb0565b600781905550600754601c60006008548152602001908152602001600020819055507fa7041f0c0dac061a7423e0d7d7b69a0d28e782c6e4842f4fce5523379acbb254600854600754600f546016546040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b6001600960008282540192505081905550600b548101601081905550613271613122565b60078190555060075460216000600854815260200190815260200160002060006009548152602001908152602001600020819055506000600854905060006001600954039050600160095414156132d0576001600854039150600a5490505b7ff0047f88d9bce548f6a3b5f02aae9964bcb69afb1848b6acaab809a2b0629aaf600854600954601054601f6000878152602001908152602001600020600086815260200190815260200160002054601d6000888152602001908152602001600020600087815260200190815260200160002054604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a150505b50565b60006133bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139ce565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561347a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015613570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661368e576018829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016019600082825401925050819055506001602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6136e081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461337b90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000613730848484613a8e565b9050613745818361337b90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806015600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613850848661337b90919063ffffffff16565b6040518082815260200191505060405180910390a3602660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156139095750602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613974573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b600061398461318a565b6008548410156139a057613999848484613b55565b90506139c4565b6008548414156139c3576009548310156139c2576139bf848484613b55565b90505b5b5b8090509392505050565b6000838311158290613a7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a40578082015181840152602081019050613a25565b50505050905090810190601f168015613a6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613b315750602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613b3f5760009050613b4e565b6103e88281613b4a57fe5b0490505b9392505050565b60008060226000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415613bce5760009150613dbd565b613bd9858585612d2a565b9150600060226000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c79816020600088815260200190815260200160002060008781526020019081526020016000205461337b90919063ffffffff16565b60206000878152602001908152602001600020600086815260200190815260200160002081905550613cd8826021600088815260200190815260200160002060008781526020019081526020016000205461337b90919063ffffffff16565b6021600087815260200190815260200160002060008681526020019081526020016000208190555081601760008282540192505081905550613d1b3084846133c5565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7f3fa649aa08dbaff5b36b865f9585ae5b83bcb35185c846035019b63967b6e9878786602160008c815260200190815260200160002060008b8152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a35b81915050939250505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a2646970667358221220227cb27a497b95bc8c9c88f8c6d7b23494ca6920cfa2531267510354356fefad64736f6c63430006040033

Deployed Bytecode Sourcemap

2149:21953:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13651:11;;;;;;;;;;;:16;;13674:9;13651:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;13651:37:0;;13758:70;13770:10;13782;13794;;13806;;13818:9;13758:11;:70::i;:::-;2149:21953;;12:1:-1;9;2:12;13389:87:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13389:87:0;;;:::i;:::-;;2238:18;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2238:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2238:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2753:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2753:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12135:951;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12135:951:0;;;:::i;:::-;;8060:218;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8060:218:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8060:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3365:64;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3365:64:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3365:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2915:21;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2915:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2307:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2307:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13909:284;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13909:284:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8320:376;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8320:376:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8320:376:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17212:163;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17212:163:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17212:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2993:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2993:28:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2993:28:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2285:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2285:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3049:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3049:30:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3049:30:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15678:1185;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15678:1185:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15678:1185:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2616:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2616:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13125:244;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13125:244:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13125:244:0;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;13125:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;13125:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13125:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13125:244:0;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;13125:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;13125:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13125:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13125:244:0;;;;;;;;;;;;;;;:::i;:::-;;3942:64;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3942:64:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3942:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4397:52;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4397:52:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4397:52:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4283:49;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4283:49:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4283:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2587:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2587:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3479:57;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3479:57:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3479:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2640:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2640:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7446:119;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7446:119:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7446:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2808:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2808:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2844:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2844:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3823:81;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3823:81:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3823:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3023:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3023:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2536:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2536:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3137:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3137:42:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3137:42:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11157:951;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11157:951:0;;;:::i;:::-;;22861:544;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22861:544:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4057:50;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4057:50:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4057:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2258:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2258:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2258:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3247:63;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3247:63:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3247:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2938:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2938:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2563;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2563:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3708:69;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3708:69:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3708:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2732:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2732:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7869:154;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7869:154:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7869:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2868:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2868:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19821:1047;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19821:1047:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19821:1047:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3081:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3081:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17433:157;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17433:157:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17433:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2699:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2699:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10517:613;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10517:613:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3591:66;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3591:66:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3591:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17025:148;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17025:148:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17025:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4173:39;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4173:39:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4173:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7571:260;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7571:260:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7571:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2962:24;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2962:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2672:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2672:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23442:657;;5:9:-1;2:2;;;27:1;24;17:12;2:2;23442:657:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2778:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2778:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14231:1397;14375:13;;14350:7;;;;;;;;;;;14345:24;;;:26;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14345:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14345:26:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14345:26:0;;;;;;;;;;;;;;;;:43;;:77;;;;14421:1;14397:7;;;;;;;;;;;14392:24;;;:26;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14392:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14392:26:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14392:26:0;;;;;;;;;;;;;;;;:30;14345:77;14337:86;;12:1:-1;9;2:12;14337:86:0;14517:1;14471:21;:27;14493:4;14471:27;;;;;;;;;;;:33;14499:4;14471:33;;;;;;;;;;;:42;14505:7;14471:42;;;;;;;;;;;;;;;;:47;14467:454;;;14605:17;:26;14623:7;14605:26;;;;;;;;;;;;;;;:32;14632:4;14605:32;;;;;;;;;;;14643:4;14605:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14605:43:0;;;;;;;;;;;;;;;;;;;14745:1;14708:21;:27;14730:4;14708:27;;;;;;;;;;;:33;14736:4;14708:33;;;;;;;;;;;;:38;;;;;;;;;;;14817:17;:23;14835:4;14817:23;;;;;;;;;;;:29;14841:4;14817:29;;;;;;;;;;;14852:7;14817:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14817:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14467:454;14977:4;14931:21;:27;14953:4;14931:27;;;;;;;;;;;:33;14959:4;14931:33;;;;;;;;;;;:42;14965:7;14931:42;;;;;;;;;;;;;;;;:50;;;;;;;;;;;15086:4;15046:24;:30;15071:4;15046:30;;;;;;;;;;;:36;15077:4;15046:36;;;;;;;;;;;;:44;;;;;;;;;;;15198:4;15167:15;:21;15183:4;15167:21;;;;;;;;;;;:27;15189:4;15167:27;;;;;;;;;;;;:35;;;;;;;;;;;15302:4;15288:10;;:18;;;;;;;;;;;15421:7;15408:68;;15413:6;15408:68;;;15430:4;15436;15442;15448:15;:21;15464:4;15448:21;;;;;;;;;;;:27;15470:4;15448:27;;;;;;;;;;;;15408:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15510:17;:15;:17::i;:::-;14231:1397;;;;;:::o;13389:87::-;13443:8;;;;;;;;;;;13429:22;;:10;:22;;;13421:31;;12:1:-1;9;2:12;13421:31:0;13472:1;13453:8;;:21;;;;;;;;;;;;;;;;;;13389:87::o;2238:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2753:23::-;;;;:::o;12135:951::-;12174:11;12194:7;;;;;;;;;;;12188:24;;;12213:10;12188:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12188:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12188:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12188:36:0;;;;;;;;;;;;;;;;12174:50;;12302:1;12293:6;:10;12290:789;;;12357:6;12322:20;:32;12343:10;12322:32;;;;;;;;;;;;;;;;:41;12319:185;;;12392:20;:32;12413:10;12392:32;;;;;;;;;;;;;;;;12383:41;;12319:185;12519:20;12542;:18;:20::i;:::-;12519:43;;12598:6;12580:15;:24;12577:55;;;12615:15;12606:24;;12577:55;12711:6;12693:14;;:24;;;;;;;;;;;12768:44;12805:6;12768:20;:32;12789:10;12768:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;12733:20;:32;12754:10;12733:32;;;;;;;;;;;;;;;:79;;;;12855:7;;;;;;;;;;;12849:27;;;12877:10;12889:11;;;;;;;;;;;12902:6;12849:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12849:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12849:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12849:60:0;;;;;;;;;;;;;;;;;12972:44;12990:4;12997:10;13009:6;12972:9;:44::i;:::-;12290:789;;12135:951;:::o;8060:218::-;8131:12;8191:5;8156:11;:23;8168:10;8156:23;;;;;;;;;;;;;;;:32;8180:7;8156:32;;;;;;;;;;;;;;;:40;;;;8233:7;8212:36;;8221:10;8212:36;;;8242:5;8212:36;;;;;;;;;;;;;;;;;;8266:4;8259:11;;8060:218;;;;:::o;3365:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2915:21::-;;;;:::o;2307:32::-;;;;:::o;13909:284::-;13981:11;;;;;;;;;;;:16;;14004:9;13981:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;13981:37:0;;14088:66;14100:10;14112:6;14120:10;;14132;;14144:9;14088:11;:66::i;:::-;13909:284;:::o;8320:376::-;8405:12;8434:19;:31;8454:10;8434:31;;;;;;;;;;;;;;;;;;;;;;;;;8430:200;;8498:11;:17;8510:4;8498:17;;;;;;;;;;;;;;;:29;8516:10;8498:29;;;;;;;;;;;;;;;;8489:5;:38;;8481:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8613:5;8580:11;:17;8592:4;8580:17;;;;;;;;;;;;;;;:29;8598:10;8580:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;8430:200;8640:26;8650:4;8656:2;8660:5;8640:9;:26::i;:::-;8684:4;8677:11;;8320:376;;;;;:::o;17212:163::-;17273:10;17304:36;17319:3;17324;17329:10;17304:14;:36::i;:::-;17296:44;;17212:163;;;;:::o;2993:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2285:20::-;;;;:::o;3049:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15678:1185::-;15748:19;:29;15768:8;15748:29;;;;;;;;;;;;;;;;;;;;;;;;;15744:1097;;15793:59;15803:10;15823:4;15849:2;15830:15;:18;15846:1;15830:18;;;;;;;;;;;;:21;;;;;;15793:9;:59::i;:::-;15943:4;15911:19;:29;15931:8;15911:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;16027:13;16046:8;16027:28;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16027:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16073:1;16057:13;;:17;;;;;;;;;;;16170:2;16151:15;:18;16167:1;16151:18;;;;;;;;;;;;:21;;;;;;16138:9;;:34;;;;;;;;;;;16281:12;16246:22;:32;16269:8;16246:32;;;;;;;;;;;;;;;:47;;;;15744:1097;;;16382:59;16392:10;16412:4;16438:2;16419:15;:18;16435:1;16419:18;;;;;;;;;;;;:21;;;;;;16382:9;:59::i;:::-;16531:5;16499:19;:29;16519:8;16499:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;16650:2;16631:15;:18;16647:1;16631:18;;;;;;;;;;;;:21;;;;;;16618:9;;:34;;;;;;;;;;;16761:12;16726:22;:32;16749:8;16726:32;;;;;;;;;;;;;;;:47;;;;15744:1097;15678:1185;:::o;2616:22::-;;;;:::o;13125:244::-;13232:8;;;;;;;;;;;13218:22;;:10;:22;;;13210:31;;12:1:-1;9;2:12;13210:31:0;13256:6;13265:1;13256:10;;13252:110;13270:6;:13;13268:1;:15;13252:110;;;13338:9;13348:1;13338:12;;;;;;;;;;;;;;13304:20;:31;13325:6;13332:1;13325:9;;;;;;;;;;;;;;13304:31;;;;;;;;;;;;;;;:46;;;;13285:3;;;;;;;13252:110;;;;13125:244;;:::o;3942:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4397:52::-;;;;;;;;;;;;;;;;;:::o;4283:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;2587:22::-;;;;:::o;3479:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2640:25::-;;;;:::o;7446:119::-;7512:7;7539:9;:18;7549:7;7539:18;;;;;;;;;;;;;;;;7532:25;;7446:119;;;:::o;2808:34::-;;;;;;;;;;;;;:::o;2844:22::-;;;;;;;;;;;;;:::o;3823:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3023:19::-;;;;:::o;2536:20::-;;;;:::o;3137:42::-;;;;;;;;;;;;;;;;;:::o;11157:951::-;11196:11;11216:7;;;;;;;;;;;11210:24;;;11235:10;11210:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11210:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11210:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11210:36:0;;;;;;;;;;;;;;;;11196:50;;11324:1;11315:6;:10;11312:789;;;11379:6;11344:20;:32;11365:10;11344:32;;;;;;;;;;;;;;;;:41;11341:185;;;11414:20;:32;11435:10;11414:32;;;;;;;;;;;;;;;;11405:41;;11341:185;11541:20;11564;:18;:20::i;:::-;11541:43;;11620:6;11602:15;:24;11599:55;;;11637:15;11628:24;;11599:55;11733:6;11715:14;;:24;;;;;;;;;;;11790:44;11827:6;11790:20;:32;11811:10;11790:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;11755:20;:32;11776:10;11755:32;;;;;;;;;;;;;;;:79;;;;11877:7;;;;;;;;;;;11871:27;;;11899:10;11911:11;;;;;;;;;;;11924:6;11871:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11871:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11871:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11871:60:0;;;;;;;;;;;;;;;;;11994:44;12012:4;12019:10;12031:6;11994:9;:44::i;:::-;11312:789;;11157:951;:::o;22861:544::-;22912:4;22944;;22933:8;;:15;22929:469;;;23072:1;23061:8;;:12;;;;;;23054:19;;;;22929:469;23291:4;;23284:11;;22861:544;;:::o;4057:50::-;;;;;;;;;;;;;;;;;:::o;2258:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3247:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2938:22::-;;;;:::o;2563:::-;;;;:::o;3708:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2732:19::-;;;;:::o;7869:154::-;7936:12;7961:32;7971:10;7983:2;7987:5;7961:9;:32::i;:::-;8011:4;8004:11;;7869:154;;;;:::o;2868:22::-;;;;;;;;;;;;;:::o;19821:1047::-;19904:10;19927:16;19946:21;:26;19968:3;19946:26;;;;;;;;;;;:31;19973:3;19946:31;;;;;;;;;;;:39;19978:6;19946:39;;;;;;;;;;;;;;;;19927:58;;20059:1;20044:11;:16;20040:821;;;20084:1;20077:8;;;;;20040:821;20206:15;20224:24;:29;20249:3;20224:29;;;;;;;;;;;:34;20254:3;20224:34;;;;;;;;;;;;20206:52;;20318:22;20343:27;:32;20371:3;20343:32;;;;;;;;;;;:37;20376:3;20343:37;;;;;;;;;;;;20318:62;;20445:12;20460:9;:24;20478:4;20460:24;;;;;;;;;;;;;;;;20445:39;;20588:7;20568:17;:27;20564:65;;;20619:7;20599:27;;20564:65;20740:10;20725:11;20705:17;:31;20704:46;;;;;;20696:54;;20816:5;20808:13;;;;;;19821:1047;;;;;;:::o;3081:25::-;;;;:::o;17433:157::-;17519:10;17550:32;17565:3;17570;17575:6;17550:14;:32::i;:::-;17542:40;;17433:157;;;;;:::o;2699:26::-;;;;:::o;10517:613::-;10568:11;10591:17;10631:15;:18;10647:1;10631:18;;;;;;;;;;;;10626:1;10612:13;;:15;10611:38;10591:58;;10716:21;10740:45;10764:7;;;;;;;;;;;10759:23;;;:25;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10759:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10759:25:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10759:25:0;;;;;;;;;;;;;;;;10741:12;10740:18;;:45;;;;:::i;:::-;10716:69;;10860:14;;10840:16;:34;10837:286;;10897:36;10918:14;;10897:16;:20;;:36;;;;:::i;:::-;10890:43;;;;;;10837:286;11028:1;11021:8;;;;10517:613;;:::o;3591:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17025:148::-;17105:4;17128:17;:25;17146:6;17128:25;;;;;;;;;;;;;;;:30;17154:3;17128:30;;;;;;;;;;;:37;;;;17121:44;;17025:148;;;;:::o;4173:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;7571:260::-;7660:7;7683:19;:28;7703:7;7683:28;;;;;;;;;;;;;;;;;;;;;;;;;7680:144;;;7734:11;;7727:18;;;;7680:144;7785:11;:18;7797:5;7785:18;;;;;;;;;;;;;;;:27;7804:7;7785:27;;;;;;;;;;;;;;;;7778:34;;7571:260;;;;;:::o;2962:24::-;;;;:::o;2672:25::-;;;;:::o;23442:657::-;23489:4;23506:12;23521:9;:24;23539:4;23521:24;;;;;;;;;;;;;;;;23506:39;;23639:8;;23629:7;:18;23625:467;;;23754:8;;23747:15;;;;;23625:467;23986:7;23979:14;;;23442:657;;:::o;2778:23::-;;;;:::o;21014:1810::-;21060:9;21072:3;21060:15;;21179:11;;21171:4;:19;21167:1650;;21318:10;;21304;;:24;21300:705;;21447:1;21433:10;;:15;;;;;;;;;;;21463:1;21450:10;:14;;;;21592:10;;21576:13;;:26;21568:4;:35;21554:11;:49;;;;21679:20;:18;:20::i;:::-;21668:8;:31;;;;21815:8;;21785:15;:27;21801:10;;21785:27;;;;;;;;;;;:38;;;;21906:53;21913:10;;21925:8;;21935:11;;21948:10;;21906:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21300:705;22033:1;22019:10;;:15;;;;;;;;;;;22150:13;;22143:4;:20;22129:11;:34;;;;22254:16;:14;:16::i;:::-;22243:8;:27;;;;22414:8;;22360:27;:39;22388:10;;22360:39;;;;;;;;;;;:51;22400:10;;22360:51;;;;;;;;;;;:62;;;;22476:9;22488:10;;22476:22;;22500:9;22523:1;22512:10;;:12;22500:24;;22556:1;22542:10;;:15;22539:62;;;22578:1;22567:10;;:12;22560:19;;22588:10;;22581:17;;22539:62;22655:121;22662:10;;22674;;22686:11;;22713:15;:21;22729:4;22713:21;;;;;;;;;;;:27;22735:4;22713:27;;;;;;;;;;;;22742:21;:27;22764:4;22742:27;;;;;;;;;;;:33;22770:4;22742:33;;;;;;;;;;;;22655:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21167:1650;;;21014:1810;:::o;1715:136::-;1773:7;1800:43;1804:1;1807;1800:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1793:50;;1715:136;;;;:::o;8760:1143::-;8867:6;8847:9;:16;8857:5;8847:16;;;;;;;;;;;;;;;;:26;;8839:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8955:9;:14;8965:3;8955:14;;;;;;;;;;;;;;;;8945:6;8928:9;:14;8938:3;8928:14;;;;;;;;;;;;;;;;:23;:41;;8920:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9005:9;:14;9015:3;9005:14;;;;;;;;;;;;;;;;;;;;;;;;;9001:76;;9021:11;9038:3;9021:21;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9021:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9053:1;9044:7;;:10;;;;;;;;;;;9071:4;9056:9;:14;9066:3;9056:14;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;9001:76;9105:28;9126:6;9105:9;:16;9115:5;9105:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;9087:9;:16;9097:5;9087:16;;;;;;;;;;;;;;;:46;;;;9144:9;9156:27;9164:5;9171:3;9176:6;9156:7;:27::i;:::-;9144:39;;9274:16;9285:4;9274:6;:10;;:16;;;;:::i;:::-;9255:9;:14;9265:3;9255:14;;;;;;;;;;;;;;;;:36;;;;;;;;;;;9395:4;9367:9;:24;9385:4;9367:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;9492:4;9479:9;;:17;;;;;;;;;;;9617:3;9601:40;;9610:5;9601:40;;;9623:16;9634:4;9623:6;:10;;:16;;;;:::i;:::-;9601:40;;;;;;;;;;;;;;;;;;9712:19;:26;9732:5;9712:26;;;;;;;;;;;;;;;;;;;;;;;;;9711:27;:56;;;;;9743:19;:24;9763:3;9743:24;;;;;;;;;;;;;;;;;;;;;;;;;9742:25;9711:56;9707:189;;;9813:4;9789:36;;9798:5;9789:36;;;9820:4;9789:36;;;;;;;;;;;;;;;;;;9707:189;8760:1143;;;;:::o;17633:779::-;17714:10;17737:17;:15;:17::i;:::-;17777:10;;17770:4;:17;17766:614;;;17899:39;17918:4;17924;17930:7;17899:18;:39::i;:::-;17891:47;;17766:614;;;18021:10;;18013:4;:18;18009:371;;;18138:10;;18131:4;:17;18127:242;;;18265:39;18284:4;18290;18296:7;18265:18;:39::i;:::-;18257:47;;18127:242;18009:371;17766:614;18399:5;18392:12;;17633:779;;;;;:::o;1859:190::-;1945:7;1978:1;1973;:6;;1981:12;1965:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1965:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:9;2021:1;2017;:5;2005:17;;2040:1;2033:8;;;1859:190;;;;;:::o;9938:423::-;10018:4;10039:19;:26;10059:5;10039:26;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;10069:19;:24;10089:3;10069:24;;;;;;;;;;;;;;;;;;;;;;;;;10039:54;10035:319;;;10116:1;10109:8;;;;10035:319;10260:4;10251:6;:13;;;;;;10243:22;;9938:423;;;;;;:::o;18457:1322::-;18542:10;18565:16;18584:21;:27;18606:4;18584:27;;;;;;;;;;;:33;18612:4;18584:33;;;;;;;;;;;:42;18618:7;18584:42;;;;;;;;;;;;;;;;18565:61;;18697:1;18682:11;:16;18678:1071;;;18724:1;18716:9;;18678:1071;;;18872:37;18889:4;18895;18901:7;18872:16;:37::i;:::-;18864:45;;19039:1;18994:21;:27;19016:4;18994:27;;;;;;;;;;;:33;19022:4;18994:33;;;;;;;;;;;:42;19028:7;18994:42;;;;;;;;;;;;;;;:46;;;;19165:53;19206:11;19165:24;:30;19190:4;19165:30;;;;;;;;;;;:36;19196:4;19165:36;;;;;;;;;;;;:40;;:53;;;;:::i;:::-;19126:24;:30;19151:4;19126:30;;;;;;;;;;;:36;19157:4;19126:36;;;;;;;;;;;:92;;;;19302:50;19346:5;19302:27;:33;19330:4;19302:33;;;;;;;;;;;:39;19336:4;19302:39;;;;;;;;;;;;:43;;:50;;;;:::i;:::-;19260:27;:33;19288:4;19260:33;;;;;;;;;;;:39;19294:4;19260:39;;;;;;;;;;;:92;;;;19406:5;19390:12;;:21;;;;;;;;;;;19507:40;19525:4;19532:7;19541:5;19507:9;:40::i;:::-;19655:7;19632:105;;19643:10;19632:105;;;19664:4;19670;19690:5;19697:27;:33;19725:4;19697:33;;;;;;;;;;;:39;19731:4;19697:39;;;;;;;;;;;;19632:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18678:1071;19766:5;19759:12;;;18457:1322;;;;;:::o

Swarm Source

ipfs://227cb27a497b95bc8c9c88f8c6d7b23494ca6920cfa2531267510354356fefad
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.