ETH Price: $1,910.06 (-0.27%)

Contract

0xe6fA27c3071ADACf5dF225443d34963bfFDf06aB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Senior Me...193341752024-02-29 15:51:11398 days ago1709221871IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0040434870.0449951
Set Max Reserve190351612024-01-18 17:13:35440 days ago1705598015IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0017608748.47276769
Set Max Reserve144439722022-03-23 17:47:231105 days ago1648057643IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0018952445.97548952
Set Max Reserve144431172022-03-23 14:35:041106 days ago1648046104IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0021253251.55674535
Set Max Reserve143861282022-03-14 17:35:361114 days ago1647279336IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0012693330.79198607
Set Max Reserve142709432022-02-24 20:24:081132 days ago1645734248IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00602105146.06056758
Update Senior Me...142194852022-02-16 21:02:311140 days ago1645045351IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0045080978.09331474
Update Senior Me...142109562022-02-15 13:28:461142 days ago1644931726IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0039080667.69908788
Update Senior Me...142057032022-02-14 17:48:331142 days ago1644860913IN
0xe6fA27c3...bfFDf06aB
0 ETH0.004466877.39414511
Update Junior Me...139981792022-01-13 16:11:251175 days ago1642090285IN
0xe6fA27c3...bfFDf06aB
0 ETH0.01190245206.50000159
Update Senior Me...139981772022-01-13 16:11:021175 days ago1642090262IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0116764202.26930218
Set Max Reserve139677042022-01-08 23:11:151179 days ago1641683475IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00518886125.8730027
Set Max Reserve139524402022-01-06 14:43:091182 days ago1641480189IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00437155106.04657598
Update Senior Me...139393932022-01-04 14:02:091184 days ago1641304929IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0041568372.00858812
Update Senior Me...139393762022-01-04 13:59:541184 days ago1641304794IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0049883686.41309868
Update Junior Me...139332892022-01-03 15:32:291185 days ago1641223949IN
0xe6fA27c3...bfFDf06aB
0 ETH0.0055291595.92730256
Update Senior Me...139332532022-01-03 15:25:251185 days ago1641223525IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00700993121.4324956
Set Max Reserve136009662021-11-12 11:11:131237 days ago1636715473IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00438319106.35985032
Update Junior Me...135950042021-11-11 12:52:531238 days ago1636635173IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00665908115.53095821
Update Junior Me...135557692021-11-05 9:22:271244 days ago1636104147IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00637238110.55682926
Update Senior Me...135557582021-11-05 9:20:481244 days ago1636104048IN
0xe6fA27c3...bfFDf06aB
0 ETH0.00624001108.09526261

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
-134029962021-10-12 10:08:061268 days ago1634033286  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PoolAdmin

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-12
*/

// Verified using https://dapp.tools

// hevm: flattened sources of src/lender/admin/pool.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.7.6;

////// src/lender/admin/pool.sol
/* pragma solidity >=0.7.6; */

interface AssessorLike_3 {
    function file(bytes32 name, uint256 value) external;
}

interface LendingAdapterLike {
    function raise(uint256 amount) external;
    function sink(uint256 amount) external;
    function heal() external;
    function file(bytes32 what, uint value) external;
}

interface FeedLike {
    function overrideWriteOff(uint loan, uint writeOffGroupIndex_) external;
    function file(bytes32 name, uint risk_, uint thresholdRatio_, uint ceilingRatio_, uint rate_, uint recoveryRatePD_) external;
    function file(bytes32 name, uint rate_, uint writeOffPercentage_, uint overdueDays_) external;
    function file(bytes32 name, uint value) external;
    function file(bytes32 name, bytes32 nftID_, uint maturityDate_) external;
    function update(bytes32 nftID_,  uint value) external;
    function update(bytes32 nftID_, uint value, uint risk_) external;
}

interface MemberlistLike_3 {
    function updateMember(address usr, uint256 validUntil) external;
    function updateMembers(address[] calldata users, uint256 validUntil) external;
}

interface CoordinatorLike_2 {
    function file(bytes32 name, uint value) external;
    function file(bytes32 name, bool value) external;
    function poolClosing() external view returns(bool);
}

// Wrapper contract for various pool management tasks.
contract PoolAdmin {
  
    AssessorLike_3        public assessor;
    LendingAdapterLike  public lending;
    FeedLike            public navFeed;
    MemberlistLike_3      public seniorMemberlist;
    MemberlistLike_3      public juniorMemberlist;
    CoordinatorLike_2     public coordinator;

    bool                public live = true;

    mapping (address => uint256) public admin_level;

    uint public constant LEVEL_1 = 1;
    uint public constant LEVEL_2 = 2;
    uint public constant LEVEL_3 = 3;

    modifier level1     { require(admin_level[msg.sender] >= LEVEL_1 && live); _; }
    modifier level2     { require(admin_level[msg.sender] >= LEVEL_2 && live); _; }
    modifier level3     { require(admin_level[msg.sender] == LEVEL_3 && live); _; }

    constructor() {
        admin_level[msg.sender] = LEVEL_3;
        emit SetAdminLevel(msg.sender, LEVEL_3);
    }

    // --- Liquidity Management, authorized by level 1 admins ---
    event SetMaxReserve(uint256 value);
    event RaiseCreditline(uint256 amount);
    event SinkCreditline(uint256 amount);
    event HealCreditline();
    event UpdateSeniorMember(address indexed usr, uint256 validUntil);
    event UpdateSeniorMembers(address[] indexed users, uint256 validUntil);
    event UpdateJuniorMember(address indexed usr, uint256 validUntil);
    event UpdateJuniorMembers(address[] indexed users, uint256 validUntil);

    // Manage max reserve
    function setMaxReserve(uint256 value) public level1 {
        assessor.file("maxReserve", value);
        emit SetMaxReserve(value);
    }

    // Manage creditline
    function raiseCreditline(uint256 amount) public level1 {
        lending.raise(amount);
        emit RaiseCreditline(amount);
    }

    function sinkCreditline(uint256 amount) public level1 {
        lending.sink(amount);
        emit SinkCreditline(amount);
    }

    function healCreditline() public level1 {
        lending.heal();
        emit HealCreditline();
    }

    function setMaxReserveAndRaiseCreditline(uint256 newMaxReserve, uint256 creditlineRaise) public level1 {
        setMaxReserve(newMaxReserve);
        raiseCreditline(creditlineRaise);
    }

    function setMaxReserveAndSinkCreditline(uint256 newMaxReserve, uint256 creditlineSink) public level1 {
        setMaxReserve(newMaxReserve);
        sinkCreditline(creditlineSink);
    }

    // Manage memberlists
    function updateSeniorMember(address usr, uint256 validUntil) public level1 {
        seniorMemberlist.updateMember(usr, validUntil);
        emit UpdateSeniorMember(usr, validUntil);
    }

    function updateSeniorMembers(address[] memory users, uint256 validUntil) public level1 {
        seniorMemberlist.updateMembers(users, validUntil);
        emit UpdateSeniorMembers(users, validUntil);
    }

    function updateJuniorMember(address usr, uint256 validUntil) public level1 {
        juniorMemberlist.updateMember(usr, validUntil);
        emit UpdateJuniorMember(usr, validUntil);
    }

    function updateJuniorMembers(address[] memory users, uint256 validUntil) public level1 {
        juniorMemberlist.updateMembers(users, validUntil);
        emit UpdateJuniorMembers(users, validUntil);
    }
    
    // --- Risk Management, authorized by level 2 admins ---
    event OverrideWriteOff(uint loan, uint writeOffGroupIndex);
    event AddRiskGroup(uint risk_, uint thresholdRatio_, uint ceilingRatio_, uint rate_, uint recoveryRatePD_);
    event AddRiskGroups(uint[] risks_, uint[] thresholdRatios_, uint[] ceilingRatios_, uint[] rates_);
    event AddWriteOffGroup(uint rate_, uint writeOffPercentage_, uint overdueDays_);
    event SetMatBuffer(uint value);
    event UpdateNFTValue(bytes32 nftID_, uint value);
    event UpdateNFTValueRisk(bytes32 nftID_, uint value, uint risk_);
    event UpdateNFTMaturityDate(bytes32 nftID_, uint maturityDate_);

    function overrideWriteOff(uint loan, uint writeOffGroupIndex_) public level2 {
        navFeed.overrideWriteOff(loan, writeOffGroupIndex_);
        emit OverrideWriteOff(loan, writeOffGroupIndex_);
    }

    function addRiskGroup(uint risk_, uint thresholdRatio_, uint ceilingRatio_, uint rate_, uint recoveryRatePD_) public level2 {
        navFeed.file("riskGroup", risk_, thresholdRatio_, ceilingRatio_, rate_, recoveryRatePD_);
        emit AddRiskGroup(risk_, thresholdRatio_, ceilingRatio_, rate_, recoveryRatePD_);
    }

    function addRiskGroups(uint[] memory risks_, uint[] memory thresholdRatios_, uint[] memory ceilingRatios_, uint[] memory rates_, uint[] memory recoveryRatePDs_) public level2 {
        require(risks_.length == thresholdRatios_.length && thresholdRatios_.length == ceilingRatios_.length && ceilingRatios_.length == rates_.length && rates_.length == recoveryRatePDs_.length, "non-matching-arguments");
        for (uint i = 0; i < risks_.length; i++) {
            addRiskGroup(risks_[i], thresholdRatios_[i], ceilingRatios_[i], rates_[i], recoveryRatePDs_[i]);
        }
    }

    function addWriteOffGroup(uint rate_, uint writeOffPercentage_, uint overdueDays_) public level2 {
        navFeed.file("writeOffGroup", rate_, writeOffPercentage_, overdueDays_);
        emit AddWriteOffGroup(rate_, writeOffPercentage_, overdueDays_);
    }

    function addWriteOffGroups(uint[] memory rates_, uint[] memory writeOffPercentages_, uint[] memory overdueDays_) public level2 {
        require(rates_.length == writeOffPercentages_.length && writeOffPercentages_.length == overdueDays_.length, "non-matching-arguments");
        for (uint i = 0; i < rates_.length; i++) {
            addWriteOffGroup(rates_[i], writeOffPercentages_[i], overdueDays_[i]);
        }
    }

    function setMatBuffer(uint value) public level3 {
        lending.file("buffer", value);
        emit SetMatBuffer(value);
    }

    function updateNFTValue(bytes32 nftID_, uint value) public level2 {
        navFeed.update(nftID_, value);
        emit UpdateNFTValue(nftID_, value);
    }

    function updateNFTValueRisk(bytes32 nftID_, uint value, uint risk_) public level2 {
        navFeed.update(nftID_, value, risk_);
        emit UpdateNFTValueRisk(nftID_, value, risk_);
    }

    function updateNFTMaturityDate(bytes32 nftID_, uint maturityDate_) public level2 {
        navFeed.file("maturityDate", nftID_, maturityDate_);
        emit UpdateNFTMaturityDate(nftID_, maturityDate_);
    }

    // --- Pool Governance, authorized by level 3 admins ---
    event File(bytes32 indexed what, bool indexed data);
    event SetSeniorInterestRate(uint value);
    event SetDiscountRate(uint value);
    event SetMinimumEpochTime(uint value);
    event SetChallengeTime(uint value);
    event SetMinSeniorRatio(uint value);
    event SetMaxSeniorRatio(uint value);
    event SetEpochScoringWeights(uint weightSeniorRedeem, uint weightJuniorRedeem, uint weightJuniorSupply, uint weightSeniorSupply);
    event ClosePool();
    event UnclosePool();
    event SetAdminLevel(address indexed usr, uint indexed level);
    event Depend(bytes32 indexed contractname, address addr);

    function setSeniorInterestRate(uint value) public level3 {
        assessor.file("seniorInterestRate", value);
        emit SetSeniorInterestRate(value);
    }

    function setDiscountRate(uint value) public level3 {
        navFeed.file("discountRate", value);
        emit SetDiscountRate(value);
    }

    function setMinimumEpochTime(uint value) public level3 {
        coordinator.file("minimumEpochTime", value);
        emit SetMinimumEpochTime(value);
    }

    function setChallengeTime(uint value) public level3 {
        coordinator.file("challengeTime", value);
        emit SetChallengeTime(value);
    }

    function setMinSeniorRatio(uint value) public level3 {
        assessor.file("minSeniorRatio", value);
        emit SetMinSeniorRatio(value);
    }

    function setMaxSeniorRatio(uint value) public level3 {
        assessor.file("maxSeniorRatio", value);
        emit SetMaxSeniorRatio(value);
    }

    function setEpochScoringWeights(uint weightSeniorRedeem, uint weightJuniorRedeem, uint weightJuniorSupply, uint weightSeniorSupply) public level3 {
        coordinator.file("weightSeniorRedeem", weightSeniorRedeem);
        coordinator.file("weightJuniorRedeem", weightJuniorRedeem);
        coordinator.file("weightJuniorSupply", weightJuniorSupply);
        coordinator.file("weightSeniorSupply", weightSeniorSupply);
        emit SetEpochScoringWeights(weightSeniorRedeem, weightJuniorRedeem, weightJuniorSupply, weightSeniorSupply);
    }

    function closePool() public level3 {
        require(coordinator.poolClosing() == false, "already-closed");
        coordinator.file("poolClosing", true);
        emit ClosePool();
    }

    function unclosePool() public level3 {
        require(coordinator.poolClosing() == true, "not-yet-closed");
        coordinator.file("poolClosing", false);
        emit UnclosePool();
    }

    modifier canSetAdminlevel(uint level) {
        require(level >= 0 && level <= LEVEL_3);
        if (level == 0) require(admin_level[msg.sender] == LEVEL_3);
        if (level == LEVEL_1) require(admin_level[msg.sender] >= LEVEL_2);
        if (level == LEVEL_2 || level == LEVEL_3) require(admin_level[msg.sender] == LEVEL_3);
        _;
    }

    function setAdminLevel(address usr, uint level) public canSetAdminlevel(level) {
        admin_level[usr] = level;
        emit SetAdminLevel(usr, level);
    }

    // Aliases so the root contract can use its relyContract/denyContract methods
    function rely(address usr) public level3 {
        setAdminLevel(usr, 3);
    }

    function deny(address usr) public level3 {
        setAdminLevel(usr, 0);
    }

    function depend(bytes32 contractName, address addr) public level3 {
        if (contractName == "assessor") {
            assessor = AssessorLike_3(addr);
        } else if (contractName == "lending") {
            lending = LendingAdapterLike(addr);
        } else if (contractName == "seniorMemberlist") {
            seniorMemberlist = MemberlistLike_3(addr);
        } else if (contractName == "juniorMemberlist") {
            juniorMemberlist = MemberlistLike_3(addr);
        } else if (contractName == "navFeed") {
            navFeed = FeedLike(addr);
        } else if (contractName == "coordinator") {
            coordinator = CoordinatorLike_2(addr);
        } else revert();
        emit Depend(contractName, addr);
    }

    function file(bytes32 what, bool data) public level3 {
        live = data;
        emit File(what, data);
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"risk_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thresholdRatio_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ceilingRatio_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"recoveryRatePD_","type":"uint256"}],"name":"AddRiskGroup","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"risks_","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"thresholdRatios_","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"ceilingRatios_","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"rates_","type":"uint256[]"}],"name":"AddRiskGroups","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rate_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"writeOffPercentage_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"overdueDays_","type":"uint256"}],"name":"AddWriteOffGroup","type":"event"},{"anonymous":false,"inputs":[],"name":"ClosePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"contractname","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"Depend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"bool","name":"data","type":"bool"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[],"name":"HealCreditline","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"loan","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"writeOffGroupIndex","type":"uint256"}],"name":"OverrideWriteOff","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RaiseCreditline","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"uint256","name":"level","type":"uint256"}],"name":"SetAdminLevel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetChallengeTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetDiscountRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"weightSeniorRedeem","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weightJuniorRedeem","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weightJuniorSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weightSeniorSupply","type":"uint256"}],"name":"SetEpochScoringWeights","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetMatBuffer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetMaxReserve","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetMaxSeniorRatio","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetMinSeniorRatio","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetMinimumEpochTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetSeniorInterestRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SinkCreditline","type":"event"},{"anonymous":false,"inputs":[],"name":"UnclosePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"UpdateJuniorMember","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"users","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"UpdateJuniorMembers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"maturityDate_","type":"uint256"}],"name":"UpdateNFTMaturityDate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"UpdateNFTValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"risk_","type":"uint256"}],"name":"UpdateNFTValueRisk","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"UpdateSeniorMember","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"users","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"UpdateSeniorMembers","type":"event"},{"inputs":[],"name":"LEVEL_1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL_2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL_3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"risk_","type":"uint256"},{"internalType":"uint256","name":"thresholdRatio_","type":"uint256"},{"internalType":"uint256","name":"ceilingRatio_","type":"uint256"},{"internalType":"uint256","name":"rate_","type":"uint256"},{"internalType":"uint256","name":"recoveryRatePD_","type":"uint256"}],"name":"addRiskGroup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"risks_","type":"uint256[]"},{"internalType":"uint256[]","name":"thresholdRatios_","type":"uint256[]"},{"internalType":"uint256[]","name":"ceilingRatios_","type":"uint256[]"},{"internalType":"uint256[]","name":"rates_","type":"uint256[]"},{"internalType":"uint256[]","name":"recoveryRatePDs_","type":"uint256[]"}],"name":"addRiskGroups","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate_","type":"uint256"},{"internalType":"uint256","name":"writeOffPercentage_","type":"uint256"},{"internalType":"uint256","name":"overdueDays_","type":"uint256"}],"name":"addWriteOffGroup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"rates_","type":"uint256[]"},{"internalType":"uint256[]","name":"writeOffPercentages_","type":"uint256[]"},{"internalType":"uint256[]","name":"overdueDays_","type":"uint256[]"}],"name":"addWriteOffGroups","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admin_level","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assessor","outputs":[{"internalType":"contract AssessorLike_3","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coordinator","outputs":[{"internalType":"contract CoordinatorLike_2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"}],"name":"depend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"bool","name":"data","type":"bool"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"healCreditline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"juniorMemberlist","outputs":[{"internalType":"contract MemberlistLike_3","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lending","outputs":[{"internalType":"contract LendingAdapterLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"navFeed","outputs":[{"internalType":"contract FeedLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"loan","type":"uint256"},{"internalType":"uint256","name":"writeOffGroupIndex_","type":"uint256"}],"name":"overrideWriteOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"raiseCreditline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seniorMemberlist","outputs":[{"internalType":"contract MemberlistLike_3","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"level","type":"uint256"}],"name":"setAdminLevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setChallengeTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setDiscountRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weightSeniorRedeem","type":"uint256"},{"internalType":"uint256","name":"weightJuniorRedeem","type":"uint256"},{"internalType":"uint256","name":"weightJuniorSupply","type":"uint256"},{"internalType":"uint256","name":"weightSeniorSupply","type":"uint256"}],"name":"setEpochScoringWeights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMatBuffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMaxReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxReserve","type":"uint256"},{"internalType":"uint256","name":"creditlineRaise","type":"uint256"}],"name":"setMaxReserveAndRaiseCreditline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxReserve","type":"uint256"},{"internalType":"uint256","name":"creditlineSink","type":"uint256"}],"name":"setMaxReserveAndSinkCreditline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMaxSeniorRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMinSeniorRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMinimumEpochTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setSeniorInterestRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sinkCreditline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclosePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"updateJuniorMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"updateJuniorMembers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"internalType":"uint256","name":"maturityDate_","type":"uint256"}],"name":"updateNFTMaturityDate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateNFTValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"nftID_","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"risk_","type":"uint256"}],"name":"updateNFTValueRisk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"updateSeniorMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256","name":"validUntil","type":"uint256"}],"name":"updateSeniorMembers","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526001600560146101000a81548160ff02191690831515021790555034801561002b57600080fd5b506003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060033373ffffffffffffffffffffffffffffffffffffffff167fcc58c17d90ea2e37b516db7352842e2a5c49c7fec2ed1ff197dc57c6bcab06c760405160405180910390a361419c806100c56000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806366805de511610151578063a6c01960116100c3578063c878e5e311610087578063c878e5e31461100d578063cf66cf7014611045578063d26d48381461107d578063eaf83808146110ab578063ecccf46a146110b5578063f5775565146110e357610274565b8063a6c0196014610b93578063ae0a72bb14610bc7578063b0c138da14610bf5578063b5c4317f14610cb7578063c23cffb314610d0557610274565b8063957aa58c11610115578063957aa58c14610a4757806395e97eee14610a675780639adc339d14610a9b5780639c52a7f114610ae95780639e0e2bd314610b2d578063a500c47b14610b6557610274565b806366805de5146107b35780636d45158b146107bd5780636e490bf0146107eb5780637c69febd146109cb5780638453b9eb146109f957610274565b806353ac9912116101ea57806357a645d2116101ae57806357a645d2146106915780635950bcb2146106d35780635b7953ca146107295780635fa2c6271461073357806364ddc8e51461075157806365fae35e1461076f57610274565b806353ac9912146104df57806353c174c11461051357806354eb762b1461055f578063567bede31461062157806356a87caa1461066357610274565b806328b8c98f1161023c57806328b8c98f1461039f5780632d6ad558146103ed5780633cc1c51e146104275780634244810d14610445578063425fc08a1461047d57806346e2cf24146104b157610274565b80630512f972146102795780630a009097146102d15780631821d69614610305578063251328251461033957806327fa272314610367575b600080fd5b6102bb6004803603602081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611111565b6040518082815260200191505060405180910390f35b6102d9611129565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61030d61114f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103656004803603602081101561034f57600080fd5b8101908080359060200190929190505050611173565b005b61039d6004803603604081101561037d57600080fd5b8101908080359060200190929190803590602001909291905050506112c6565b005b6103eb600480360360408110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611403565b005b6104256004803603604081101561040357600080fd5b8101908080359060200190929190803515159060200190929190505050611565565b005b61042f611617565b6040518082815260200191505060405180910390f35b61047b6004803603604081101561045b57600080fd5b81019080803590602001909291908035906020019092919050505061161c565b005b610485611697565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104dd600480360360208110156104c757600080fd5b81019080803590602001909291905050506116bd565b005b6104e761180e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055d6004803603608081101561052957600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611834565b005b61061f6004803603604081101561057557600080fd5b810190808035906020019064010000000081111561059257600080fd5b8201836020820111156105a457600080fd5b803590602001918460208302840111640100000000831117156105c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bc1565b005b6106616004803603606081101561063757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611d7a565b005b61068f6004803603602081101561067957600080fd5b8101908080359060200190929190505050611ec8565b005b6106d1600480360360608110156106a757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061201a565b005b610727600480360360a08110156106e957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612190565b005b610731612328565b005b61073b61258e565b6040518082815260200191505060405180910390f35b610759612593565b6040518082815260200191505060405180910390f35b6107b16004803603602081101561078557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b005b6107bb61260a565b005b6107e9600480360360208110156107d357600080fd5b8101908080359060200190929190505050612870565b005b6109c96004803603606081101561080157600080fd5b810190808035906020019064010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108b257600080fd5b8201836020820111156108c457600080fd5b803590602001918460208302840111640100000000831117156108e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561094657600080fd5b82018360208201111561095857600080fd5b8035906020019184602083028401116401000000008311171561097a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506129c1565b005b6109f7600480360360208110156109e157600080fd5b8101908080359060200190929190505050612b0d565b005b610a4560048036036040811015610a0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c60565b005b610a4f612dc2565b60405180821515815260200191505060405180910390f35b610a6f612dd5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ae760048036036040811015610ab157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfb565b005b610b2b60048036036020811015610aff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061314e565b005b610b6360048036036040811015610b4357600080fd5b8101908080359060200190929190803590602001909291905050506131c0565b005b610b9160048036036020811015610b7b57600080fd5b8101908080359060200190929190505050613325565b005b610b9b613476565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bf360048036036020811015610bdd57600080fd5b810190808035906020019092919050505061349c565b005b610cb560048036036040811015610c0b57600080fd5b8101908080359060200190640100000000811115610c2857600080fd5b820183602082011115610c3a57600080fd5b80359060200191846020830284011164010000000083111715610c5c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506135ef565b005b610d0360048036036040811015610ccd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506137a8565b005b61100b600480360360a0811015610d1b57600080fd5b8101908080359060200190640100000000811115610d3857600080fd5b820183602082011115610d4a57600080fd5b80359060200191846020830284011164010000000083111715610d6c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dcc57600080fd5b820183602082011115610dde57600080fd5b80359060200191846020830284011164010000000083111715610e0057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610e6057600080fd5b820183602082011115610e7257600080fd5b80359060200191846020830284011164010000000083111715610e9457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ef457600080fd5b820183602082011115610f0657600080fd5b80359060200191846020830284011164010000000083111715610f2857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610f8857600080fd5b820183602082011115610f9a57600080fd5b80359060200191846020830284011164010000000083111715610fbc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061395f565b005b6110436004803603604081101561102357600080fd5b810190808035906020019092919080359060200190929190505050613aef565b005b61107b6004803603604081101561105b57600080fd5b810190808035906020019092919080359060200190929190505050613c2c565b005b6110a96004803603602081101561109357600080fd5b8101908080359060200190929190505050613ca7565b005b6110b3613dd3565b005b6110e1600480360360208110156110cb57600080fd5b8101908080359060200190929190505050613ee8565b005b61110f600480360360208110156110f957600080fd5b810190808035906020019092919050505061403b565b005b60066020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156111ce5750600560149054906101000a900460ff165b6111d757600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6368616c6c656e676554696d6500000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050507fe55ad366031b3e815472888247fd2c399f768a26d27855efbf09ddf0045a2d8f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156113225750600560149054906101000a900460ff165b61132b57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327fa272383836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156113a857600080fd5b505af11580156113bc573d6000803e3d6000fd5b505050507f9586d4bc42cccd072cc2c9bfdfb2358f54275eb1b31a587ffd7855cab8e03ca88282604051808381526020018281526020019250505060405180910390a15050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561145f5750600560149054906101000a900460ff165b61146857600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663336137c883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156114fb57600080fd5b505af115801561150f573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f4af969758ea13d0f201f2b7d6b434ee573d27868444630e95e86c915f3dac5c5826040518082815260200191505060405180910390a25050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156115c05750600560149054906101000a900460ff165b6115c957600080fd5b80600560146101000a81548160ff021916908315150217905550801515827f3201ed7b3983dc1617a8e93b9534f837bfdd59e8afe0e59a5d536d379db0ab0d60405160405180910390a35050565b600181565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156116785750600560149054906101000a900460ff165b61168157600080fd5b61168a82611ec8565b61169381613ca7565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156117185750600560149054906101000a900460ff165b61172157600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f73656e696f72496e746572657374526174650000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156117bc57600080fd5b505af11580156117d0573d6000803e3d6000fd5b505050507f7f9680e5607e54e74c541c2fec804994eb0e1c8fa7192289ec9aed13081e1a1d816040518082815260200191505060405180910390a150565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561188f5750600560149054906101000a900460ff165b61189857600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114856040518263ffffffff1660e01b815260040180807f77656967687453656e696f7252656465656d0000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561193557600080fd5b505af1158015611949573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114846040518263ffffffff1660e01b815260040180807f7765696768744a756e696f7252656465656d0000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114836040518263ffffffff1660e01b815260040180807f7765696768744a756e696f72537570706c790000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611a9f57600080fd5b505af1158015611ab3573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f77656967687453656e696f72537570706c790000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611b5457600080fd5b505af1158015611b68573d6000803e3d6000fd5b505050507f013745aa5f3dfad38720d5f9fe015f063a15432262d15a5084dda5570a7eedf1848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611c1d5750600560149054906101000a900460ff165b611c2657600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637adaa50483836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611cbe578082015181840152602081019050611ca3565b505050509050019350505050600060405180830381600087803b158015611ce457600080fd5b505af1158015611cf8573d6000803e3d6000fd5b505050508160405180828051906020019060200280838360005b83811015611d2d578082015181840152602081019050611d12565b5050505090500191505060405180910390207fd9804553665dfed4e0e50e75bffb175c782fe9b9580ecf55d0259c9d428fe32b826040518082815260200191505060405180910390a25050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611dd65750600560149054906101000a900460ff165b611ddf57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317d987a18484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611e6457600080fd5b505af1158015611e78573d6000803e3d6000fd5b505050507f48dc30b2fefedf4f86bcf366c1fce5e531e5e3bcffe2cb91962ca9472bf02ed183838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611f245750600560149054906101000a900460ff165b611f2d57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d61785265736572766500000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611fc857600080fd5b505af1158015611fdc573d6000803e3d6000fd5b505050507fe77c59b074a393c22b69e5dcb1647295c38b2a7a716e4452cd65715da7e1043f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156120765750600560149054906101000a900460ff165b61207f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663908ecd098484846040518463ffffffff1660e01b815260040180807f77726974654f666647726f7570000000000000000000000000000000000000008152506020018481526020018381526020018281526020019350505050600060405180830381600087803b15801561212c57600080fd5b505af1158015612140573d6000803e3d6000fd5b505050507f11d40381ef9574fb2dd4d3cea4269024bfd6e977e2efeae727065d643431a2f283838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156121ec5750600560149054906101000a900460ff165b6121f557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4c6bcd186868686866040518663ffffffff1660e01b815260040180807f7269736b47726f7570000000000000000000000000000000000000000000000081525060200186815260200185815260200184815260200183815260200182815260200195505050505050600060405180830381600087803b1580156122b257600080fd5b505af11580156122c6573d6000803e3d6000fd5b505050507fc12587a08b374c93ec285b081bd032ead566925002a7df160144e8ecd8fc61808585858585604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15050505050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156123835750600560149054906101000a900460ff165b61238c57600080fd5b60011515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341fcd35d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f857600080fd5b505afa15801561240c573d6000803e3d6000fd5b505050506040513d602081101561242257600080fd5b81019080805190602001909291905050501515146124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f742d7965742d636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d6ad55860006040518263ffffffff1660e01b815260040180807f706f6f6c436c6f73696e670000000000000000000000000000000000000000008152506020018215158152602001915050600060405180830381600087803b15801561254857600080fd5b505af115801561255c573d6000803e3d6000fd5b505050507f3566b96807ed0284db7709cf6771eba4604a329a2ad994131c4be48234b567c760405160405180910390a1565b600381565b600281565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156125f35750600560149054906101000a900460ff165b6125fc57600080fd5b6126078160036137a8565b50565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156126655750600560149054906101000a900460ff165b61266e57600080fd5b60001515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341fcd35d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126da57600080fd5b505afa1580156126ee573d6000803e3d6000fd5b505050506040513d602081101561270457600080fd5b810190808051906020019092919050505015151461278a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f616c72656164792d636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d6ad55860016040518263ffffffff1660e01b815260040180807f706f6f6c436c6f73696e670000000000000000000000000000000000000000008152506020018215158152602001915050600060405180830381600087803b15801561282a57600080fd5b505af115801561283e573d6000803e3d6000fd5b505050507fc7f0254714c87e1007bb2e427ed592a5932bf5b837b06a09eac179eddeacf75760405160405180910390a1565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156128cb5750600560149054906101000a900460ff165b6128d457600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d617853656e696f72526174696f000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561296f57600080fd5b505af1158015612983573d6000803e3d6000fd5b505050507f6e73f8d683eaa2d8bb63ca43ac944bd0f388938620b14c277f3c12fd096c598f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612a1d5750600560149054906101000a900460ff165b612a2657600080fd5b81518351148015612a38575080518251145b612aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6e6f6e2d6d61746368696e672d617267756d656e74730000000000000000000081525060200191505060405180910390fd5b60005b8351811015612b0757612afa848281518110612ac557fe5b6020026020010151848381518110612ad957fe5b6020026020010151848481518110612aed57fe5b602002602001015161201a565b8080600101915050612aad565b50505050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612b685750600560149054906101000a900460ff165b612b7157600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f646973636f756e74526174650000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015612c0e57600080fd5b505af1158015612c22573d6000803e3d6000fd5b505050507f21a8eefc17e9c864964b5a4c0769d87f39cc0a7576773159e12358bc0095ffc5816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612cbc5750600560149054906101000a900460ff165b612cc557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663336137c883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612d5857600080fd5b505af1158015612d6c573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f0aa0da8392688dd6c839404812d79598ee8f6a499b1f3d787a0944900b9bed66826040518082815260200191505060405180910390a25050565b600560149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612e565750600560149054906101000a900460ff165b612e5f57600080fd5b7f6173736573736f72000000000000000000000000000000000000000000000000821415612ecc57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fc565b7f6c656e64696e6700000000000000000000000000000000000000000000000000821415612f3a5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fb565b7f73656e696f724d656d6265726c69737400000000000000000000000000000000821415612fa85780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fa565b7f6a756e696f724d656d6265726c697374000000000000000000000000000000008214156130165780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f9565b7f6e617646656564000000000000000000000000000000000000000000000000008214156130845780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f8565b7f636f6f7264696e61746f720000000000000000000000000000000000000000008214156130f25780600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f7565b600080fd5b5b5b5b5b5b817f6b1c5500aa423d5848c47aefec3615dc13387acaa5bcd947bd971e7c53483cef82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156131a95750600560149054906101000a900460ff165b6131b257600080fd5b6131bd8160006137a8565b50565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561321c5750600560149054906101000a900460ff165b61322557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a0b287e83836040518363ffffffff1660e01b815260040180807f6d6174757269747944617465000000000000000000000000000000000000000081525060200183815260200182815260200192505050600060405180830381600087803b1580156132ca57600080fd5b505af11580156132de573d6000803e3d6000fd5b505050507ff5e7688833eca893a38df722c68f5a8b437bd9a417a1356c076cde11b22754498282604051808381526020018281526020019250505060405180910390a15050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156133805750600560149054906101000a900460ff165b61338957600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d696e53656e696f72526174696f000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561342457600080fd5b505af1158015613438573d6000803e3d6000fd5b505050507f435412afe13b9d7043120310d3e6b81dc092d6c4b01d8848453021e11d1575af816040518082815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156134f75750600560149054906101000a900460ff165b61350057600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d696e696d756d45706f636854696d6500000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561359d57600080fd5b505af11580156135b1573d6000803e3d6000fd5b505050507f0d669983328c32c4a0d7439cacc3a4effca53436a1b85c54c39082960597b4fa816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561364b5750600560149054906101000a900460ff165b61365457600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637adaa50483836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156136ec5780820151818401526020810190506136d1565b505050509050019350505050600060405180830381600087803b15801561371257600080fd5b505af1158015613726573d6000803e3d6000fd5b505050508160405180828051906020019060200280838360005b8381101561375b578082015181840152602081019050613740565b5050505090500191505060405180910390207f1fc29a6d0cb8946fcd449b80ac4d04ffe802f32e6795c60e2dd85db0adc35bc8826040518082815260200191505060405180910390a25050565b80600081101580156137bb575060038111155b6137c457600080fd5b600081141561381a576003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461381957600080fd5b5b6001811415613871576002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561387057600080fd5b5b60028114806138805750600381145b156138d2576003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d157600080fd5b5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818373ffffffffffffffffffffffffffffffffffffffff167fcc58c17d90ea2e37b516db7352842e2a5c49c7fec2ed1ff197dc57c6bcab06c760405160405180910390a3505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156139bb5750600560149054906101000a900460ff165b6139c457600080fd5b835185511480156139d6575082518451145b80156139e3575081518351145b80156139f0575080518251145b613a62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6e6f6e2d6d61746368696e672d617267756d656e74730000000000000000000081525060200191505060405180910390fd5b60005b8551811015613ae757613ada868281518110613a7d57fe5b6020026020010151868381518110613a9157fe5b6020026020010151868481518110613aa557fe5b6020026020010151868581518110613ab957fe5b6020026020010151868681518110613acd57fe5b6020026020010151612190565b8080600101915050613a65565b505050505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613b4b5750600560149054906101000a900460ff165b613b5457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a58bb84a83836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015613bd157600080fd5b505af1158015613be5573d6000803e3d6000fd5b505050507f5e018999c8c392b2644b6244d685cc2af57f97e4afddf142fe4c1fd292b206328282604051808381526020018281526020019250505060405180910390a15050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613c885750600560149054906101000a900460ff165b613c9157600080fd5b613c9a82611ec8565b613ca38161403b565b5050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613d035750600560149054906101000a900460ff165b613d0c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4ba067e826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613d8157600080fd5b505af1158015613d95573d6000803e3d6000fd5b505050507f08c8ca3a456f511a91494fd17e4fd27988420e70f5f161ced66afc3618fa4715816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613e2f5750600560149054906101000a900460ff165b613e3857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630434fe0b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050507feeeb2951966b9932c1b62029bea1ad3380300f1f2033c06798dcf6e4a7d6235b60405160405180910390a1565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015613f435750600560149054906101000a900460ff165b613f4c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6275666665720000000000000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050507f2dd983262042a2c16ff6816b3495b3daff60ce5ddb5a10ff99c47d321779147b816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156140975750600560149054906101000a900460ff165b6140a057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16624f4803826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561411457600080fd5b505af1158015614128573d6000803e3d6000fd5b505050507f6866eefc1fe55e4e4f76f50fc877713a79938015209a51fd7dd4bad127982555816040518082815260200191505060405180910390a15056fea2646970667358221220abf42bf8dcf707bcb5e9763b70d5aa70046726dc6258fe4c245ac19ec693d4c764736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102745760003560e01c806366805de511610151578063a6c01960116100c3578063c878e5e311610087578063c878e5e31461100d578063cf66cf7014611045578063d26d48381461107d578063eaf83808146110ab578063ecccf46a146110b5578063f5775565146110e357610274565b8063a6c0196014610b93578063ae0a72bb14610bc7578063b0c138da14610bf5578063b5c4317f14610cb7578063c23cffb314610d0557610274565b8063957aa58c11610115578063957aa58c14610a4757806395e97eee14610a675780639adc339d14610a9b5780639c52a7f114610ae95780639e0e2bd314610b2d578063a500c47b14610b6557610274565b806366805de5146107b35780636d45158b146107bd5780636e490bf0146107eb5780637c69febd146109cb5780638453b9eb146109f957610274565b806353ac9912116101ea57806357a645d2116101ae57806357a645d2146106915780635950bcb2146106d35780635b7953ca146107295780635fa2c6271461073357806364ddc8e51461075157806365fae35e1461076f57610274565b806353ac9912146104df57806353c174c11461051357806354eb762b1461055f578063567bede31461062157806356a87caa1461066357610274565b806328b8c98f1161023c57806328b8c98f1461039f5780632d6ad558146103ed5780633cc1c51e146104275780634244810d14610445578063425fc08a1461047d57806346e2cf24146104b157610274565b80630512f972146102795780630a009097146102d15780631821d69614610305578063251328251461033957806327fa272314610367575b600080fd5b6102bb6004803603602081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611111565b6040518082815260200191505060405180910390f35b6102d9611129565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61030d61114f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103656004803603602081101561034f57600080fd5b8101908080359060200190929190505050611173565b005b61039d6004803603604081101561037d57600080fd5b8101908080359060200190929190803590602001909291905050506112c6565b005b6103eb600480360360408110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611403565b005b6104256004803603604081101561040357600080fd5b8101908080359060200190929190803515159060200190929190505050611565565b005b61042f611617565b6040518082815260200191505060405180910390f35b61047b6004803603604081101561045b57600080fd5b81019080803590602001909291908035906020019092919050505061161c565b005b610485611697565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104dd600480360360208110156104c757600080fd5b81019080803590602001909291905050506116bd565b005b6104e761180e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055d6004803603608081101561052957600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611834565b005b61061f6004803603604081101561057557600080fd5b810190808035906020019064010000000081111561059257600080fd5b8201836020820111156105a457600080fd5b803590602001918460208302840111640100000000831117156105c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bc1565b005b6106616004803603606081101561063757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611d7a565b005b61068f6004803603602081101561067957600080fd5b8101908080359060200190929190505050611ec8565b005b6106d1600480360360608110156106a757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061201a565b005b610727600480360360a08110156106e957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612190565b005b610731612328565b005b61073b61258e565b6040518082815260200191505060405180910390f35b610759612593565b6040518082815260200191505060405180910390f35b6107b16004803603602081101561078557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b005b6107bb61260a565b005b6107e9600480360360208110156107d357600080fd5b8101908080359060200190929190505050612870565b005b6109c96004803603606081101561080157600080fd5b810190808035906020019064010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108b257600080fd5b8201836020820111156108c457600080fd5b803590602001918460208302840111640100000000831117156108e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561094657600080fd5b82018360208201111561095857600080fd5b8035906020019184602083028401116401000000008311171561097a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506129c1565b005b6109f7600480360360208110156109e157600080fd5b8101908080359060200190929190505050612b0d565b005b610a4560048036036040811015610a0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c60565b005b610a4f612dc2565b60405180821515815260200191505060405180910390f35b610a6f612dd5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ae760048036036040811015610ab157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfb565b005b610b2b60048036036020811015610aff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061314e565b005b610b6360048036036040811015610b4357600080fd5b8101908080359060200190929190803590602001909291905050506131c0565b005b610b9160048036036020811015610b7b57600080fd5b8101908080359060200190929190505050613325565b005b610b9b613476565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bf360048036036020811015610bdd57600080fd5b810190808035906020019092919050505061349c565b005b610cb560048036036040811015610c0b57600080fd5b8101908080359060200190640100000000811115610c2857600080fd5b820183602082011115610c3a57600080fd5b80359060200191846020830284011164010000000083111715610c5c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506135ef565b005b610d0360048036036040811015610ccd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506137a8565b005b61100b600480360360a0811015610d1b57600080fd5b8101908080359060200190640100000000811115610d3857600080fd5b820183602082011115610d4a57600080fd5b80359060200191846020830284011164010000000083111715610d6c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dcc57600080fd5b820183602082011115610dde57600080fd5b80359060200191846020830284011164010000000083111715610e0057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610e6057600080fd5b820183602082011115610e7257600080fd5b80359060200191846020830284011164010000000083111715610e9457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ef457600080fd5b820183602082011115610f0657600080fd5b80359060200191846020830284011164010000000083111715610f2857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610f8857600080fd5b820183602082011115610f9a57600080fd5b80359060200191846020830284011164010000000083111715610fbc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061395f565b005b6110436004803603604081101561102357600080fd5b810190808035906020019092919080359060200190929190505050613aef565b005b61107b6004803603604081101561105b57600080fd5b810190808035906020019092919080359060200190929190505050613c2c565b005b6110a96004803603602081101561109357600080fd5b8101908080359060200190929190505050613ca7565b005b6110b3613dd3565b005b6110e1600480360360208110156110cb57600080fd5b8101908080359060200190929190505050613ee8565b005b61110f600480360360208110156110f957600080fd5b810190808035906020019092919050505061403b565b005b60066020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156111ce5750600560149054906101000a900460ff165b6111d757600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6368616c6c656e676554696d6500000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050507fe55ad366031b3e815472888247fd2c399f768a26d27855efbf09ddf0045a2d8f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156113225750600560149054906101000a900460ff165b61132b57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327fa272383836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156113a857600080fd5b505af11580156113bc573d6000803e3d6000fd5b505050507f9586d4bc42cccd072cc2c9bfdfb2358f54275eb1b31a587ffd7855cab8e03ca88282604051808381526020018281526020019250505060405180910390a15050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561145f5750600560149054906101000a900460ff165b61146857600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663336137c883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156114fb57600080fd5b505af115801561150f573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f4af969758ea13d0f201f2b7d6b434ee573d27868444630e95e86c915f3dac5c5826040518082815260200191505060405180910390a25050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156115c05750600560149054906101000a900460ff165b6115c957600080fd5b80600560146101000a81548160ff021916908315150217905550801515827f3201ed7b3983dc1617a8e93b9534f837bfdd59e8afe0e59a5d536d379db0ab0d60405160405180910390a35050565b600181565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156116785750600560149054906101000a900460ff165b61168157600080fd5b61168a82611ec8565b61169381613ca7565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156117185750600560149054906101000a900460ff165b61172157600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f73656e696f72496e746572657374526174650000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156117bc57600080fd5b505af11580156117d0573d6000803e3d6000fd5b505050507f7f9680e5607e54e74c541c2fec804994eb0e1c8fa7192289ec9aed13081e1a1d816040518082815260200191505060405180910390a150565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561188f5750600560149054906101000a900460ff165b61189857600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114856040518263ffffffff1660e01b815260040180807f77656967687453656e696f7252656465656d0000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561193557600080fd5b505af1158015611949573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114846040518263ffffffff1660e01b815260040180807f7765696768744a756e696f7252656465656d0000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114836040518263ffffffff1660e01b815260040180807f7765696768744a756e696f72537570706c790000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611a9f57600080fd5b505af1158015611ab3573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f77656967687453656e696f72537570706c790000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611b5457600080fd5b505af1158015611b68573d6000803e3d6000fd5b505050507f013745aa5f3dfad38720d5f9fe015f063a15432262d15a5084dda5570a7eedf1848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611c1d5750600560149054906101000a900460ff165b611c2657600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637adaa50483836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611cbe578082015181840152602081019050611ca3565b505050509050019350505050600060405180830381600087803b158015611ce457600080fd5b505af1158015611cf8573d6000803e3d6000fd5b505050508160405180828051906020019060200280838360005b83811015611d2d578082015181840152602081019050611d12565b5050505090500191505060405180910390207fd9804553665dfed4e0e50e75bffb175c782fe9b9580ecf55d0259c9d428fe32b826040518082815260200191505060405180910390a25050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611dd65750600560149054906101000a900460ff165b611ddf57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317d987a18484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611e6457600080fd5b505af1158015611e78573d6000803e3d6000fd5b505050507f48dc30b2fefedf4f86bcf366c1fce5e531e5e3bcffe2cb91962ca9472bf02ed183838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611f245750600560149054906101000a900460ff165b611f2d57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d61785265736572766500000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015611fc857600080fd5b505af1158015611fdc573d6000803e3d6000fd5b505050507fe77c59b074a393c22b69e5dcb1647295c38b2a7a716e4452cd65715da7e1043f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156120765750600560149054906101000a900460ff165b61207f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663908ecd098484846040518463ffffffff1660e01b815260040180807f77726974654f666647726f7570000000000000000000000000000000000000008152506020018481526020018381526020018281526020019350505050600060405180830381600087803b15801561212c57600080fd5b505af1158015612140573d6000803e3d6000fd5b505050507f11d40381ef9574fb2dd4d3cea4269024bfd6e977e2efeae727065d643431a2f283838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156121ec5750600560149054906101000a900460ff165b6121f557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4c6bcd186868686866040518663ffffffff1660e01b815260040180807f7269736b47726f7570000000000000000000000000000000000000000000000081525060200186815260200185815260200184815260200183815260200182815260200195505050505050600060405180830381600087803b1580156122b257600080fd5b505af11580156122c6573d6000803e3d6000fd5b505050507fc12587a08b374c93ec285b081bd032ead566925002a7df160144e8ecd8fc61808585858585604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15050505050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156123835750600560149054906101000a900460ff165b61238c57600080fd5b60011515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341fcd35d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f857600080fd5b505afa15801561240c573d6000803e3d6000fd5b505050506040513d602081101561242257600080fd5b81019080805190602001909291905050501515146124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f742d7965742d636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d6ad55860006040518263ffffffff1660e01b815260040180807f706f6f6c436c6f73696e670000000000000000000000000000000000000000008152506020018215158152602001915050600060405180830381600087803b15801561254857600080fd5b505af115801561255c573d6000803e3d6000fd5b505050507f3566b96807ed0284db7709cf6771eba4604a329a2ad994131c4be48234b567c760405160405180910390a1565b600381565b600281565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156125f35750600560149054906101000a900460ff165b6125fc57600080fd5b6126078160036137a8565b50565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156126655750600560149054906101000a900460ff165b61266e57600080fd5b60001515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341fcd35d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126da57600080fd5b505afa1580156126ee573d6000803e3d6000fd5b505050506040513d602081101561270457600080fd5b810190808051906020019092919050505015151461278a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f616c72656164792d636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d6ad55860016040518263ffffffff1660e01b815260040180807f706f6f6c436c6f73696e670000000000000000000000000000000000000000008152506020018215158152602001915050600060405180830381600087803b15801561282a57600080fd5b505af115801561283e573d6000803e3d6000fd5b505050507fc7f0254714c87e1007bb2e427ed592a5932bf5b837b06a09eac179eddeacf75760405160405180910390a1565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156128cb5750600560149054906101000a900460ff165b6128d457600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d617853656e696f72526174696f000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561296f57600080fd5b505af1158015612983573d6000803e3d6000fd5b505050507f6e73f8d683eaa2d8bb63ca43ac944bd0f388938620b14c277f3c12fd096c598f816040518082815260200191505060405180910390a150565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612a1d5750600560149054906101000a900460ff165b612a2657600080fd5b81518351148015612a38575080518251145b612aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6e6f6e2d6d61746368696e672d617267756d656e74730000000000000000000081525060200191505060405180910390fd5b60005b8351811015612b0757612afa848281518110612ac557fe5b6020026020010151848381518110612ad957fe5b6020026020010151848481518110612aed57fe5b602002602001015161201a565b8080600101915050612aad565b50505050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612b685750600560149054906101000a900460ff165b612b7157600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f646973636f756e74526174650000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015612c0e57600080fd5b505af1158015612c22573d6000803e3d6000fd5b505050507f21a8eefc17e9c864964b5a4c0769d87f39cc0a7576773159e12358bc0095ffc5816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612cbc5750600560149054906101000a900460ff165b612cc557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663336137c883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612d5857600080fd5b505af1158015612d6c573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f0aa0da8392688dd6c839404812d79598ee8f6a499b1f3d787a0944900b9bed66826040518082815260200191505060405180910390a25050565b600560149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612e565750600560149054906101000a900460ff165b612e5f57600080fd5b7f6173736573736f72000000000000000000000000000000000000000000000000821415612ecc57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fc565b7f6c656e64696e6700000000000000000000000000000000000000000000000000821415612f3a5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fb565b7f73656e696f724d656d6265726c69737400000000000000000000000000000000821415612fa85780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130fa565b7f6a756e696f724d656d6265726c697374000000000000000000000000000000008214156130165780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f9565b7f6e617646656564000000000000000000000000000000000000000000000000008214156130845780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f8565b7f636f6f7264696e61746f720000000000000000000000000000000000000000008214156130f25780600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506130f7565b600080fd5b5b5b5b5b5b817f6b1c5500aa423d5848c47aefec3615dc13387acaa5bcd947bd971e7c53483cef82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156131a95750600560149054906101000a900460ff165b6131b257600080fd5b6131bd8160006137a8565b50565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561321c5750600560149054906101000a900460ff165b61322557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a0b287e83836040518363ffffffff1660e01b815260040180807f6d6174757269747944617465000000000000000000000000000000000000000081525060200183815260200182815260200192505050600060405180830381600087803b1580156132ca57600080fd5b505af11580156132de573d6000803e3d6000fd5b505050507ff5e7688833eca893a38df722c68f5a8b437bd9a417a1356c076cde11b22754498282604051808381526020018281526020019250505060405180910390a15050565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156133805750600560149054906101000a900460ff165b61338957600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d696e53656e696f72526174696f000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561342457600080fd5b505af1158015613438573d6000803e3d6000fd5b505050507f435412afe13b9d7043120310d3e6b81dc092d6c4b01d8848453021e11d1575af816040518082815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156134f75750600560149054906101000a900460ff165b61350057600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6d696e696d756d45706f636854696d6500000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561359d57600080fd5b505af11580156135b1573d6000803e3d6000fd5b505050507f0d669983328c32c4a0d7439cacc3a4effca53436a1b85c54c39082960597b4fa816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561364b5750600560149054906101000a900460ff165b61365457600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637adaa50483836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156136ec5780820151818401526020810190506136d1565b505050509050019350505050600060405180830381600087803b15801561371257600080fd5b505af1158015613726573d6000803e3d6000fd5b505050508160405180828051906020019060200280838360005b8381101561375b578082015181840152602081019050613740565b5050505090500191505060405180910390207f1fc29a6d0cb8946fcd449b80ac4d04ffe802f32e6795c60e2dd85db0adc35bc8826040518082815260200191505060405180910390a25050565b80600081101580156137bb575060038111155b6137c457600080fd5b600081141561381a576003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461381957600080fd5b5b6001811415613871576002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561387057600080fd5b5b60028114806138805750600381145b156138d2576003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d157600080fd5b5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818373ffffffffffffffffffffffffffffffffffffffff167fcc58c17d90ea2e37b516db7352842e2a5c49c7fec2ed1ff197dc57c6bcab06c760405160405180910390a3505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156139bb5750600560149054906101000a900460ff165b6139c457600080fd5b835185511480156139d6575082518451145b80156139e3575081518351145b80156139f0575080518251145b613a62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6e6f6e2d6d61746368696e672d617267756d656e74730000000000000000000081525060200191505060405180910390fd5b60005b8551811015613ae757613ada868281518110613a7d57fe5b6020026020010151868381518110613a9157fe5b6020026020010151868481518110613aa557fe5b6020026020010151868581518110613ab957fe5b6020026020010151868681518110613acd57fe5b6020026020010151612190565b8080600101915050613a65565b505050505050565b6002600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613b4b5750600560149054906101000a900460ff165b613b5457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a58bb84a83836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015613bd157600080fd5b505af1158015613be5573d6000803e3d6000fd5b505050507f5e018999c8c392b2644b6244d685cc2af57f97e4afddf142fe4c1fd292b206328282604051808381526020018281526020019250505060405180910390a15050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613c885750600560149054906101000a900460ff165b613c9157600080fd5b613c9a82611ec8565b613ca38161403b565b5050565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613d035750600560149054906101000a900460ff165b613d0c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4ba067e826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613d8157600080fd5b505af1158015613d95573d6000803e3d6000fd5b505050507f08c8ca3a456f511a91494fd17e4fd27988420e70f5f161ced66afc3618fa4715816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613e2f5750600560149054906101000a900460ff165b613e3857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630434fe0b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ea257600080fd5b505af1158015613eb6573d6000803e3d6000fd5b505050507feeeb2951966b9932c1b62029bea1ad3380300f1f2033c06798dcf6e4a7d6235b60405160405180910390a1565b6003600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015613f435750600560149054906101000a900460ff165b613f4c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329ae8114826040518263ffffffff1660e01b815260040180807f6275666665720000000000000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050507f2dd983262042a2c16ff6816b3495b3daff60ce5ddb5a10ff99c47d321779147b816040518082815260200191505060405180910390a150565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156140975750600560149054906101000a900460ff165b6140a057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16624f4803826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561411457600080fd5b505af1158015614128573d6000803e3d6000fd5b505050507f6866eefc1fe55e4e4f76f50fc877713a79938015209a51fd7dd4bad127982555816040518082815260200191505060405180910390a15056fea2646970667358221220abf42bf8dcf707bcb5e9763b70d5aa70046726dc6258fe4c245ac19ec693d4c764736f6c63430007060033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.