Sepolia Testnet

Contract

0x6ac02F3887B358591b8B2D22CfB1F36Fa5843867
Source Code Source Code

Overview

ETH Balance

0 ETH

Token Holdings

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Deposit To Layer80290112025-04-01 16:41:36294 days ago1743525696IN
0x6ac02F38...Fa5843867
0 ETH0.000629662.74826941
Withdraw From La...79731922025-03-24 19:48:24302 days ago1742845704IN
0x6ac02F38...Fa5843867
0 ETH0.0033453139.74941044
Deposit To Layer79652132025-03-23 17:11:24303 days ago1742749884IN
0x6ac02F38...Fa5843867
0 ETH0.000336921.50422316
Deposit To Layer79651722025-03-23 17:03:12303 days ago1742749392IN
0x6ac02F38...Fa5843867
0 ETH0.000043471.50457686
Deposit To Layer79651712025-03-23 17:03:00303 days ago1742749380IN
0x6ac02F38...Fa5843867
0 ETH0.000043481.50488398
Deposit To Layer79651692025-03-23 17:02:36303 days ago1742749356IN
0x6ac02F38...Fa5843867
0 ETH0.000043481.50502356
Deposit To Layer79651682025-03-23 17:02:24303 days ago1742749344IN
0x6ac02F38...Fa5843867
0 ETH0.000043491.50531341
Deposit To Layer79651672025-03-23 17:02:12303 days ago1742749332IN
0x6ac02F38...Fa5843867
0 ETH0.000043481.50500316
Deposit To Layer79651592025-03-23 17:00:36303 days ago1742749236IN
0x6ac02F38...Fa5843867
0 ETH0.000337131.50509395
Deposit To Layer79651552025-03-23 16:59:48303 days ago1742749188IN
0x6ac02F38...Fa5843867
0 ETH0.000043471.50472731
Deposit To Layer79651532025-03-23 16:59:24303 days ago1742749164IN
0x6ac02F38...Fa5843867
0 ETH0.000043481.50445382
Deposit To Layer79651462025-03-23 16:58:00303 days ago1742749080IN
0x6ac02F38...Fa5843867
0 ETH0.000086713
Deposit To Layer79651392025-03-23 16:56:36303 days ago1742748996IN
0x6ac02F38...Fa5843867
0 ETH0.000043471.50419464
Deposit To Layer79624332025-03-23 7:55:00303 days ago1742716500IN
0x6ac02F38...Fa5843867
0 ETH0.0002889310
Deposit To Layer79624322025-03-23 7:54:48303 days ago1742716488IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624322025-03-23 7:54:48303 days ago1742716488IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624322025-03-23 7:54:48303 days ago1742716488IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624312025-03-23 7:54:36303 days ago1742716476IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624312025-03-23 7:54:36303 days ago1742716476IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624302025-03-23 7:54:24303 days ago1742716464IN
0x6ac02F38...Fa5843867
0 ETH0.0022399510
Deposit To Layer79624272025-03-23 7:53:48303 days ago1742716428IN
0x6ac02F38...Fa5843867
0 ETH0.0022912510
Deposit To Layer79573632025-03-22 15:00:24304 days ago1742655624IN
0x6ac02F38...Fa5843867
0 ETH0.000344441.50337631
Deposit To Layer79363982025-03-19 16:53:36307 days ago1742403216IN
0x6ac02F38...Fa5843867
0 ETH0.00030251.35057533
Deposit To Layer79363902025-03-19 16:52:00307 days ago1742403120IN
0x6ac02F38...Fa5843867
0 ETH0.000036821.48027452
Deposit To Layer79358582025-03-19 15:02:36307 days ago1742396556IN
0x6ac02F38...Fa5843867
0 ETH0.0010134.42143701
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenBridge

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-02-04
*/

// File: .deps/github/tellor-io/layer/evm/contracts/interfaces/IBlobstreamO.sol


pragma solidity ^0.8.0;

struct OracleAttestationData {
    bytes32 queryId;
    ReportData report;
    uint256 attestationTimestamp;//timestamp of validatorSignatures on report
}

struct ReportData {
    bytes value;
    uint256 timestamp;//timestamp of reporter signature aggregation
    uint256 aggregatePower;
    uint256 previousTimestamp;
    uint256 nextTimestamp;
}

struct Signature {
    uint8 v;
    bytes32 r;
    bytes32 s;
}

struct Validator {
    address addr;
    uint256 power;
}

interface IBlobstreamO {
    function guardian() external view returns (address);
    function powerThreshold() external view returns (uint256);
    function unbondingPeriod() external view returns (uint256);
    function validatorTimestamp() external view returns (uint256);
    function verifyOracleData(
        OracleAttestationData calldata _attestData,
        Validator[] calldata _currentValidatorSet,
        Signature[] calldata _sigs
    ) external view;
}
// File: .deps/github/tellor-io/layer/evm/contracts/interfaces/ITellorFlex.sol


pragma solidity ^0.8.0;

interface ITellorFlex {
    function getDataBefore(bytes32 _queryId, uint256 _timestamp) external view returns (bool _ifRetrieve, bytes memory _value, uint256 _timestampRetrieved);
    function getIndexForDataBefore(bytes32 _queryId, uint256 _timestamp) external view returns (bool _found, uint256 _index);
    function getNewValueCountbyQueryId(bytes32 _queryId) external view returns (uint256);
    function getReporterByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns (address);
    function getTimestampbyQueryIdandIndex(bytes32 _queryId, uint256 _index) external view returns (uint256);
    function getTimeOfLastNewValue() external view returns (uint256);
    function isInDispute(bytes32 _queryId,uint256 _timestamp) external view returns (bool);
    function retrieveData(bytes32 _queryId, uint256 _timestamp) external view returns (bytes memory);
    function verify() external pure returns (uint256);
    function getNewValueCountbyQueryId() external view returns (uint256);
}

// File: .deps/github/tellor-io/layer/evm/contracts/interfaces/ITellorMaster.sol


pragma solidity ^0.8.0;

interface ITellorMaster {
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function getUintVar(bytes32 _data) external view returns (uint256);
    function mintToOracle() external;
    function totalSupply() external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}
// File: .deps/github/tellor-io/layer/evm/contracts/token-bridge/LayerTransition.sol


pragma solidity 0.8.19;



/// @title LayerTransition.
/// @dev The contract that enables users of really old tellor to keep using it (e.g. Liquity)
/// by forwarding calls to the Ethereum oracle contract
/// also disables all further changes of the oracle address for time based rewards
contract LayerTransition {
    /*Storage*/
    bytes32 updateOracleQueryId = keccak256(abi.encode("TellorOracleAddress", abi.encode(bytes(""))));
    ITellorMaster public token;
    ITellorFlex public tellorFlex;

    /*Functions*/
    /// @notice constructor
    /// @param _tellorFlex address of current tellor360 oracle contract
    /// @param _token address of the tellor token (tellorMaster)
    constructor(address _tellorFlex, address _token) {
        tellorFlex = ITellorFlex(_tellorFlex);
        token = ITellorMaster(_token);
    }

    /// @notice this is needed because it's called when calling mintToOracle.  We hijack it to keep it in the bridge
    /// @param _amount the amount of staking rewards to add to the token contract
    function addStakingRewards(uint256 _amount) external {
        token.transferFrom(msg.sender, address(this), _amount);
    }

    /// @notice This forwards getDataBefore calls to the old tellorFlex
    /// we're hijacking it a bit to disable further oracle updates
    /// @param _queryId queryId of interest
    /// @param _timestamp timestamp you want data to be older than
    function getDataBefore(bytes32 _queryId, uint256 _timestamp) external view returns(
        bool _ifRetrieve,
        bytes memory _value,
        uint256 _timestampRetrieved
    ) {
        if (_queryId == updateOracleQueryId) {
            return (true, abi.encode(address(this)), block.timestamp);
        }
        return tellorFlex.getDataBefore(_queryId, _timestamp);
    }

    /// @notice This forwards getIndexForDataBefore calls to the old tellorFlex
    /// @param _queryId queryId of interest
    /// @param _timestamp timestamp you want data for
    function getIndexForDataBefore(bytes32 _queryId, uint256 _timestamp) external view returns(bool _found, uint256 _index) {
        return tellorFlex.getIndexForDataBefore(_queryId, _timestamp);
    }

    /// @notice This forwards getNewValueCountbyQueryId calls to the old tellorFlex
    /// @param _queryId queryId of interest
    function getNewValueCountbyQueryId(bytes32 _queryId) external view returns(uint256) {
        return tellorFlex.getNewValueCountbyQueryId(_queryId);
    }

    /// @notice This forwards getReporterbyTimestamp calls to the old tellorFlex
    /// @param _queryId queryId of interest
    /// @param _timestamp timestamp you want data for
    function getReporterByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns(address) {
        return tellorFlex.getReporterByTimestamp(_queryId, _timestamp);
    }

    /// @notice This forwards getTimestampbyQueryIdandIndex calls to the old tellorFlex
    /// @param _queryId queryId of interest
    /// @param _index index you want data for
    function getTimestampbyQueryIdandIndex(bytes32 _queryId, uint256 _index) external view returns(uint256) {
        return tellorFlex.getTimestampbyQueryIdandIndex(_queryId, _index);
    }

    /// @notice This forwards getTimeOfLastNewValue calls to the old tellorFlex
    function getTimeOfLastNewValue() external view returns(uint256) {
        return tellorFlex.getTimeOfLastNewValue();
    }

    /// @notice This forwards isInDispute calls to the old tellorFlex
    /// @param _queryId queryId of interest
    /// @param _timestamp timestamp you want data for
    function isInDispute(bytes32 _queryId, uint256 _timestamp) external view returns(bool) {
        return tellorFlex.isInDispute(_queryId, _timestamp);
    }

    /// @notice This forwards retrieveData calls to the old tellorFlex
    /// @param _queryId being requested
    /// @param _timestamp to retrieve data/value from
    /// @return bytes value for timestamp submitted
    function retrieveData(bytes32 _queryId, uint256 _timestamp) external view returns(bytes memory) {
        return tellorFlex.retrieveData(_queryId, _timestamp);
    }

    /// @notice This returns a big number.  Necessary for upgrading the contract
    function verify() external pure returns (uint256) {
        return 9999;
    }
}


// File: .deps/github/tellor-io/layer/evm/contracts/token-bridge/TokenBridge.sol


pragma solidity 0.8.19;



/// @author Tellor Inc.
/// @title TokenBridge
/// @dev This is the tellor token bridge to move tokens from
/// Ethereum to layer.  No one needs to do this.  The only reason you 
/// move your tokens over is to become a reporter/validator/tipper.  It works by
/// using layer itself as the bridge and then reads the lightclient contract for 
/// bridging back.  There is a long delay in bridging back (enforced by layer) of 12 hours
contract TokenBridge is LayerTransition{
    /*Storage*/
    IBlobstreamO public bridge;
    uint256 public depositId; // counter of how many deposits have been made
    uint256 public depositLimitUpdateTime; // last time the deposit limit was updated
    uint256 public depositLimitRecord; // amount you can deposit per limit period
    BridgeState public bridgeState; // state of the bridge
    uint256 public bridgeStateUpdateTime; // last time the bridge state was updated
    uint256 public withdrawLimitUpdateTime; // last time the withdraw limit was updated
    uint256 public withdrawLimitRecord; // amount you can withdraw per limit period
    uint256 public constant DEPOSIT_LIMIT_DENOMINATOR = 100e18 / 20e18; // 100/depositLimitPercentage
    uint256 public constant MS_PER_SECOND = 1000; // factor to convert milliseconds to seconds
    uint256 public constant PAUSE_PERIOD = 21 days; // time period guardian can pause bridge, only once
    uint256 public constant PAUSE_TRIBUTE_AMOUNT = 10000 ether; // amount of tokens burned to pause bridge
    uint256 public constant TOKEN_DECIMAL_PRECISION_MULTIPLIER = 1e12; // multiplier to convert from loya to 1e18
    uint256 public constant TWELVE_HOUR_CONSTANT = 12 hours; // deposit and withdraw limits update interval
    uint256 public constant WITHDRAW_LIMIT_DENOMINATOR = 100e18 / 5e18; // 100/withdrawLimitPercentage

    mapping(uint256 depositId => DepositDetails) public deposits; // deposit id => deposit details
    mapping(address recipient => uint256 extraAmountToClaim) public tokensToClaim; // recipient => extra amount to claim
    mapping(uint256 withdrawId => bool claimed) public withdrawClaimed; // withdraw id => claimed status

    struct DepositDetails {
        address sender;
        string recipient;
        uint256 amount;
        uint256 tip;
        uint256 blockHeight;
    }

    enum BridgeState {
        NORMAL,
        PAUSED,
        UNPAUSED
    }

    /*Events*/
    event BridgeStateUpdated(BridgeState _newState);
    event ExtraWithdrawClaimed(address _recipient, uint256 _amount);
    event Deposit(uint256 _depositId, address _sender, string _recipient, uint256 _amount, uint256 _tip);
    event Withdraw(uint256 _depositId, string _sender, address _recipient, uint256 _amount);

    // Functions
    /*Functions*/
    /// @notice constructor
    /// @param _token address of tellor token for bridging
    /// @param _blobstream address of BlobstreamO data bridge
    /// @param _tellorFlex address of oracle(tellorFlex) on chain
    constructor(address _token, address _blobstream, address _tellorFlex) LayerTransition(_tellorFlex, _token){
        bridge = IBlobstreamO(_blobstream);
    }

    /// @notice claim extra withdraws that were not fully withdrawn
    /// @param _recipient address of the recipient
    function claimExtraWithdraw(address _recipient) external {
        require(bridgeState != BridgeState.PAUSED, "TokenBridge: bridge is paused");
        uint256 _amountConverted = tokensToClaim[_recipient];
        require(_amountConverted > 0, "amount must be > 0");
        uint256 _withdrawLimit = _refreshWithdrawLimit(_amountConverted);
        require(_withdrawLimit > 0, "TokenBridge: withdraw limit must be > 0");
        if(_withdrawLimit < _amountConverted){
            tokensToClaim[_recipient] = tokensToClaim[_recipient] - _withdrawLimit;
            _amountConverted = _withdrawLimit;
        }
        else{
            tokensToClaim[_recipient] = 0;
        }
        withdrawLimitRecord -= _amountConverted;
        require(token.transfer(_recipient, _amountConverted), "TokenBridge: transfer failed");
        emit ExtraWithdrawClaimed(_recipient, _amountConverted);
    }

    /// @notice deposits tokens from Ethereum to layer
    /// @param _amount total amount of tokens to bridge over
    /// @param _tip amount of tokens to tip the claimDeposit caller on layer
    /// @param _layerRecipient your cosmos address on layer (don't get it wrong!!)
    function depositToLayer(uint256 _amount, uint256 _tip, string memory _layerRecipient) external {
        require(_amount > 0.1 ether, "TokenBridge: amount must be greater than 0.1 tokens");
        require(_amount % TOKEN_DECIMAL_PRECISION_MULTIPLIER == 0, "TokenBridge: amount must be divisible by 1e12");
        require(_amount <= _refreshDepositLimit(_amount), "TokenBridge: amount exceeds deposit limit for time period");
        require(_tip <= _amount, "TokenBridge: tip must be less than or equal to amount");
        if (_tip > 0) {
            require(_tip >= 1e12, "TokenBridge: tip must be greater than or equal to 1 loya");
        }
        require(token.transferFrom(msg.sender, address(this), _amount), "TokenBridge: transferFrom failed");
        depositId++;
        depositLimitRecord -= _amount;
        deposits[depositId] = DepositDetails(msg.sender, _layerRecipient, _amount, _tip, block.number);
        emit Deposit(depositId, msg.sender, _layerRecipient, _amount, _tip);
    }

    /// @notice temporarily pauses the bridge, only once and only by guardian at a great cost
    /// @dev guardian is the only one who can pause the bridge
    function pauseBridge() external {
        require(msg.sender == bridge.guardian(), "TokenBridge: only guardian can pause bridge");
        require(bridgeState == BridgeState.NORMAL, "TokenBridge: can only pause once");
        require(token.transferFrom(msg.sender, address(0xdEaD), PAUSE_TRIBUTE_AMOUNT), "TokenBridge: transfer failed");
        bridgeState = BridgeState.PAUSED;
        bridgeStateUpdateTime = block.timestamp;
        emit BridgeStateUpdated(BridgeState.PAUSED);
    }

    /// @notice unpauses the bridge after the pause period has passed, can be called by anyone
    function unpauseBridge() external {
        require(bridgeState == BridgeState.PAUSED, "TokenBridge: bridge is not paused");
        require(block.timestamp - bridgeStateUpdateTime > PAUSE_PERIOD, "TokenBridge: must wait before unpausing");
        bridgeState = BridgeState.UNPAUSED;
        emit BridgeStateUpdated(BridgeState.UNPAUSED);
    }

    /// @notice This withdraws tokens from layer to mainnet Ethereum
    /// @param _attestData The data being verified
    /// @param _valset array of current validator set
    /// @param _sigs Signatures
    /// @param _depositId depositId from the layer side
    function withdrawFromLayer(
        OracleAttestationData calldata _attestData,
        Validator[] calldata _valset,
        Signature[] calldata _sigs,
        uint256 _depositId
    ) external {
        require(bridgeState != BridgeState.PAUSED, "TokenBridge: bridge is paused");
        require(_attestData.queryId == keccak256(abi.encode("TRBBridge", abi.encode(false, _depositId))), "TokenBridge: invalid queryId");
        require(!withdrawClaimed[_depositId], "TokenBridge: withdraw already claimed");
        require(block.timestamp - (_attestData.report.timestamp / MS_PER_SECOND) > TWELVE_HOUR_CONSTANT, "TokenBridge: premature attestation");
        require(block.timestamp - (_attestData.attestationTimestamp / MS_PER_SECOND) < TWELVE_HOUR_CONSTANT, "TokenBridge: attestation too old");
        bridge.verifyOracleData(_attestData, _valset, _sigs);
        require(_attestData.report.aggregatePower >= bridge.powerThreshold(), "Report aggregate power must be greater than or equal to _minimumPower");
        withdrawClaimed[_depositId] = true;    
        (address _recipient, string memory _layerSender,uint256 _amountLoya,) = abi.decode(_attestData.report.value, (address, string, uint256, uint256));
        uint256 _amountConverted = _amountLoya * TOKEN_DECIMAL_PRECISION_MULTIPLIER; 
        uint256 _withdrawLimit = _refreshWithdrawLimit(_amountConverted);
        if(_withdrawLimit < _amountConverted){
            tokensToClaim[_recipient] = tokensToClaim[_recipient] + (_amountConverted - _withdrawLimit);
            _amountConverted = _withdrawLimit;
        }
        withdrawLimitRecord -= _amountConverted;
        require(token.transfer(_recipient, _amountConverted), "TokenBridge: transfer failed");
        emit Withdraw(_depositId, _layerSender, _recipient, _amountConverted);
    }

    /* View Functions */
    /// @notice returns the amount of tokens that can be deposited in the current 12 hour period
    /// @return amount of tokens that can be deposited
    function depositLimit() external view returns (uint256) {
        if (block.timestamp - depositLimitUpdateTime > TWELVE_HOUR_CONSTANT) {
            return (token.balanceOf(address(this)) + _getMintAmount()) / DEPOSIT_LIMIT_DENOMINATOR;
        }
        else{
            return depositLimitRecord;
        }
    }

    /// @notice returns the withdraw limit
    /// @return amount of tokens that can be withdrawn
    function withdrawLimit() external view returns (uint256) {
        if (block.timestamp - withdrawLimitUpdateTime > TWELVE_HOUR_CONSTANT) {
            return (token.balanceOf(address(this)) + _getMintAmount()) / WITHDRAW_LIMIT_DENOMINATOR;
        }
        else{
            return withdrawLimitRecord;
        }
    }

    /* Internal Functions */
    /// @notice returns the amount of tokens pending to be minted to this contract
    /// @return amount of tokens pending to be minted
    function _getMintAmount() internal view returns (uint256) {
        uint256 _releasedAmount = (146.94 ether *
            (block.timestamp - token.getUintVar(keccak256("_LAST_RELEASE_TIME_DAO")))) /
            86400;
        return _releasedAmount;
    }

    /// @notice refreshes the deposit limit every 12 hours so no one can spam layer with new tokens
    /// @return max amount of tokens that can be deposited
    function _refreshDepositLimit(uint256 _amount) internal returns (uint256) {
        if (block.timestamp - depositLimitUpdateTime > TWELVE_HOUR_CONSTANT) {
            uint256 _tokenBalance = token.balanceOf(address(this));
            if (_tokenBalance < _amount) {
                token.mintToOracle();
                _tokenBalance = token.balanceOf(address(this));
            }
            depositLimitRecord = _tokenBalance / DEPOSIT_LIMIT_DENOMINATOR;
            depositLimitUpdateTime = block.timestamp;
        } 
        return depositLimitRecord;
    }

    /// @notice refreshes the withdraw limit every 12 hours so no one can spam layer with new tokens
    /// @param _amount of tokens to withdraw
    /// @return max amount of tokens that can be withdrawn
    function _refreshWithdrawLimit(uint256 _amount) internal returns (uint256) {
        if (block.timestamp - withdrawLimitUpdateTime > TWELVE_HOUR_CONSTANT) {
            uint256 _tokenBalance = token.balanceOf(address(this));
            if (_tokenBalance < _amount) {
                token.mintToOracle();
                _tokenBalance = token.balanceOf(address(this));
            }
            withdrawLimitRecord = _tokenBalance / WITHDRAW_LIMIT_DENOMINATOR;
            withdrawLimitUpdateTime = block.timestamp;
        } 
        return withdrawLimitRecord;
    }
}

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_blobstream","type":"address"},{"internalType":"address","name":"_tellorFlex","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum TokenBridge.BridgeState","name":"_newState","type":"uint8"}],"name":"BridgeStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_depositId","type":"uint256"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"string","name":"_recipient","type":"string"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_tip","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ExtraWithdrawClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_depositId","type":"uint256"},{"indexed":false,"internalType":"string","name":"_sender","type":"string"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DEPOSIT_LIMIT_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MS_PER_SECOND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_TRIBUTE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN_DECIMAL_PRECISION_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TWELVE_HOUR_CONSTANT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_LIMIT_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addStakingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bridge","outputs":[{"internalType":"contract IBlobstreamO","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeState","outputs":[{"internalType":"enum TokenBridge.BridgeState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeStateUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"claimExtraWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositLimitRecord","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositLimitUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_tip","type":"uint256"},{"internalType":"string","name":"_layerRecipient","type":"string"}],"name":"depositToLayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"depositId","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"recipient","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tip","type":"uint256"},{"internalType":"uint256","name":"blockHeight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getDataBefore","outputs":[{"internalType":"bool","name":"_ifRetrieve","type":"bool"},{"internalType":"bytes","name":"_value","type":"bytes"},{"internalType":"uint256","name":"_timestampRetrieved","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getIndexForDataBefore","outputs":[{"internalType":"bool","name":"_found","type":"bool"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getNewValueCountbyQueryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getReporterByTimestamp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeOfLastNewValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getTimestampbyQueryIdandIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"isInDispute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"retrieveData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tellorFlex","outputs":[{"internalType":"contract ITellorFlex","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract ITellorMaster","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"tokensToClaim","outputs":[{"internalType":"uint256","name":"extraAmountToClaim","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpauseBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verify","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"withdrawId","type":"uint256"}],"name":"withdrawClaimed","outputs":[{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"queryId","type":"bytes32"},{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"aggregatePower","type":"uint256"},{"internalType":"uint256","name":"previousTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"}],"internalType":"struct ReportData","name":"report","type":"tuple"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"}],"internalType":"struct OracleAttestationData","name":"_attestData","type":"tuple"},{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"power","type":"uint256"}],"internalType":"struct Validator[]","name":"_valset","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature[]","name":"_sigs","type":"tuple[]"},{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"withdrawFromLayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawLimitRecord","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawLimitUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405260405180602001604052806000815250604051602001620000269190620001fd565b60405160208183030381529060405260405160200162000047919062000282565b604051602081830303815290604052805190602001206000553480156200006d57600080fd5b5060405162004ca438038062004ca4833981810160405281019062000093919062000325565b808381600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000381565b600081519050919050565b600082825260208201905092915050565b60005b838110156200019f57808201518184015260208101905062000182565b60008484015250505050565b6000601f19601f8301169050919050565b6000620001c98262000163565b620001d581856200016e565b9350620001e78185602086016200017f565b620001f281620001ab565b840191505092915050565b60006020820190508181036000830152620002198184620001bc565b905092915050565b600082825260208201905092915050565b7f54656c6c6f724f7261636c654164647265737300000000000000000000000000600082015250565b60006200026a60138362000221565b9150620002778262000232565b602082019050919050565b600060408201905081810360008301526200029d816200025b565b90508181036020830152620002b38184620001bc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002ed82620002c0565b9050919050565b620002ff81620002e0565b81146200030b57600080fd5b50565b6000815190506200031f81620002f4565b92915050565b600080600060608486031215620003415762000340620002bb565b5b600062000351868287016200030e565b935050602062000364868287016200030e565b925050604062000377868287016200030e565b9150509250925092565b61491380620003916000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c8063a82f143c11610130578063e07c5486116100b8578063f4913c7e1161007c578063f4913c7e14610679578063f848d54114610695578063fa3c06d2146106b3578063fc0c546a146106d1578063fc735e99146106ef57610227565b8063e07c5486146105d3578063e513730b14610603578063e5d8b9dc14610621578063e78cea921461063d578063ecf708581461065b57610227565b8063c0f95d52116100ff578063c0f95d521461051b578063c5958af914610539578063ce5e11bf14610569578063d9c51cd414610599578063db1cce41146105b557610227565b8063a82f143c146104a1578063b02c43d0146104ab578063b8eed263146104df578063c049e653146104fd57610227565b806377b03e0d116101b35780638f4588cb116101825780638f4588cb146103f75780639410e01f146104155780639852099c146104335780639b965a7314610451578063a792765f1461046f57610227565b806377b03e0d146103815780637dd0480f146103b15780637f629c65146103bb57806389c5a50e146103d957610227565b806329449085116101fa57806329449085146102c657806343b5e433146102f75780634466ec2c1461031557806344e87f91146103335780636262b4381461036357610227565b8063178073dd1461022c5780631a8bcd341461025c5780631e8683341461027a578063285bbd48146102aa575b600080fd5b6102466004803603810190610241919061275e565b61070d565b60405161025391906127a6565b60405180910390f35b61026461072d565b60405161027191906127d0565b60405180910390f35b610294600480360381019061028f9190612849565b610733565b6040516102a191906127d0565b60405180910390f35b6102c460048036038101906102bf9190612849565b61074b565b005b6102e060048036038101906102db91906128ac565b610ab2565b6040516102ee9291906128ec565b60405180910390f35b6102ff610b5d565b60405161030c91906127d0565b60405180910390f35b61031d610b66565b60405161032a919061298c565b60405180910390f35b61034d600480360381019061034891906128ac565b610b79565b60405161035a91906127a6565b60405180910390f35b61036b610c21565b60405161037891906127d0565b60405180910390f35b61039b600480360381019061039691906129a7565b610c27565b6040516103a891906127d0565b60405180910390f35b6103b9610ccc565b005b6103c3610f99565b6040516103d091906127d0565b60405180910390f35b6103e1610fa0565b6040516103ee91906127d0565b60405180910390f35b6103ff610fa6565b60405161040c91906127d0565b60405180910390f35b61041d610fac565b60405161042a91906127d0565b60405180910390f35b61043b610fb2565b60405161044891906127d0565b60405180910390f35b610459610fb8565b60405161046691906127d0565b60405180910390f35b610489600480360381019061048491906128ac565b610fbd565b60405161049893929190612a64565b60405180910390f35b6104a96110aa565b005b6104c560048036038101906104c0919061275e565b6111d7565b6040516104d6959493929190612b06565b60405180910390f35b6104e76112b5565b6040516104f491906127d0565b60405180910390f35b6105056112ba565b60405161051291906127d0565b60405180910390f35b6105236112c0565b60405161053091906127d0565b60405180910390f35b610553600480360381019061054e91906128ac565b611358565b6040516105609190612b60565b60405180910390f35b610583600480360381019061057e91906128ac565b611405565b60405161059091906127d0565b60405180910390f35b6105b360048036038101906105ae919061275e565b6114ad565b005b6105bd611553565b6040516105ca91906127d0565b60405180910390f35b6105ed60048036038101906105e891906128ac565b611561565b6040516105fa9190612b82565b60405180910390f35b61060b611609565b6040516106189190612bfc565b60405180910390f35b61063b60048036038101906106369190612cf6565b61162f565b005b610645611c48565b6040516106529190612dda565b60405180910390f35b610663611c6e565b60405161067091906127d0565b60405180910390f35b610693600480360381019061068e9190612f25565b611d51565b005b61069d6120f6565b6040516106aa91906127d0565b60405180910390f35b6106bb6121d9565b6040516106c891906127d0565b60405180910390f35b6106d96121df565b6040516106e69190612fb5565b60405180910390f35b6106f7612205565b60405161070491906127d0565b60405180910390f35b600d6020528060005260406000206000915054906101000a900460ff1681565b6103e881565b600c6020528060005260406000206000915090505481565b6001600281111561075f5761075e612915565b5b600760009054906101000a900460ff16600281111561078157610780612915565b5b036107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b89061301c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90613088565b60405180910390fd5b60006108538261220f565b905060008111610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061311a565b60405180910390fd5b818110156109365780600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108eb9190613169565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080915061097c565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600a600082825461098e9190613169565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016109f292919061319d565b6020604051808303816000875af1158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3591906131f2565b610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061326b565b60405180910390fd5b7f9e0580024755a2e1f3a499efe43139fe7908912aff1ecacee8287b54d4418f3a8383604051610aa592919061319d565b60405180910390a1505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632944908585856040518363ffffffff1660e01b8152600401610b1292919061329a565b6040805180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906132d8565b915091509250929050565b64e8d4a5100081565b600760009054906101000a900460ff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166344e87f9184846040518363ffffffff1660e01b8152600401610bd892919061329a565b602060405180830381865afa158015610bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1991906131f2565b905092915050565b61a8c081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166377b03e0d836040518263ffffffff1660e01b8152600401610c849190613318565b602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190613333565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190613375565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190613414565b60405180910390fd5b60006002811115610dde57610ddd612915565b5b600760009054906101000a900460ff166002811115610e0057610dff612915565b5b14610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790613480565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead69021e19e0c9bab24000006040518463ffffffff1660e01b8152600401610eab939291906134a0565b6020604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee91906131f2565b610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f249061326b565b60405180910390fd5b6001600760006101000a81548160ff02191690836002811115610f5357610f52612915565b5b0217905550426008819055507f9309bd706341b8519d822d5ea2ce463296bce466f9ce1c8814aa1ddc10708b876001604051610f8f919061298c565b60405180910390a1565b621baf8081565b600a5481565b60095481565b60065481565b60045481565b601481565b60006060600080548503610ff957600130604051602001610fde9190612b82565b604051602081830303815290604052429250925092506110a3565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a792765f86866040518363ffffffff1660e01b815260040161105692919061329a565b600060405180830381865afa158015611073573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061109c9190613578565b9250925092505b9250925092565b600160028111156110be576110bd612915565b5b600760009054906101000a900460ff1660028111156110e0576110df612915565b5b14611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790613659565b60405180910390fd5b621baf80600854426111329190613169565b11611172576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611169906136eb565b60405180910390fd5b6002600760006101000a81548160ff0219169083600281111561119857611197612915565b5b02179055507f9309bd706341b8519d822d5ea2ce463296bce466f9ce1c8814aa1ddc10708b8760026040516111cd919061298c565b60405180910390a1565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546112209061373a565b80601f016020809104026020016040519081016040528092919081815260200182805461124c9061373a565b80156112995780601f1061126e57610100808354040283529160200191611299565b820191906000526020600020905b81548152906001019060200180831161127c57829003601f168201915b5050505050908060020154908060030154908060040154905085565b600581565b60085481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f95d526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113539190613333565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5958af984846040518363ffffffff1660e01b81526004016113b792919061329a565b600060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113fd919061376b565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5e11bf84846040518363ffffffff1660e01b815260040161146492919061329a565b602060405180830381865afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a59190613333565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161150c939291906134a0565b6020604051808303816000875af115801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906131f2565b5050565b69021e19e0c9bab240000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e07c548684846040518363ffffffff1660e01b81526004016115c092919061329a565b602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190613375565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600281111561164357611642612915565b5b600760009054906101000a900460ff16600281111561166557611664612915565b5b036116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061301c565b60405180910390fd5b6000816040516020016116b99291906128ec565b6040516020818303038152906040526040516020016116d89190613800565b60405160208183030381529060405280519060200120866000013514611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a90613881565b60405180910390fd5b600d600082815260200190815260200160002060009054906101000a900460ff1615611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613913565b60405180910390fd5b61a8c06103e88780602001906117aa9190613942565b602001356117b89190613999565b426117c39190613169565b11611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90613a3c565b60405180910390fd5b61a8c06103e887604001356118189190613999565b426118239190613169565b10611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90613aa8565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635121b26e87878787876040518663ffffffff1660e01b81526004016118c6959493929190613f62565b60006040518083038186803b1580156118de57600080fd5b505afa1580156118f2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ba95ec276040518163ffffffff1660e01b8152600401602060405180830381865afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119879190613333565b8680602001906119979190613942565b6040013510156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d39061404a565b60405180910390fd5b6001600d600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506000806000888060200190611a1d9190613942565b8060000190611a2c919061406a565b810190611a39919061410b565b50925092509250600064e8d4a5100082611a53919061418e565b90506000611a608261220f565b905081811015611b07578082611a769190613169565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac091906141d0565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508091505b81600a6000828254611b199190613169565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86846040518363ffffffff1660e01b8152600401611b7d92919061319d565b6020604051808303816000875af1158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc091906131f2565b611bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf69061326b565b60405180910390fd5b7e1e3fbdbd61c5a2425d14ff0020dd9bbd2bac70b606f7bd7552534c7bae55df86858785604051611c339493929190614204565b60405180910390a15050505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061a8c060055442611c819190613169565b1115611d48576005611c91612417565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611cec9190612b82565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190613333565b611d3791906141d0565b611d419190613999565b9050611d4e565b60065490505b90565b67016345785d8a00008311611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d92906142c2565b60405180910390fd5b600064e8d4a5100084611dae91906142e2565b14611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590614385565b60405180910390fd5b611df78361250c565b831115611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614417565b60405180910390fd5b82821115611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e73906144a9565b60405180910390fd5b6000821115611ece5764e8d4a51000821015611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec49061453b565b60405180910390fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611f2d939291906134a0565b6020604051808303816000875af1158015611f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7091906131f2565b611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa6906145a7565b60405180910390fd5b60046000815480929190611fc2906145c7565b91905055508260066000828254611fd99190613169565b925050819055506040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200184815260200183815260200143815250600b6000600454815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908161208e91906147b1565b506040820151816002015560608201518160030155608082015181600401559050507fe9a436e6735e7a54b0d2505d14247a614f3af68dad813a7a46834b876b13d7c1600454338386866040516120e9959493929190614883565b60405180910390a1505050565b600061a8c0600954426121099190613169565b11156121d0576014612119612417565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121749190612b82565b602060405180830381865afa158015612191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b59190613333565b6121bf91906141d0565b6121c99190613999565b90506121d6565b600a5490505b90565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061270f905090565b600061a8c0600954426122229190613169565b111561240d576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122859190612b82565b602060405180830381865afa1580156122a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c69190613333565b9050828110156123f157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b67f8cbd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561233a57600080fd5b505af115801561234e573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123ad9190612b82565b602060405180830381865afa1580156123ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ee9190613333565b90505b6014816123fe9190613999565b600a8190555042600981905550505b600a549050919050565b60008062015180600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663612c8f7f7ff9fc7fb48c7559e97d53ab4f65d985310377942095551edc1ff9acf706a45a0d6040518263ffffffff1660e01b81526004016124999190613318565b602060405180830381865afa1580156124b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124da9190613333565b426124e59190613169565b6807f733bf7a7fe600006124f9919061418e565b6125039190613999565b90508091505090565b600061a8c06005544261251f9190613169565b111561270a576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125829190612b82565b602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c39190613333565b9050828110156126ee57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b67f8cbd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126aa9190612b82565b602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb9190613333565b90505b6005816126fb9190613999565b60068190555042600581905550505b6006549050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61273b81612728565b811461274657600080fd5b50565b60008135905061275881612732565b92915050565b6000602082840312156127745761277361271e565b5b600061278284828501612749565b91505092915050565b60008115159050919050565b6127a08161278b565b82525050565b60006020820190506127bb6000830184612797565b92915050565b6127ca81612728565b82525050565b60006020820190506127e560008301846127c1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612816826127eb565b9050919050565b6128268161280b565b811461283157600080fd5b50565b6000813590506128438161281d565b92915050565b60006020828403121561285f5761285e61271e565b5b600061286d84828501612834565b91505092915050565b6000819050919050565b61288981612876565b811461289457600080fd5b50565b6000813590506128a681612880565b92915050565b600080604083850312156128c3576128c261271e565b5b60006128d185828601612897565b92505060206128e285828601612749565b9150509250929050565b60006040820190506129016000830185612797565b61290e60208301846127c1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061295557612954612915565b5b50565b600081905061296682612944565b919050565b600061297682612958565b9050919050565b6129868161296b565b82525050565b60006020820190506129a1600083018461297d565b92915050565b6000602082840312156129bd576129bc61271e565b5b60006129cb84828501612897565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a0e5780820151818401526020810190506129f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a36826129d4565b612a4081856129df565b9350612a508185602086016129f0565b612a5981612a1a565b840191505092915050565b6000606082019050612a796000830186612797565b8181036020830152612a8b8185612a2b565b9050612a9a60408301846127c1565b949350505050565b612aab8161280b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000612ad882612ab1565b612ae28185612abc565b9350612af28185602086016129f0565b612afb81612a1a565b840191505092915050565b600060a082019050612b1b6000830188612aa2565b8181036020830152612b2d8187612acd565b9050612b3c60408301866127c1565b612b4960608301856127c1565b612b5660808301846127c1565b9695505050505050565b60006020820190508181036000830152612b7a8184612a2b565b905092915050565b6000602082019050612b976000830184612aa2565b92915050565b6000819050919050565b6000612bc2612bbd612bb8846127eb565b612b9d565b6127eb565b9050919050565b6000612bd482612ba7565b9050919050565b6000612be682612bc9565b9050919050565b612bf681612bdb565b82525050565b6000602082019050612c116000830184612bed565b92915050565b600080fd5b600060608284031215612c3257612c31612c17565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c6057612c5f612c3b565b5b8235905067ffffffffffffffff811115612c7d57612c7c612c40565b5b602083019150836040820283011115612c9957612c98612c45565b5b9250929050565b60008083601f840112612cb657612cb5612c3b565b5b8235905067ffffffffffffffff811115612cd357612cd2612c40565b5b602083019150836060820283011115612cef57612cee612c45565b5b9250929050565b60008060008060008060808789031215612d1357612d1261271e565b5b600087013567ffffffffffffffff811115612d3157612d30612723565b5b612d3d89828a01612c1c565b965050602087013567ffffffffffffffff811115612d5e57612d5d612723565b5b612d6a89828a01612c4a565b9550955050604087013567ffffffffffffffff811115612d8d57612d8c612723565b5b612d9989828a01612ca0565b93509350506060612dac89828a01612749565b9150509295509295509295565b6000612dc482612bc9565b9050919050565b612dd481612db9565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e3282612a1a565b810181811067ffffffffffffffff82111715612e5157612e50612dfa565b5b80604052505050565b6000612e64612714565b9050612e708282612e29565b919050565b600067ffffffffffffffff821115612e9057612e8f612dfa565b5b612e9982612a1a565b9050602081019050919050565b82818337600083830152505050565b6000612ec8612ec384612e75565b612e5a565b905082815260208101848484011115612ee457612ee3612df5565b5b612eef848285612ea6565b509392505050565b600082601f830112612f0c57612f0b612c3b565b5b8135612f1c848260208601612eb5565b91505092915050565b600080600060608486031215612f3e57612f3d61271e565b5b6000612f4c86828701612749565b9350506020612f5d86828701612749565b925050604084013567ffffffffffffffff811115612f7e57612f7d612723565b5b612f8a86828701612ef7565b9150509250925092565b6000612f9f82612bc9565b9050919050565b612faf81612f94565b82525050565b6000602082019050612fca6000830184612fa6565b92915050565b7f546f6b656e4272696467653a2062726964676520697320706175736564000000600082015250565b6000613006601d83612abc565b915061301182612fd0565b602082019050919050565b6000602082019050818103600083015261303581612ff9565b9050919050565b7f616d6f756e74206d757374206265203e20300000000000000000000000000000600082015250565b6000613072601283612abc565b915061307d8261303c565b602082019050919050565b600060208201905081810360008301526130a181613065565b9050919050565b7f546f6b656e4272696467653a207769746864726177206c696d6974206d75737460008201527f206265203e203000000000000000000000000000000000000000000000000000602082015250565b6000613104602783612abc565b915061310f826130a8565b604082019050919050565b60006020820190508181036000830152613133816130f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317482612728565b915061317f83612728565b92508282039050818111156131975761319661313a565b5b92915050565b60006040820190506131b26000830185612aa2565b6131bf60208301846127c1565b9392505050565b6131cf8161278b565b81146131da57600080fd5b50565b6000815190506131ec816131c6565b92915050565b6000602082840312156132085761320761271e565b5b6000613216848285016131dd565b91505092915050565b7f546f6b656e4272696467653a207472616e73666572206661696c656400000000600082015250565b6000613255601c83612abc565b91506132608261321f565b602082019050919050565b6000602082019050818103600083015261328481613248565b9050919050565b61329481612876565b82525050565b60006040820190506132af600083018561328b565b6132bc60208301846127c1565b9392505050565b6000815190506132d281612732565b92915050565b600080604083850312156132ef576132ee61271e565b5b60006132fd858286016131dd565b925050602061330e858286016132c3565b9150509250929050565b600060208201905061332d600083018461328b565b92915050565b6000602082840312156133495761334861271e565b5b6000613357848285016132c3565b91505092915050565b60008151905061336f8161281d565b92915050565b60006020828403121561338b5761338a61271e565b5b600061339984828501613360565b91505092915050565b7f546f6b656e4272696467653a206f6e6c7920677561726469616e2063616e207060008201527f6175736520627269646765000000000000000000000000000000000000000000602082015250565b60006133fe602b83612abc565b9150613409826133a2565b604082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f546f6b656e4272696467653a2063616e206f6e6c79207061757365206f6e6365600082015250565b600061346a602083612abc565b915061347582613434565b602082019050919050565b600060208201905081810360008301526134998161345d565b9050919050565b60006060820190506134b56000830186612aa2565b6134c26020830185612aa2565b6134cf60408301846127c1565b949350505050565b600067ffffffffffffffff8211156134f2576134f1612dfa565b5b6134fb82612a1a565b9050602081019050919050565b600061351b613516846134d7565b612e5a565b90508281526020810184848401111561353757613536612df5565b5b6135428482856129f0565b509392505050565b600082601f83011261355f5761355e612c3b565b5b815161356f848260208601613508565b91505092915050565b6000806000606084860312156135915761359061271e565b5b600061359f868287016131dd565b935050602084015167ffffffffffffffff8111156135c0576135bf612723565b5b6135cc8682870161354a565b92505060406135dd868287016132c3565b9150509250925092565b7f546f6b656e4272696467653a20627269646765206973206e6f7420706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613643602183612abc565b915061364e826135e7565b604082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f546f6b656e4272696467653a206d7573742077616974206265666f726520756e60008201527f70617573696e6700000000000000000000000000000000000000000000000000602082015250565b60006136d5602783612abc565b91506136e082613679565b604082019050919050565b60006020820190508181036000830152613704816136c8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061375257607f821691505b6020821081036137655761376461370b565b5b50919050565b6000602082840312156137815761378061271e565b5b600082015167ffffffffffffffff81111561379f5761379e612723565b5b6137ab8482850161354a565b91505092915050565b7f5452424272696467650000000000000000000000000000000000000000000000600082015250565b60006137ea600983612abc565b91506137f5826137b4565b602082019050919050565b60006040820190508181036000830152613819816137dd565b9050818103602083015261382d8184612a2b565b905092915050565b7f546f6b656e4272696467653a20696e76616c6964207175657279496400000000600082015250565b600061386b601c83612abc565b915061387682613835565b602082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b7f546f6b656e4272696467653a20776974686472617720616c726561647920636c60008201527f61696d6564000000000000000000000000000000000000000000000000000000602082015250565b60006138fd602583612abc565b9150613908826138a1565b604082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b600080fd5b600080fd5b600080fd5b60008235600160a00383360303811261395e5761395d613933565b5b80830191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139a482612728565b91506139af83612728565b9250826139bf576139be61396a565b5b828204905092915050565b7f546f6b656e4272696467653a207072656d61747572652061747465737461746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a26602283612abc565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f546f6b656e4272696467653a206174746573746174696f6e20746f6f206f6c64600082015250565b6000613a92602083612abc565b9150613a9d82613a5c565b602082019050919050565b60006020820190508181036000830152613ac181613a85565b9050919050565b6000613ad76020840184612897565b905092915050565b613ae881612876565b82525050565b600080fd5b60008235600160a003833603038112613b0f57613b0e613aee565b5b82810191505092915050565b600080fd5b600080fd5b60008083356001602003843603038112613b4257613b41613aee565b5b83810192508235915060208301925067ffffffffffffffff821115613b6a57613b69613b1b565b5b600182023603831315613b8057613b7f613b20565b5b509250929050565b600082825260208201905092915050565b6000613ba58385613b88565b9350613bb2838584612ea6565b613bbb83612a1a565b840190509392505050565b6000613bd56020840184612749565b905092915050565b613be681612728565b82525050565b600060a08301613bff6000840184613b25565b8583036000870152613c12838284613b99565b92505050613c236020840184613bc6565b613c306020860182613bdd565b50613c3e6040840184613bc6565b613c4b6040860182613bdd565b50613c596060840184613bc6565b613c666060860182613bdd565b50613c746080840184613bc6565b613c816080860182613bdd565b508091505092915050565b600060608301613c9f6000840184613ac8565b613cac6000860182613adf565b50613cba6020840184613af3565b8482036020860152613ccc8282613bec565b915050613cdc6040840184613bc6565b613ce96040860182613bdd565b508091505092915050565b600082825260208201905092915050565b6000819050919050565b6000613d1e6020840184612834565b905092915050565b613d2f8161280b565b82525050565b60408201613d466000830183613d0f565b613d536000850182613d26565b50613d616020830183613bc6565b613d6e6020850182613bdd565b50505050565b6000613d808383613d35565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613db08385613cf4565b9350613dbb82613d05565b8060005b85811015613df457613dd18284613d8c565b613ddb8882613d74565b9750613de683613d97565b925050600181019050613dbf565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b600060ff82169050919050565b613e3281613e1c565b8114613e3d57600080fd5b50565b600081359050613e4f81613e29565b92915050565b6000613e646020840184613e40565b905092915050565b613e7581613e1c565b82525050565b60608201613e8c6000830183613e55565b613e996000850182613e6c565b50613ea76020830183613ac8565b613eb46020850182613adf565b50613ec26040830183613ac8565b613ecf6040850182613adf565b50505050565b6000613ee18383613e7b565b60608301905092915050565b600082905092915050565b6000606082019050919050565b6000613f118385613e01565b9350613f1c82613e12565b8060005b85811015613f5557613f328284613eed565b613f3c8882613ed5565b9750613f4783613ef8565b925050600181019050613f20565b5085925050509392505050565b60006060820190508181036000830152613f7c8188613c8c565b90508181036020830152613f91818688613da4565b90508181036040830152613fa6818486613f05565b90509695505050505050565b7f5265706f72742061676772656761746520706f776572206d757374206265206760008201527f726561746572207468616e206f7220657175616c20746f205f6d696e696d756d60208201527f506f776572000000000000000000000000000000000000000000000000000000604082015250565b6000614034604583612abc565b915061403f82613fb2565b606082019050919050565b6000602082019050818103600083015261406381614027565b9050919050565b6000808335600160200384360303811261408757614086613933565b5b80840192508235915067ffffffffffffffff8211156140a9576140a8613938565b5b6020830192506001820236038313156140c5576140c461393d565b5b509250929050565b60006140d8826127eb565b9050919050565b6140e8816140cd565b81146140f357600080fd5b50565b600081359050614105816140df565b92915050565b600080600080608085870312156141255761412461271e565b5b6000614133878288016140f6565b945050602085013567ffffffffffffffff81111561415457614153612723565b5b61416087828801612ef7565b935050604061417187828801612749565b925050606061418287828801612749565b91505092959194509250565b600061419982612728565b91506141a483612728565b92508282026141b281612728565b915082820484148315176141c9576141c861313a565b5b5092915050565b60006141db82612728565b91506141e683612728565b92508282019050808211156141fe576141fd61313a565b5b92915050565b600060808201905061421960008301876127c1565b818103602083015261422b8186612acd565b905061423a6040830185612aa2565b61424760608301846127c1565b95945050505050565b7f546f6b656e4272696467653a20616d6f756e74206d757374206265206772656160008201527f746572207468616e20302e3120746f6b656e7300000000000000000000000000602082015250565b60006142ac603383612abc565b91506142b782614250565b604082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b60006142ed82612728565b91506142f883612728565b9250826143085761430761396a565b5b828206905092915050565b7f546f6b656e4272696467653a20616d6f756e74206d757374206265206469766960008201527f7369626c65206279203165313200000000000000000000000000000000000000602082015250565b600061436f602d83612abc565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f546f6b656e4272696467653a20616d6f756e742065786365656473206465706f60008201527f736974206c696d697420666f722074696d6520706572696f6400000000000000602082015250565b6000614401603983612abc565b915061440c826143a5565b604082019050919050565b60006020820190508181036000830152614430816143f4565b9050919050565b7f546f6b656e4272696467653a20746970206d757374206265206c65737320746860008201527f616e206f7220657175616c20746f20616d6f756e740000000000000000000000602082015250565b6000614493603583612abc565b915061449e82614437565b604082019050919050565b600060208201905081810360008301526144c281614486565b9050919050565b7f546f6b656e4272696467653a20746970206d757374206265206772656174657260008201527f207468616e206f7220657175616c20746f2031206c6f79610000000000000000602082015250565b6000614525603883612abc565b9150614530826144c9565b604082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f546f6b656e4272696467653a207472616e7366657246726f6d206661696c6564600082015250565b6000614591602083612abc565b915061459c8261455b565b602082019050919050565b600060208201905081810360008301526145c081614584565b9050919050565b60006145d282612728565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036146045761460361313a565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026146717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614634565b61467b8683614634565b95508019841693508086168417925050509392505050565b60006146ae6146a96146a484612728565b612b9d565b612728565b9050919050565b6000819050919050565b6146c883614693565b6146dc6146d4826146b5565b848454614641565b825550505050565b600090565b6146f16146e4565b6146fc8184846146bf565b505050565b5b81811015614720576147156000826146e9565b600181019050614702565b5050565b601f821115614765576147368161460f565b61473f84614624565b8101602085101561474e578190505b61476261475a85614624565b830182614701565b50505b505050565b600082821c905092915050565b60006147886000198460080261476a565b1980831691505092915050565b60006147a18383614777565b9150826002028217905092915050565b6147ba82612ab1565b67ffffffffffffffff8111156147d3576147d2612dfa565b5b6147dd825461373a565b6147e8828285614724565b600060209050601f83116001811461481b5760008415614809578287015190505b6148138582614795565b86555061487b565b601f1984166148298661460f565b60005b828110156148515784890151825560018201915060208501945060208101905061482c565b8683101561486e578489015161486a601f891682614777565b8355505b6001600288020188555050505b505050505050565b600060a08201905061489860008301886127c1565b6148a56020830187612aa2565b81810360408301526148b78186612acd565b90506148c660608301856127c1565b6148d360808301846127c1565b969550505050505056fea264697066735822122057d99ad3700900e0a59442b9237364650bd0441331c5addfea99c600c017fbd664736f6c634300081300330000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1000000000000000000000000f7f839fdfec4cdf68e8dee5914ae08bfe8f9e4cd0000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c8063a82f143c11610130578063e07c5486116100b8578063f4913c7e1161007c578063f4913c7e14610679578063f848d54114610695578063fa3c06d2146106b3578063fc0c546a146106d1578063fc735e99146106ef57610227565b8063e07c5486146105d3578063e513730b14610603578063e5d8b9dc14610621578063e78cea921461063d578063ecf708581461065b57610227565b8063c0f95d52116100ff578063c0f95d521461051b578063c5958af914610539578063ce5e11bf14610569578063d9c51cd414610599578063db1cce41146105b557610227565b8063a82f143c146104a1578063b02c43d0146104ab578063b8eed263146104df578063c049e653146104fd57610227565b806377b03e0d116101b35780638f4588cb116101825780638f4588cb146103f75780639410e01f146104155780639852099c146104335780639b965a7314610451578063a792765f1461046f57610227565b806377b03e0d146103815780637dd0480f146103b15780637f629c65146103bb57806389c5a50e146103d957610227565b806329449085116101fa57806329449085146102c657806343b5e433146102f75780634466ec2c1461031557806344e87f91146103335780636262b4381461036357610227565b8063178073dd1461022c5780631a8bcd341461025c5780631e8683341461027a578063285bbd48146102aa575b600080fd5b6102466004803603810190610241919061275e565b61070d565b60405161025391906127a6565b60405180910390f35b61026461072d565b60405161027191906127d0565b60405180910390f35b610294600480360381019061028f9190612849565b610733565b6040516102a191906127d0565b60405180910390f35b6102c460048036038101906102bf9190612849565b61074b565b005b6102e060048036038101906102db91906128ac565b610ab2565b6040516102ee9291906128ec565b60405180910390f35b6102ff610b5d565b60405161030c91906127d0565b60405180910390f35b61031d610b66565b60405161032a919061298c565b60405180910390f35b61034d600480360381019061034891906128ac565b610b79565b60405161035a91906127a6565b60405180910390f35b61036b610c21565b60405161037891906127d0565b60405180910390f35b61039b600480360381019061039691906129a7565b610c27565b6040516103a891906127d0565b60405180910390f35b6103b9610ccc565b005b6103c3610f99565b6040516103d091906127d0565b60405180910390f35b6103e1610fa0565b6040516103ee91906127d0565b60405180910390f35b6103ff610fa6565b60405161040c91906127d0565b60405180910390f35b61041d610fac565b60405161042a91906127d0565b60405180910390f35b61043b610fb2565b60405161044891906127d0565b60405180910390f35b610459610fb8565b60405161046691906127d0565b60405180910390f35b610489600480360381019061048491906128ac565b610fbd565b60405161049893929190612a64565b60405180910390f35b6104a96110aa565b005b6104c560048036038101906104c0919061275e565b6111d7565b6040516104d6959493929190612b06565b60405180910390f35b6104e76112b5565b6040516104f491906127d0565b60405180910390f35b6105056112ba565b60405161051291906127d0565b60405180910390f35b6105236112c0565b60405161053091906127d0565b60405180910390f35b610553600480360381019061054e91906128ac565b611358565b6040516105609190612b60565b60405180910390f35b610583600480360381019061057e91906128ac565b611405565b60405161059091906127d0565b60405180910390f35b6105b360048036038101906105ae919061275e565b6114ad565b005b6105bd611553565b6040516105ca91906127d0565b60405180910390f35b6105ed60048036038101906105e891906128ac565b611561565b6040516105fa9190612b82565b60405180910390f35b61060b611609565b6040516106189190612bfc565b60405180910390f35b61063b60048036038101906106369190612cf6565b61162f565b005b610645611c48565b6040516106529190612dda565b60405180910390f35b610663611c6e565b60405161067091906127d0565b60405180910390f35b610693600480360381019061068e9190612f25565b611d51565b005b61069d6120f6565b6040516106aa91906127d0565b60405180910390f35b6106bb6121d9565b6040516106c891906127d0565b60405180910390f35b6106d96121df565b6040516106e69190612fb5565b60405180910390f35b6106f7612205565b60405161070491906127d0565b60405180910390f35b600d6020528060005260406000206000915054906101000a900460ff1681565b6103e881565b600c6020528060005260406000206000915090505481565b6001600281111561075f5761075e612915565b5b600760009054906101000a900460ff16600281111561078157610780612915565b5b036107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b89061301c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90613088565b60405180910390fd5b60006108538261220f565b905060008111610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061311a565b60405180910390fd5b818110156109365780600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108eb9190613169565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080915061097c565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600a600082825461098e9190613169565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016109f292919061319d565b6020604051808303816000875af1158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3591906131f2565b610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061326b565b60405180910390fd5b7f9e0580024755a2e1f3a499efe43139fe7908912aff1ecacee8287b54d4418f3a8383604051610aa592919061319d565b60405180910390a1505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632944908585856040518363ffffffff1660e01b8152600401610b1292919061329a565b6040805180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906132d8565b915091509250929050565b64e8d4a5100081565b600760009054906101000a900460ff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166344e87f9184846040518363ffffffff1660e01b8152600401610bd892919061329a565b602060405180830381865afa158015610bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1991906131f2565b905092915050565b61a8c081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166377b03e0d836040518263ffffffff1660e01b8152600401610c849190613318565b602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190613333565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190613375565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190613414565b60405180910390fd5b60006002811115610dde57610ddd612915565b5b600760009054906101000a900460ff166002811115610e0057610dff612915565b5b14610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790613480565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead69021e19e0c9bab24000006040518463ffffffff1660e01b8152600401610eab939291906134a0565b6020604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee91906131f2565b610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f249061326b565b60405180910390fd5b6001600760006101000a81548160ff02191690836002811115610f5357610f52612915565b5b0217905550426008819055507f9309bd706341b8519d822d5ea2ce463296bce466f9ce1c8814aa1ddc10708b876001604051610f8f919061298c565b60405180910390a1565b621baf8081565b600a5481565b60095481565b60065481565b60045481565b601481565b60006060600080548503610ff957600130604051602001610fde9190612b82565b604051602081830303815290604052429250925092506110a3565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a792765f86866040518363ffffffff1660e01b815260040161105692919061329a565b600060405180830381865afa158015611073573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061109c9190613578565b9250925092505b9250925092565b600160028111156110be576110bd612915565b5b600760009054906101000a900460ff1660028111156110e0576110df612915565b5b14611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790613659565b60405180910390fd5b621baf80600854426111329190613169565b11611172576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611169906136eb565b60405180910390fd5b6002600760006101000a81548160ff0219169083600281111561119857611197612915565b5b02179055507f9309bd706341b8519d822d5ea2ce463296bce466f9ce1c8814aa1ddc10708b8760026040516111cd919061298c565b60405180910390a1565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546112209061373a565b80601f016020809104026020016040519081016040528092919081815260200182805461124c9061373a565b80156112995780601f1061126e57610100808354040283529160200191611299565b820191906000526020600020905b81548152906001019060200180831161127c57829003601f168201915b5050505050908060020154908060030154908060040154905085565b600581565b60085481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f95d526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113539190613333565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5958af984846040518363ffffffff1660e01b81526004016113b792919061329a565b600060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113fd919061376b565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5e11bf84846040518363ffffffff1660e01b815260040161146492919061329a565b602060405180830381865afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a59190613333565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161150c939291906134a0565b6020604051808303816000875af115801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906131f2565b5050565b69021e19e0c9bab240000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e07c548684846040518363ffffffff1660e01b81526004016115c092919061329a565b602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190613375565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600281111561164357611642612915565b5b600760009054906101000a900460ff16600281111561166557611664612915565b5b036116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061301c565b60405180910390fd5b6000816040516020016116b99291906128ec565b6040516020818303038152906040526040516020016116d89190613800565b60405160208183030381529060405280519060200120866000013514611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a90613881565b60405180910390fd5b600d600082815260200190815260200160002060009054906101000a900460ff1615611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613913565b60405180910390fd5b61a8c06103e88780602001906117aa9190613942565b602001356117b89190613999565b426117c39190613169565b11611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90613a3c565b60405180910390fd5b61a8c06103e887604001356118189190613999565b426118239190613169565b10611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90613aa8565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635121b26e87878787876040518663ffffffff1660e01b81526004016118c6959493929190613f62565b60006040518083038186803b1580156118de57600080fd5b505afa1580156118f2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ba95ec276040518163ffffffff1660e01b8152600401602060405180830381865afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119879190613333565b8680602001906119979190613942565b6040013510156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d39061404a565b60405180910390fd5b6001600d600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506000806000888060200190611a1d9190613942565b8060000190611a2c919061406a565b810190611a39919061410b565b50925092509250600064e8d4a5100082611a53919061418e565b90506000611a608261220f565b905081811015611b07578082611a769190613169565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac091906141d0565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508091505b81600a6000828254611b199190613169565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86846040518363ffffffff1660e01b8152600401611b7d92919061319d565b6020604051808303816000875af1158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc091906131f2565b611bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf69061326b565b60405180910390fd5b7e1e3fbdbd61c5a2425d14ff0020dd9bbd2bac70b606f7bd7552534c7bae55df86858785604051611c339493929190614204565b60405180910390a15050505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061a8c060055442611c819190613169565b1115611d48576005611c91612417565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611cec9190612b82565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190613333565b611d3791906141d0565b611d419190613999565b9050611d4e565b60065490505b90565b67016345785d8a00008311611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d92906142c2565b60405180910390fd5b600064e8d4a5100084611dae91906142e2565b14611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590614385565b60405180910390fd5b611df78361250c565b831115611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614417565b60405180910390fd5b82821115611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e73906144a9565b60405180910390fd5b6000821115611ece5764e8d4a51000821015611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec49061453b565b60405180910390fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611f2d939291906134a0565b6020604051808303816000875af1158015611f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7091906131f2565b611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa6906145a7565b60405180910390fd5b60046000815480929190611fc2906145c7565b91905055508260066000828254611fd99190613169565b925050819055506040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200184815260200183815260200143815250600b6000600454815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908161208e91906147b1565b506040820151816002015560608201518160030155608082015181600401559050507fe9a436e6735e7a54b0d2505d14247a614f3af68dad813a7a46834b876b13d7c1600454338386866040516120e9959493929190614883565b60405180910390a1505050565b600061a8c0600954426121099190613169565b11156121d0576014612119612417565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016121749190612b82565b602060405180830381865afa158015612191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b59190613333565b6121bf91906141d0565b6121c99190613999565b90506121d6565b600a5490505b90565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061270f905090565b600061a8c0600954426122229190613169565b111561240d576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122859190612b82565b602060405180830381865afa1580156122a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c69190613333565b9050828110156123f157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b67f8cbd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561233a57600080fd5b505af115801561234e573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123ad9190612b82565b602060405180830381865afa1580156123ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ee9190613333565b90505b6014816123fe9190613999565b600a8190555042600981905550505b600a549050919050565b60008062015180600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663612c8f7f7ff9fc7fb48c7559e97d53ab4f65d985310377942095551edc1ff9acf706a45a0d6040518263ffffffff1660e01b81526004016124999190613318565b602060405180830381865afa1580156124b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124da9190613333565b426124e59190613169565b6807f733bf7a7fe600006124f9919061418e565b6125039190613999565b90508091505090565b600061a8c06005544261251f9190613169565b111561270a576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125829190612b82565b602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c39190613333565b9050828110156126ee57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b67f8cbd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126aa9190612b82565b602060405180830381865afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb9190613333565b90505b6005816126fb9190613999565b60068190555042600581905550505b6006549050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61273b81612728565b811461274657600080fd5b50565b60008135905061275881612732565b92915050565b6000602082840312156127745761277361271e565b5b600061278284828501612749565b91505092915050565b60008115159050919050565b6127a08161278b565b82525050565b60006020820190506127bb6000830184612797565b92915050565b6127ca81612728565b82525050565b60006020820190506127e560008301846127c1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612816826127eb565b9050919050565b6128268161280b565b811461283157600080fd5b50565b6000813590506128438161281d565b92915050565b60006020828403121561285f5761285e61271e565b5b600061286d84828501612834565b91505092915050565b6000819050919050565b61288981612876565b811461289457600080fd5b50565b6000813590506128a681612880565b92915050565b600080604083850312156128c3576128c261271e565b5b60006128d185828601612897565b92505060206128e285828601612749565b9150509250929050565b60006040820190506129016000830185612797565b61290e60208301846127c1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061295557612954612915565b5b50565b600081905061296682612944565b919050565b600061297682612958565b9050919050565b6129868161296b565b82525050565b60006020820190506129a1600083018461297d565b92915050565b6000602082840312156129bd576129bc61271e565b5b60006129cb84828501612897565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a0e5780820151818401526020810190506129f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a36826129d4565b612a4081856129df565b9350612a508185602086016129f0565b612a5981612a1a565b840191505092915050565b6000606082019050612a796000830186612797565b8181036020830152612a8b8185612a2b565b9050612a9a60408301846127c1565b949350505050565b612aab8161280b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000612ad882612ab1565b612ae28185612abc565b9350612af28185602086016129f0565b612afb81612a1a565b840191505092915050565b600060a082019050612b1b6000830188612aa2565b8181036020830152612b2d8187612acd565b9050612b3c60408301866127c1565b612b4960608301856127c1565b612b5660808301846127c1565b9695505050505050565b60006020820190508181036000830152612b7a8184612a2b565b905092915050565b6000602082019050612b976000830184612aa2565b92915050565b6000819050919050565b6000612bc2612bbd612bb8846127eb565b612b9d565b6127eb565b9050919050565b6000612bd482612ba7565b9050919050565b6000612be682612bc9565b9050919050565b612bf681612bdb565b82525050565b6000602082019050612c116000830184612bed565b92915050565b600080fd5b600060608284031215612c3257612c31612c17565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c6057612c5f612c3b565b5b8235905067ffffffffffffffff811115612c7d57612c7c612c40565b5b602083019150836040820283011115612c9957612c98612c45565b5b9250929050565b60008083601f840112612cb657612cb5612c3b565b5b8235905067ffffffffffffffff811115612cd357612cd2612c40565b5b602083019150836060820283011115612cef57612cee612c45565b5b9250929050565b60008060008060008060808789031215612d1357612d1261271e565b5b600087013567ffffffffffffffff811115612d3157612d30612723565b5b612d3d89828a01612c1c565b965050602087013567ffffffffffffffff811115612d5e57612d5d612723565b5b612d6a89828a01612c4a565b9550955050604087013567ffffffffffffffff811115612d8d57612d8c612723565b5b612d9989828a01612ca0565b93509350506060612dac89828a01612749565b9150509295509295509295565b6000612dc482612bc9565b9050919050565b612dd481612db9565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e3282612a1a565b810181811067ffffffffffffffff82111715612e5157612e50612dfa565b5b80604052505050565b6000612e64612714565b9050612e708282612e29565b919050565b600067ffffffffffffffff821115612e9057612e8f612dfa565b5b612e9982612a1a565b9050602081019050919050565b82818337600083830152505050565b6000612ec8612ec384612e75565b612e5a565b905082815260208101848484011115612ee457612ee3612df5565b5b612eef848285612ea6565b509392505050565b600082601f830112612f0c57612f0b612c3b565b5b8135612f1c848260208601612eb5565b91505092915050565b600080600060608486031215612f3e57612f3d61271e565b5b6000612f4c86828701612749565b9350506020612f5d86828701612749565b925050604084013567ffffffffffffffff811115612f7e57612f7d612723565b5b612f8a86828701612ef7565b9150509250925092565b6000612f9f82612bc9565b9050919050565b612faf81612f94565b82525050565b6000602082019050612fca6000830184612fa6565b92915050565b7f546f6b656e4272696467653a2062726964676520697320706175736564000000600082015250565b6000613006601d83612abc565b915061301182612fd0565b602082019050919050565b6000602082019050818103600083015261303581612ff9565b9050919050565b7f616d6f756e74206d757374206265203e20300000000000000000000000000000600082015250565b6000613072601283612abc565b915061307d8261303c565b602082019050919050565b600060208201905081810360008301526130a181613065565b9050919050565b7f546f6b656e4272696467653a207769746864726177206c696d6974206d75737460008201527f206265203e203000000000000000000000000000000000000000000000000000602082015250565b6000613104602783612abc565b915061310f826130a8565b604082019050919050565b60006020820190508181036000830152613133816130f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317482612728565b915061317f83612728565b92508282039050818111156131975761319661313a565b5b92915050565b60006040820190506131b26000830185612aa2565b6131bf60208301846127c1565b9392505050565b6131cf8161278b565b81146131da57600080fd5b50565b6000815190506131ec816131c6565b92915050565b6000602082840312156132085761320761271e565b5b6000613216848285016131dd565b91505092915050565b7f546f6b656e4272696467653a207472616e73666572206661696c656400000000600082015250565b6000613255601c83612abc565b91506132608261321f565b602082019050919050565b6000602082019050818103600083015261328481613248565b9050919050565b61329481612876565b82525050565b60006040820190506132af600083018561328b565b6132bc60208301846127c1565b9392505050565b6000815190506132d281612732565b92915050565b600080604083850312156132ef576132ee61271e565b5b60006132fd858286016131dd565b925050602061330e858286016132c3565b9150509250929050565b600060208201905061332d600083018461328b565b92915050565b6000602082840312156133495761334861271e565b5b6000613357848285016132c3565b91505092915050565b60008151905061336f8161281d565b92915050565b60006020828403121561338b5761338a61271e565b5b600061339984828501613360565b91505092915050565b7f546f6b656e4272696467653a206f6e6c7920677561726469616e2063616e207060008201527f6175736520627269646765000000000000000000000000000000000000000000602082015250565b60006133fe602b83612abc565b9150613409826133a2565b604082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f546f6b656e4272696467653a2063616e206f6e6c79207061757365206f6e6365600082015250565b600061346a602083612abc565b915061347582613434565b602082019050919050565b600060208201905081810360008301526134998161345d565b9050919050565b60006060820190506134b56000830186612aa2565b6134c26020830185612aa2565b6134cf60408301846127c1565b949350505050565b600067ffffffffffffffff8211156134f2576134f1612dfa565b5b6134fb82612a1a565b9050602081019050919050565b600061351b613516846134d7565b612e5a565b90508281526020810184848401111561353757613536612df5565b5b6135428482856129f0565b509392505050565b600082601f83011261355f5761355e612c3b565b5b815161356f848260208601613508565b91505092915050565b6000806000606084860312156135915761359061271e565b5b600061359f868287016131dd565b935050602084015167ffffffffffffffff8111156135c0576135bf612723565b5b6135cc8682870161354a565b92505060406135dd868287016132c3565b9150509250925092565b7f546f6b656e4272696467653a20627269646765206973206e6f7420706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613643602183612abc565b915061364e826135e7565b604082019050919050565b6000602082019050818103600083015261367281613636565b9050919050565b7f546f6b656e4272696467653a206d7573742077616974206265666f726520756e60008201527f70617573696e6700000000000000000000000000000000000000000000000000602082015250565b60006136d5602783612abc565b91506136e082613679565b604082019050919050565b60006020820190508181036000830152613704816136c8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061375257607f821691505b6020821081036137655761376461370b565b5b50919050565b6000602082840312156137815761378061271e565b5b600082015167ffffffffffffffff81111561379f5761379e612723565b5b6137ab8482850161354a565b91505092915050565b7f5452424272696467650000000000000000000000000000000000000000000000600082015250565b60006137ea600983612abc565b91506137f5826137b4565b602082019050919050565b60006040820190508181036000830152613819816137dd565b9050818103602083015261382d8184612a2b565b905092915050565b7f546f6b656e4272696467653a20696e76616c6964207175657279496400000000600082015250565b600061386b601c83612abc565b915061387682613835565b602082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b7f546f6b656e4272696467653a20776974686472617720616c726561647920636c60008201527f61696d6564000000000000000000000000000000000000000000000000000000602082015250565b60006138fd602583612abc565b9150613908826138a1565b604082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b600080fd5b600080fd5b600080fd5b60008235600160a00383360303811261395e5761395d613933565b5b80830191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139a482612728565b91506139af83612728565b9250826139bf576139be61396a565b5b828204905092915050565b7f546f6b656e4272696467653a207072656d61747572652061747465737461746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a26602283612abc565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f546f6b656e4272696467653a206174746573746174696f6e20746f6f206f6c64600082015250565b6000613a92602083612abc565b9150613a9d82613a5c565b602082019050919050565b60006020820190508181036000830152613ac181613a85565b9050919050565b6000613ad76020840184612897565b905092915050565b613ae881612876565b82525050565b600080fd5b60008235600160a003833603038112613b0f57613b0e613aee565b5b82810191505092915050565b600080fd5b600080fd5b60008083356001602003843603038112613b4257613b41613aee565b5b83810192508235915060208301925067ffffffffffffffff821115613b6a57613b69613b1b565b5b600182023603831315613b8057613b7f613b20565b5b509250929050565b600082825260208201905092915050565b6000613ba58385613b88565b9350613bb2838584612ea6565b613bbb83612a1a565b840190509392505050565b6000613bd56020840184612749565b905092915050565b613be681612728565b82525050565b600060a08301613bff6000840184613b25565b8583036000870152613c12838284613b99565b92505050613c236020840184613bc6565b613c306020860182613bdd565b50613c3e6040840184613bc6565b613c4b6040860182613bdd565b50613c596060840184613bc6565b613c666060860182613bdd565b50613c746080840184613bc6565b613c816080860182613bdd565b508091505092915050565b600060608301613c9f6000840184613ac8565b613cac6000860182613adf565b50613cba6020840184613af3565b8482036020860152613ccc8282613bec565b915050613cdc6040840184613bc6565b613ce96040860182613bdd565b508091505092915050565b600082825260208201905092915050565b6000819050919050565b6000613d1e6020840184612834565b905092915050565b613d2f8161280b565b82525050565b60408201613d466000830183613d0f565b613d536000850182613d26565b50613d616020830183613bc6565b613d6e6020850182613bdd565b50505050565b6000613d808383613d35565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613db08385613cf4565b9350613dbb82613d05565b8060005b85811015613df457613dd18284613d8c565b613ddb8882613d74565b9750613de683613d97565b925050600181019050613dbf565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b600060ff82169050919050565b613e3281613e1c565b8114613e3d57600080fd5b50565b600081359050613e4f81613e29565b92915050565b6000613e646020840184613e40565b905092915050565b613e7581613e1c565b82525050565b60608201613e8c6000830183613e55565b613e996000850182613e6c565b50613ea76020830183613ac8565b613eb46020850182613adf565b50613ec26040830183613ac8565b613ecf6040850182613adf565b50505050565b6000613ee18383613e7b565b60608301905092915050565b600082905092915050565b6000606082019050919050565b6000613f118385613e01565b9350613f1c82613e12565b8060005b85811015613f5557613f328284613eed565b613f3c8882613ed5565b9750613f4783613ef8565b925050600181019050613f20565b5085925050509392505050565b60006060820190508181036000830152613f7c8188613c8c565b90508181036020830152613f91818688613da4565b90508181036040830152613fa6818486613f05565b90509695505050505050565b7f5265706f72742061676772656761746520706f776572206d757374206265206760008201527f726561746572207468616e206f7220657175616c20746f205f6d696e696d756d60208201527f506f776572000000000000000000000000000000000000000000000000000000604082015250565b6000614034604583612abc565b915061403f82613fb2565b606082019050919050565b6000602082019050818103600083015261406381614027565b9050919050565b6000808335600160200384360303811261408757614086613933565b5b80840192508235915067ffffffffffffffff8211156140a9576140a8613938565b5b6020830192506001820236038313156140c5576140c461393d565b5b509250929050565b60006140d8826127eb565b9050919050565b6140e8816140cd565b81146140f357600080fd5b50565b600081359050614105816140df565b92915050565b600080600080608085870312156141255761412461271e565b5b6000614133878288016140f6565b945050602085013567ffffffffffffffff81111561415457614153612723565b5b61416087828801612ef7565b935050604061417187828801612749565b925050606061418287828801612749565b91505092959194509250565b600061419982612728565b91506141a483612728565b92508282026141b281612728565b915082820484148315176141c9576141c861313a565b5b5092915050565b60006141db82612728565b91506141e683612728565b92508282019050808211156141fe576141fd61313a565b5b92915050565b600060808201905061421960008301876127c1565b818103602083015261422b8186612acd565b905061423a6040830185612aa2565b61424760608301846127c1565b95945050505050565b7f546f6b656e4272696467653a20616d6f756e74206d757374206265206772656160008201527f746572207468616e20302e3120746f6b656e7300000000000000000000000000602082015250565b60006142ac603383612abc565b91506142b782614250565b604082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b60006142ed82612728565b91506142f883612728565b9250826143085761430761396a565b5b828206905092915050565b7f546f6b656e4272696467653a20616d6f756e74206d757374206265206469766960008201527f7369626c65206279203165313200000000000000000000000000000000000000602082015250565b600061436f602d83612abc565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f546f6b656e4272696467653a20616d6f756e742065786365656473206465706f60008201527f736974206c696d697420666f722074696d6520706572696f6400000000000000602082015250565b6000614401603983612abc565b915061440c826143a5565b604082019050919050565b60006020820190508181036000830152614430816143f4565b9050919050565b7f546f6b656e4272696467653a20746970206d757374206265206c65737320746860008201527f616e206f7220657175616c20746f20616d6f756e740000000000000000000000602082015250565b6000614493603583612abc565b915061449e82614437565b604082019050919050565b600060208201905081810360008301526144c281614486565b9050919050565b7f546f6b656e4272696467653a20746970206d757374206265206772656174657260008201527f207468616e206f7220657175616c20746f2031206c6f79610000000000000000602082015250565b6000614525603883612abc565b9150614530826144c9565b604082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f546f6b656e4272696467653a207472616e7366657246726f6d206661696c6564600082015250565b6000614591602083612abc565b915061459c8261455b565b602082019050919050565b600060208201905081810360008301526145c081614584565b9050919050565b60006145d282612728565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036146045761460361313a565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026146717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614634565b61467b8683614634565b95508019841693508086168417925050509392505050565b60006146ae6146a96146a484612728565b612b9d565b612728565b9050919050565b6000819050919050565b6146c883614693565b6146dc6146d4826146b5565b848454614641565b825550505050565b600090565b6146f16146e4565b6146fc8184846146bf565b505050565b5b81811015614720576147156000826146e9565b600181019050614702565b5050565b601f821115614765576147368161460f565b61473f84614624565b8101602085101561474e578190505b61476261475a85614624565b830182614701565b50505b505050565b600082821c905092915050565b60006147886000198460080261476a565b1980831691505092915050565b60006147a18383614777565b9150826002028217905092915050565b6147ba82612ab1565b67ffffffffffffffff8111156147d3576147d2612dfa565b5b6147dd825461373a565b6147e8828285614724565b600060209050601f83116001811461481b5760008415614809578287015190505b6148138582614795565b86555061487b565b601f1984166148298661460f565b60005b828110156148515784890151825560018201915060208501945060208101905061482c565b8683101561486e578489015161486a601f891682614777565b8355505b6001600288020188555050505b505050505050565b600060a08201905061489860008301886127c1565b6148a56020830187612aa2565b81810360408301526148b78186612acd565b90506148c660608301856127c1565b6148d360808301846127c1565b969550505050505056fea264697066735822122057d99ad3700900e0a59442b9237364650bd0441331c5addfea99c600c017fbd664736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1000000000000000000000000f7f839fdfec4cdf68e8dee5914ae08bfe8f9e4cd0000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1

-----Decoded View---------------
Arg [0] : _token (address): 0x5bd3b87EEF3348B2b115A2bC92d8c01Aa7a0CEb1
Arg [1] : _blobstream (address): 0xF7F839fDfEc4cDF68E8dEe5914aE08bfe8f9E4cD
Arg [2] : _tellorFlex (address): 0x5bd3b87EEF3348B2b115A2bC92d8c01Aa7a0CEb1

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1
Arg [1] : 000000000000000000000000f7f839fdfec4cdf68e8dee5914ae08bfe8f9e4cd
Arg [2] : 0000000000000000000000005bd3b87eef3348b2b115a2bc92d8c01aa7a0ceb1


Deployed Bytecode Sourcemap

8009:11235:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9636:66;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8775:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9514:77;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10883:906;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5085:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9084:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8353:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9199:55;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13259:495;;;:::i;:::-;;8871:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8587:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8498:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8270:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8105:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9308:66;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4508:388;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13858:350;;;:::i;:::-;;9414:60;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8672:66;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8413:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6417:124;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7106:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6140:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4120:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8976:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3541:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14483:1838;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8072:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16509:322;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12077:1015;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16939:326;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8183:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3508:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7363:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9636:66;;;;;;;;;;;;;;;;;;;;;;:::o;8775:44::-;8815:4;8775:44;:::o;9514:77::-;;;;;;;;;;;;;;;;;:::o;10883:906::-;10974:18;10959:33;;;;;;;;:::i;:::-;;:11;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;10951:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11037:24;11064:13;:25;11078:10;11064:25;;;;;;;;;;;;;;;;11037:52;;11127:1;11108:16;:20;11100:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11162:22;11187:39;11209:16;11187:21;:39::i;:::-;11162:64;;11262:1;11245:14;:18;11237:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11338:16;11321:14;:33;11318:252;;;11426:14;11398:13;:25;11412:10;11398:25;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;11370:13;:25;11384:10;11370:25;;;;;;;;;;;;;;;:70;;;;11474:14;11455:33;;11318:252;;;11557:1;11529:13;:25;11543:10;11529:25;;;;;;;;;;;;;;;:29;;;;11318:252;11603:16;11580:19;;:39;;;;;;;:::i;:::-;;;;;;;;11638:5;;;;;;;;;;;:14;;;11653:10;11665:16;11638:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11630:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11731:50;11752:10;11764:16;11731:50;;;;;;;:::i;:::-;;;;;;;;10940:849;;10883:906;:::o;5085:200::-;5176:11;5189:14;5223:10;;;;;;;;;;;:32;;;5256:8;5266:10;5223:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5216:61;;;;5085:200;;;;;:::o;9084:65::-;9145:4;9084:65;:::o;8353:30::-;;;;;;;;;;;;;:::o;6720:157::-;6801:4;6825:10;;;;;;;;;;;:22;;;6848:8;6858:10;6825:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6818:51;;6720:157;;;;:::o;9199:55::-;9246:8;9199:55;:::o;5423:156::-;5498:7;5525:10;;;;;;;;;;;:36;;;5562:8;5525:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5518:53;;5423:156;;;:::o;13259:495::-;13324:6;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13310:31;;:10;:31;;;13302:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13423:18;13408:33;;;;;;;;:::i;:::-;;:11;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;13400:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13497:5;;;;;;;;;;;:18;;;13516:10;13536:6;9023:11;13497:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13489:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:18;13610:11;;:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;13677:15;13653:21;:39;;;;13708:38;13727:18;13708:38;;;;;;:::i;:::-;;;;;;;;13259:495::o;8871:46::-;8910:7;8871:46;:::o;8587:34::-;;;;:::o;8498:38::-;;;;:::o;8270:33::-;;;;:::o;8105:24::-;;;;:::o;9308:66::-;9361:13;9308:66;:::o;4508:388::-;4601:16;4628:19;4658:27;4720:19;;4708:8;:31;4704:121;;4764:4;4789;4770:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;4797:15;4756:57;;;;;;;;4704:121;4842:10;;;;;;;;;;;:24;;;4867:8;4877:10;4842:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4835:53;;;;;;4508:388;;;;;;:::o;13858:350::-;13926:18;13911:33;;;;;;;;:::i;:::-;;:11;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;13903:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8910:7;14019:21;;14001:15;:39;;;;:::i;:::-;:54;13993:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;14124:20;14110:11;;:34;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;14160:40;14179:20;14160:40;;;;;;:::i;:::-;;;;;;;;13858:350::o;9414:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8672:66::-;8724:14;8672:66;:::o;8413:36::-;;;;:::o;6417:124::-;6472:7;6499:10;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6492:41;;6417:124;:::o;7106:167::-;7188:12;7220:10;;;;;;;;;;;:23;;;7244:8;7254:10;7220:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7213:52;;7106:167;;;;:::o;6140:188::-;6235:7;6262:10;;;;;;;;;;;:40;;;6303:8;6313:6;6262:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6255:65;;6140:188;;;;:::o;4120:126::-;4184:5;;;;;;;;;;;:18;;;4203:10;4223:4;4230:7;4184:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4120:126;:::o;8976:58::-;9023:11;8976:58;:::o;5769:182::-;5861:7;5888:10;;;;;;;;;;;:33;;;5922:8;5932:10;5888:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5881:62;;5769:182;;;;:::o;3541:29::-;;;;;;;;;;;;;:::o;14483:1838::-;14718:18;14703:33;;;;;;;;:::i;:::-;;:11;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;14695:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14857:5;14864:10;14846:29;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14822:54;;;;;;;;:::i;:::-;;;;;;;;;;;;;14812:65;;;;;;14789:11;:19;;;:88;14781:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;14930:15;:27;14946:10;14930:27;;;;;;;;;;;;;;;;;;;;;14929:28;14921:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9246:8;8815:4;15037:11;:18;;;;;;;;:::i;:::-;:28;;;:44;;;;:::i;:::-;15018:15;:64;;;;:::i;:::-;:87;15010:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;9246:8;8815:4;15182:11;:32;;;:48;;;;:::i;:::-;15163:15;:68;;;;:::i;:::-;:91;15155:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;15302:6;;;;;;;;;;;:23;;;15326:11;15339:7;;15348:5;;15302:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15410:6;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15373:11;:18;;;;;;;;:::i;:::-;:33;;;:60;;15365:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;15548:4;15518:15;:27;15534:10;15518:27;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;15568:18;15588:26;15615:19;15650:11;:18;;;;;;;;:::i;:::-;:24;;;;;;;;:::i;:::-;15639:73;;;;;;;:::i;:::-;15567:145;;;;;;;15723:24;9145:4;15750:11;:48;;;;:::i;:::-;15723:75;;15810:22;15835:39;15857:16;15835:21;:39::i;:::-;15810:64;;15905:16;15888:14;:33;15885:203;;;16013:14;15994:16;:33;;;;:::i;:::-;15965:13;:25;15979:10;15965:25;;;;;;;;;;;;;;;;:63;;;;:::i;:::-;15937:13;:25;15951:10;15937:25;;;;;;;;;;;;;;;:91;;;;16062:14;16043:33;;15885:203;16121:16;16098:19;;:39;;;;;;;:::i;:::-;;;;;;;;16156:5;;;;;;;;;;;:14;;;16171:10;16183:16;16156:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16148:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16249:64;16258:10;16270:12;16284:10;16296:16;16249:64;;;;;;;;;:::i;:::-;;;;;;;;14684:1637;;;;;14483:1838;;;;;;:::o;8072:26::-;;;;;;;;;;;;;:::o;16509:322::-;16556:7;9246:8;16598:22;;16580:15;:40;;;;:::i;:::-;:63;16576:248;;;8724:14;16701:16;:14;:16::i;:::-;16668:5;;;;;;;;;;;:15;;;16692:4;16668:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;;;:::i;:::-;16667:79;;;;:::i;:::-;16660:86;;;;16576:248;16794:18;;16787:25;;16509:322;;:::o;12077:1015::-;12201:9;12191:7;:19;12183:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;12333:1;9145:4;12285:7;:44;;;;:::i;:::-;:49;12277:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;12414:29;12435:7;12414:20;:29::i;:::-;12403:7;:40;;12395:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;12532:7;12524:4;:15;;12516:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12619:1;12612:4;:8;12608:122;;;12653:4;12645;:12;;12637:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12608:122;12748:5;;;;;;;;;;;:18;;;12767:10;12787:4;12794:7;12748:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12740:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12850:9;;:11;;;;;;;;;:::i;:::-;;;;;;12894:7;12872:18;;:29;;;;;;;:::i;:::-;;;;;;;;12934:72;;;;;;;;12949:10;12934:72;;;;;;12961:15;12934:72;;;;12978:7;12934:72;;;;12987:4;12934:72;;;;12993:12;12934:72;;;12912:8;:19;12921:9;;12912:19;;;;;;;;;;;:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13022:62;13030:9;;13041:10;13053:15;13070:7;13079:4;13022:62;;;;;;;;;;:::i;:::-;;;;;;;;12077:1015;;;:::o;16939:326::-;16987:7;9246:8;17029:23;;17011:15;:41;;;;:::i;:::-;:64;17007:251;;;9361:13;17133:16;:14;:16::i;:::-;17100:5;;;;;;;;;;;:15;;;17124:4;17100:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;;;:::i;:::-;17099:80;;;;:::i;:::-;17092:87;;;;17007:251;17227:19;;17220:26;;16939:326;;:::o;8183:37::-;;;;:::o;3508:26::-;;;;;;;;;;;;;:::o;7363:80::-;7404:7;7431:4;7424:11;;7363:80;:::o;18661:580::-;18727:7;9246:8;18769:23;;18751:15;:41;;;;:::i;:::-;:64;18747:449;;;18832:21;18856:5;;;;;;;;;;;:15;;;18880:4;18856:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18832:54;;18921:7;18905:13;:23;18901:149;;;18949:5;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19004:5;;;;;;;;;;;:15;;;19028:4;19004:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18988:46;;18901:149;9361:13;19086;:42;;;;:::i;:::-;19064:19;:64;;;;19169:15;19143:23;:41;;;;18817:379;18747:449;19214:19;;19207:26;;18661:580;;;:::o;17442:260::-;17491:7;17511:23;17656:5;17585;;;;;;;;;;;:16;;;17602:35;17585:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17567:15;:71;;;;:::i;:::-;17538:12;:101;;;;:::i;:::-;17537:124;;;;:::i;:::-;17511:150;;17679:15;17672:22;;;17442:260;:::o;17871:574::-;17936:7;9246:8;17978:22;;17960:15;:40;;;;:::i;:::-;:63;17956:445;;;18040:21;18064:5;;;;;;;;;;;:15;;;18088:4;18064:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18040:54;;18129:7;18113:13;:23;18109:149;;;18157:5;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18212:5;;;;;;;;;;;:15;;;18236:4;18212:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18196:46;;18109:149;8724:14;18293:13;:41;;;;:::i;:::-;18272:18;:62;;;;18374:15;18349:22;:40;;;;18025:376;17956:445;18419:18;;18412:25;;17871:574;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:90::-;1059:7;1102:5;1095:13;1088:21;1077:32;;1025:90;;;:::o;1121:109::-;1202:21;1217:5;1202:21;:::i;:::-;1197:3;1190:34;1121:109;;:::o;1236:210::-;1323:4;1361:2;1350:9;1346:18;1338:26;;1374:65;1436:1;1425:9;1421:17;1412:6;1374:65;:::i;:::-;1236:210;;;;:::o;1452:118::-;1539:24;1557:5;1539:24;:::i;:::-;1534:3;1527:37;1452:118;;:::o;1576:222::-;1669:4;1707:2;1696:9;1692:18;1684:26;;1720:71;1788:1;1777:9;1773:17;1764:6;1720:71;:::i;:::-;1576:222;;;;:::o;1804:126::-;1841:7;1881:42;1874:5;1870:54;1859:65;;1804:126;;;:::o;1936:96::-;1973:7;2002:24;2020:5;2002:24;:::i;:::-;1991:35;;1936:96;;;:::o;2038:122::-;2111:24;2129:5;2111:24;:::i;:::-;2104:5;2101:35;2091:63;;2150:1;2147;2140:12;2091:63;2038:122;:::o;2166:139::-;2212:5;2250:6;2237:20;2228:29;;2266:33;2293:5;2266:33;:::i;:::-;2166:139;;;;:::o;2311:329::-;2370:6;2419:2;2407:9;2398:7;2394:23;2390:32;2387:119;;;2425:79;;:::i;:::-;2387:119;2545:1;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2516:117;2311:329;;;;:::o;2646:77::-;2683:7;2712:5;2701:16;;2646:77;;;:::o;2729:122::-;2802:24;2820:5;2802:24;:::i;:::-;2795:5;2792:35;2782:63;;2841:1;2838;2831:12;2782:63;2729:122;:::o;2857:139::-;2903:5;2941:6;2928:20;2919:29;;2957:33;2984:5;2957:33;:::i;:::-;2857:139;;;;:::o;3002:474::-;3070:6;3078;3127:2;3115:9;3106:7;3102:23;3098:32;3095:119;;;3133:79;;:::i;:::-;3095:119;3253:1;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3224:117;3380:2;3406:53;3451:7;3442:6;3431:9;3427:22;3406:53;:::i;:::-;3396:63;;3351:118;3002:474;;;;;:::o;3482:320::-;3597:4;3635:2;3624:9;3620:18;3612:26;;3648:65;3710:1;3699:9;3695:17;3686:6;3648:65;:::i;:::-;3723:72;3791:2;3780:9;3776:18;3767:6;3723:72;:::i;:::-;3482:320;;;;;:::o;3808:180::-;3856:77;3853:1;3846:88;3953:4;3950:1;3943:15;3977:4;3974:1;3967:15;3994:120;4082:1;4075:5;4072:12;4062:46;;4088:18;;:::i;:::-;4062:46;3994:120;:::o;4120:141::-;4172:7;4201:5;4190:16;;4207:48;4249:5;4207:48;:::i;:::-;4120:141;;;:::o;4267:::-;4330:9;4363:39;4396:5;4363:39;:::i;:::-;4350:52;;4267:141;;;:::o;4414:157::-;4514:50;4558:5;4514:50;:::i;:::-;4509:3;4502:63;4414:157;;:::o;4577:248::-;4683:4;4721:2;4710:9;4706:18;4698:26;;4734:84;4815:1;4804:9;4800:17;4791:6;4734:84;:::i;:::-;4577:248;;;;:::o;4831:329::-;4890:6;4939:2;4927:9;4918:7;4914:23;4910:32;4907:119;;;4945:79;;:::i;:::-;4907:119;5065:1;5090:53;5135:7;5126:6;5115:9;5111:22;5090:53;:::i;:::-;5080:63;;5036:117;4831:329;;;;:::o;5166:98::-;5217:6;5251:5;5245:12;5235:22;;5166:98;;;:::o;5270:168::-;5353:11;5387:6;5382:3;5375:19;5427:4;5422:3;5418:14;5403:29;;5270:168;;;;:::o;5444:246::-;5525:1;5535:113;5549:6;5546:1;5543:13;5535:113;;;5634:1;5629:3;5625:11;5619:18;5615:1;5610:3;5606:11;5599:39;5571:2;5568:1;5564:10;5559:15;;5535:113;;;5682:1;5673:6;5668:3;5664:16;5657:27;5506:184;5444:246;;;:::o;5696:102::-;5737:6;5788:2;5784:7;5779:2;5772:5;5768:14;5764:28;5754:38;;5696:102;;;:::o;5804:373::-;5890:3;5918:38;5950:5;5918:38;:::i;:::-;5972:70;6035:6;6030:3;5972:70;:::i;:::-;5965:77;;6051:65;6109:6;6104:3;6097:4;6090:5;6086:16;6051:65;:::i;:::-;6141:29;6163:6;6141:29;:::i;:::-;6136:3;6132:39;6125:46;;5894:283;5804:373;;;;:::o;6183:517::-;6344:4;6382:2;6371:9;6367:18;6359:26;;6395:65;6457:1;6446:9;6442:17;6433:6;6395:65;:::i;:::-;6507:9;6501:4;6497:20;6492:2;6481:9;6477:18;6470:48;6535:76;6606:4;6597:6;6535:76;:::i;:::-;6527:84;;6621:72;6689:2;6678:9;6674:18;6665:6;6621:72;:::i;:::-;6183:517;;;;;;:::o;6706:118::-;6793:24;6811:5;6793:24;:::i;:::-;6788:3;6781:37;6706:118;;:::o;6830:99::-;6882:6;6916:5;6910:12;6900:22;;6830:99;;;:::o;6935:169::-;7019:11;7053:6;7048:3;7041:19;7093:4;7088:3;7084:14;7069:29;;6935:169;;;;:::o;7110:377::-;7198:3;7226:39;7259:5;7226:39;:::i;:::-;7281:71;7345:6;7340:3;7281:71;:::i;:::-;7274:78;;7361:65;7419:6;7414:3;7407:4;7400:5;7396:16;7361:65;:::i;:::-;7451:29;7473:6;7451:29;:::i;:::-;7446:3;7442:39;7435:46;;7202:285;7110:377;;;;:::o;7493:755::-;7718:4;7756:3;7745:9;7741:19;7733:27;;7770:71;7838:1;7827:9;7823:17;7814:6;7770:71;:::i;:::-;7888:9;7882:4;7878:20;7873:2;7862:9;7858:18;7851:48;7916:78;7989:4;7980:6;7916:78;:::i;:::-;7908:86;;8004:72;8072:2;8061:9;8057:18;8048:6;8004:72;:::i;:::-;8086;8154:2;8143:9;8139:18;8130:6;8086:72;:::i;:::-;8168:73;8236:3;8225:9;8221:19;8212:6;8168:73;:::i;:::-;7493:755;;;;;;;;:::o;8254:309::-;8365:4;8403:2;8392:9;8388:18;8380:26;;8452:9;8446:4;8442:20;8438:1;8427:9;8423:17;8416:47;8480:76;8551:4;8542:6;8480:76;:::i;:::-;8472:84;;8254:309;;;;:::o;8569:222::-;8662:4;8700:2;8689:9;8685:18;8677:26;;8713:71;8781:1;8770:9;8766:17;8757:6;8713:71;:::i;:::-;8569:222;;;;:::o;8797:60::-;8825:3;8846:5;8839:12;;8797:60;;;:::o;8863:142::-;8913:9;8946:53;8964:34;8973:24;8991:5;8973:24;:::i;:::-;8964:34;:::i;:::-;8946:53;:::i;:::-;8933:66;;8863:142;;;:::o;9011:126::-;9061:9;9094:37;9125:5;9094:37;:::i;:::-;9081:50;;9011:126;;;:::o;9143:145::-;9212:9;9245:37;9276:5;9245:37;:::i;:::-;9232:50;;9143:145;;;:::o;9294:169::-;9400:56;9450:5;9400:56;:::i;:::-;9395:3;9388:69;9294:169;;:::o;9469:260::-;9581:4;9619:2;9608:9;9604:18;9596:26;;9632:90;9719:1;9708:9;9704:17;9695:6;9632:90;:::i;:::-;9469:260;;;;:::o;9735:117::-;9844:1;9841;9834:12;9894:242;9978:5;10019:2;10010:6;10005:3;10001:16;9997:25;9994:112;;;10025:79;;:::i;:::-;9994:112;10124:6;10115:15;;9894:242;;;;:::o;10142:117::-;10251:1;10248;10241:12;10265:117;10374:1;10371;10364:12;10388:117;10497:1;10494;10487:12;10537:595;10637:8;10647:6;10697:3;10690:4;10682:6;10678:17;10674:27;10664:122;;10705:79;;:::i;:::-;10664:122;10818:6;10805:20;10795:30;;10848:18;10840:6;10837:30;10834:117;;;10870:79;;:::i;:::-;10834:117;10984:4;10976:6;10972:17;10960:29;;11038:3;11030:4;11022:6;11018:17;11008:8;11004:32;11001:41;10998:128;;;11045:79;;:::i;:::-;10998:128;10537:595;;;;;:::o;11164:::-;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11164:595;;;;;:::o;11765:1569::-;11997:6;12005;12013;12021;12029;12037;12086:3;12074:9;12065:7;12061:23;12057:33;12054:120;;;12093:79;;:::i;:::-;12054:120;12241:1;12230:9;12226:17;12213:31;12271:18;12263:6;12260:30;12257:117;;;12293:79;;:::i;:::-;12257:117;12398:91;12481:7;12472:6;12461:9;12457:22;12398:91;:::i;:::-;12388:101;;12184:315;12566:2;12555:9;12551:18;12538:32;12597:18;12589:6;12586:30;12583:117;;;12619:79;;:::i;:::-;12583:117;12732:107;12831:7;12822:6;12811:9;12807:22;12732:107;:::i;:::-;12714:125;;;;12509:340;12916:2;12905:9;12901:18;12888:32;12947:18;12939:6;12936:30;12933:117;;;12969:79;;:::i;:::-;12933:117;13082:107;13181:7;13172:6;13161:9;13157:22;13082:107;:::i;:::-;13064:125;;;;12859:340;13238:2;13264:53;13309:7;13300:6;13289:9;13285:22;13264:53;:::i;:::-;13254:63;;13209:118;11765:1569;;;;;;;;:::o;13340:145::-;13409:9;13442:37;13473:5;13442:37;:::i;:::-;13429:50;;13340:145;;;:::o;13491:169::-;13597:56;13647:5;13597:56;:::i;:::-;13592:3;13585:69;13491:169;;:::o;13666:260::-;13778:4;13816:2;13805:9;13801:18;13793:26;;13829:90;13916:1;13905:9;13901:17;13892:6;13829:90;:::i;:::-;13666:260;;;;:::o;13932:117::-;14041:1;14038;14031:12;14055:180;14103:77;14100:1;14093:88;14200:4;14197:1;14190:15;14224:4;14221:1;14214:15;14241:281;14324:27;14346:4;14324:27;:::i;:::-;14316:6;14312:40;14454:6;14442:10;14439:22;14418:18;14406:10;14403:34;14400:62;14397:88;;;14465:18;;:::i;:::-;14397:88;14505:10;14501:2;14494:22;14284:238;14241:281;;:::o;14528:129::-;14562:6;14589:20;;:::i;:::-;14579:30;;14618:33;14646:4;14638:6;14618:33;:::i;:::-;14528:129;;;:::o;14663:308::-;14725:4;14815:18;14807:6;14804:30;14801:56;;;14837:18;;:::i;:::-;14801:56;14875:29;14897:6;14875:29;:::i;:::-;14867:37;;14959:4;14953;14949:15;14941:23;;14663:308;;;:::o;14977:146::-;15074:6;15069:3;15064;15051:30;15115:1;15106:6;15101:3;15097:16;15090:27;14977:146;;;:::o;15129:425::-;15207:5;15232:66;15248:49;15290:6;15248:49;:::i;:::-;15232:66;:::i;:::-;15223:75;;15321:6;15314:5;15307:21;15359:4;15352:5;15348:16;15397:3;15388:6;15383:3;15379:16;15376:25;15373:112;;;15404:79;;:::i;:::-;15373:112;15494:54;15541:6;15536:3;15531;15494:54;:::i;:::-;15213:341;15129:425;;;;;:::o;15574:340::-;15630:5;15679:3;15672:4;15664:6;15660:17;15656:27;15646:122;;15687:79;;:::i;:::-;15646:122;15804:6;15791:20;15829:79;15904:3;15896:6;15889:4;15881:6;15877:17;15829:79;:::i;:::-;15820:88;;15636:278;15574:340;;;;:::o;15920:799::-;16007:6;16015;16023;16072:2;16060:9;16051:7;16047:23;16043:32;16040:119;;;16078:79;;:::i;:::-;16040:119;16198:1;16223:53;16268:7;16259:6;16248:9;16244:22;16223:53;:::i;:::-;16213:63;;16169:117;16325:2;16351:53;16396:7;16387:6;16376:9;16372:22;16351:53;:::i;:::-;16341:63;;16296:118;16481:2;16470:9;16466:18;16453:32;16512:18;16504:6;16501:30;16498:117;;;16534:79;;:::i;:::-;16498:117;16639:63;16694:7;16685:6;16674:9;16670:22;16639:63;:::i;:::-;16629:73;;16424:288;15920:799;;;;;:::o;16725:147::-;16796:9;16829:37;16860:5;16829:37;:::i;:::-;16816:50;;16725:147;;;:::o;16878:173::-;16986:58;17038:5;16986:58;:::i;:::-;16981:3;16974:71;16878:173;;:::o;17057:264::-;17171:4;17209:2;17198:9;17194:18;17186:26;;17222:92;17311:1;17300:9;17296:17;17287:6;17222:92;:::i;:::-;17057:264;;;;:::o;17327:179::-;17467:31;17463:1;17455:6;17451:14;17444:55;17327:179;:::o;17512:366::-;17654:3;17675:67;17739:2;17734:3;17675:67;:::i;:::-;17668:74;;17751:93;17840:3;17751:93;:::i;:::-;17869:2;17864:3;17860:12;17853:19;;17512:366;;;:::o;17884:419::-;18050:4;18088:2;18077:9;18073:18;18065:26;;18137:9;18131:4;18127:20;18123:1;18112:9;18108:17;18101:47;18165:131;18291:4;18165:131;:::i;:::-;18157:139;;17884:419;;;:::o;18309:168::-;18449:20;18445:1;18437:6;18433:14;18426:44;18309:168;:::o;18483:366::-;18625:3;18646:67;18710:2;18705:3;18646:67;:::i;:::-;18639:74;;18722:93;18811:3;18722:93;:::i;:::-;18840:2;18835:3;18831:12;18824:19;;18483:366;;;:::o;18855:419::-;19021:4;19059:2;19048:9;19044:18;19036:26;;19108:9;19102:4;19098:20;19094:1;19083:9;19079:17;19072:47;19136:131;19262:4;19136:131;:::i;:::-;19128:139;;18855:419;;;:::o;19280:226::-;19420:34;19416:1;19408:6;19404:14;19397:58;19489:9;19484:2;19476:6;19472:15;19465:34;19280:226;:::o;19512:366::-;19654:3;19675:67;19739:2;19734:3;19675:67;:::i;:::-;19668:74;;19751:93;19840:3;19751:93;:::i;:::-;19869:2;19864:3;19860:12;19853:19;;19512:366;;;:::o;19884:419::-;20050:4;20088:2;20077:9;20073:18;20065:26;;20137:9;20131:4;20127:20;20123:1;20112:9;20108:17;20101:47;20165:131;20291:4;20165:131;:::i;:::-;20157:139;;19884:419;;;:::o;20309:180::-;20357:77;20354:1;20347:88;20454:4;20451:1;20444:15;20478:4;20475:1;20468:15;20495:194;20535:4;20555:20;20573:1;20555:20;:::i;:::-;20550:25;;20589:20;20607:1;20589:20;:::i;:::-;20584:25;;20633:1;20630;20626:9;20618:17;;20657:1;20651:4;20648:11;20645:37;;;20662:18;;:::i;:::-;20645:37;20495:194;;;;:::o;20695:332::-;20816:4;20854:2;20843:9;20839:18;20831:26;;20867:71;20935:1;20924:9;20920:17;20911:6;20867:71;:::i;:::-;20948:72;21016:2;21005:9;21001:18;20992:6;20948:72;:::i;:::-;20695:332;;;;;:::o;21033:116::-;21103:21;21118:5;21103:21;:::i;:::-;21096:5;21093:32;21083:60;;21139:1;21136;21129:12;21083:60;21033:116;:::o;21155:137::-;21209:5;21240:6;21234:13;21225:22;;21256:30;21280:5;21256:30;:::i;:::-;21155:137;;;;:::o;21298:345::-;21365:6;21414:2;21402:9;21393:7;21389:23;21385:32;21382:119;;;21420:79;;:::i;:::-;21382:119;21540:1;21565:61;21618:7;21609:6;21598:9;21594:22;21565:61;:::i;:::-;21555:71;;21511:125;21298:345;;;;:::o;21649:178::-;21789:30;21785:1;21777:6;21773:14;21766:54;21649:178;:::o;21833:366::-;21975:3;21996:67;22060:2;22055:3;21996:67;:::i;:::-;21989:74;;22072:93;22161:3;22072:93;:::i;:::-;22190:2;22185:3;22181:12;22174:19;;21833:366;;;:::o;22205:419::-;22371:4;22409:2;22398:9;22394:18;22386:26;;22458:9;22452:4;22448:20;22444:1;22433:9;22429:17;22422:47;22486:131;22612:4;22486:131;:::i;:::-;22478:139;;22205:419;;;:::o;22630:118::-;22717:24;22735:5;22717:24;:::i;:::-;22712:3;22705:37;22630:118;;:::o;22754:332::-;22875:4;22913:2;22902:9;22898:18;22890:26;;22926:71;22994:1;22983:9;22979:17;22970:6;22926:71;:::i;:::-;23007:72;23075:2;23064:9;23060:18;23051:6;23007:72;:::i;:::-;22754:332;;;;;:::o;23092:143::-;23149:5;23180:6;23174:13;23165:22;;23196:33;23223:5;23196:33;:::i;:::-;23092:143;;;;:::o;23241:501::-;23317:6;23325;23374:2;23362:9;23353:7;23349:23;23345:32;23342:119;;;23380:79;;:::i;:::-;23342:119;23500:1;23525:61;23578:7;23569:6;23558:9;23554:22;23525:61;:::i;:::-;23515:71;;23471:125;23635:2;23661:64;23717:7;23708:6;23697:9;23693:22;23661:64;:::i;:::-;23651:74;;23606:129;23241:501;;;;;:::o;23748:222::-;23841:4;23879:2;23868:9;23864:18;23856:26;;23892:71;23960:1;23949:9;23945:17;23936:6;23892:71;:::i;:::-;23748:222;;;;:::o;23976:351::-;24046:6;24095:2;24083:9;24074:7;24070:23;24066:32;24063:119;;;24101:79;;:::i;:::-;24063:119;24221:1;24246:64;24302:7;24293:6;24282:9;24278:22;24246:64;:::i;:::-;24236:74;;24192:128;23976:351;;;;:::o;24333:143::-;24390:5;24421:6;24415:13;24406:22;;24437:33;24464:5;24437:33;:::i;:::-;24333:143;;;;:::o;24482:351::-;24552:6;24601:2;24589:9;24580:7;24576:23;24572:32;24569:119;;;24607:79;;:::i;:::-;24569:119;24727:1;24752:64;24808:7;24799:6;24788:9;24784:22;24752:64;:::i;:::-;24742:74;;24698:128;24482:351;;;;:::o;24839:230::-;24979:34;24975:1;24967:6;24963:14;24956:58;25048:13;25043:2;25035:6;25031:15;25024:38;24839:230;:::o;25075:366::-;25217:3;25238:67;25302:2;25297:3;25238:67;:::i;:::-;25231:74;;25314:93;25403:3;25314:93;:::i;:::-;25432:2;25427:3;25423:12;25416:19;;25075:366;;;:::o;25447:419::-;25613:4;25651:2;25640:9;25636:18;25628:26;;25700:9;25694:4;25690:20;25686:1;25675:9;25671:17;25664:47;25728:131;25854:4;25728:131;:::i;:::-;25720:139;;25447:419;;;:::o;25872:182::-;26012:34;26008:1;26000:6;25996:14;25989:58;25872:182;:::o;26060:366::-;26202:3;26223:67;26287:2;26282:3;26223:67;:::i;:::-;26216:74;;26299:93;26388:3;26299:93;:::i;:::-;26417:2;26412:3;26408:12;26401:19;;26060:366;;;:::o;26432:419::-;26598:4;26636:2;26625:9;26621:18;26613:26;;26685:9;26679:4;26675:20;26671:1;26660:9;26656:17;26649:47;26713:131;26839:4;26713:131;:::i;:::-;26705:139;;26432:419;;;:::o;26857:442::-;27006:4;27044:2;27033:9;27029:18;27021:26;;27057:71;27125:1;27114:9;27110:17;27101:6;27057:71;:::i;:::-;27138:72;27206:2;27195:9;27191:18;27182:6;27138:72;:::i;:::-;27220;27288:2;27277:9;27273:18;27264:6;27220:72;:::i;:::-;26857:442;;;;;;:::o;27305:307::-;27366:4;27456:18;27448:6;27445:30;27442:56;;;27478:18;;:::i;:::-;27442:56;27516:29;27538:6;27516:29;:::i;:::-;27508:37;;27600:4;27594;27590:15;27582:23;;27305:307;;;:::o;27618:432::-;27706:5;27731:65;27747:48;27788:6;27747:48;:::i;:::-;27731:65;:::i;:::-;27722:74;;27819:6;27812:5;27805:21;27857:4;27850:5;27846:16;27895:3;27886:6;27881:3;27877:16;27874:25;27871:112;;;27902:79;;:::i;:::-;27871:112;27992:52;28037:6;28032:3;28027;27992:52;:::i;:::-;27712:338;27618:432;;;;;:::o;28069:353::-;28135:5;28184:3;28177:4;28169:6;28165:17;28161:27;28151:122;;28192:79;;:::i;:::-;28151:122;28302:6;28296:13;28327:89;28412:3;28404:6;28397:4;28389:6;28385:17;28327:89;:::i;:::-;28318:98;;28141:281;28069:353;;;;:::o;28428:828::-;28522:6;28530;28538;28587:2;28575:9;28566:7;28562:23;28558:32;28555:119;;;28593:79;;:::i;:::-;28555:119;28713:1;28738:61;28791:7;28782:6;28771:9;28767:22;28738:61;:::i;:::-;28728:71;;28684:125;28869:2;28858:9;28854:18;28848:25;28900:18;28892:6;28889:30;28886:117;;;28922:79;;:::i;:::-;28886:117;29027:73;29092:7;29083:6;29072:9;29068:22;29027:73;:::i;:::-;29017:83;;28819:291;29149:2;29175:64;29231:7;29222:6;29211:9;29207:22;29175:64;:::i;:::-;29165:74;;29120:129;28428:828;;;;;:::o;29262:220::-;29402:34;29398:1;29390:6;29386:14;29379:58;29471:3;29466:2;29458:6;29454:15;29447:28;29262:220;:::o;29488:366::-;29630:3;29651:67;29715:2;29710:3;29651:67;:::i;:::-;29644:74;;29727:93;29816:3;29727:93;:::i;:::-;29845:2;29840:3;29836:12;29829:19;;29488:366;;;:::o;29860:419::-;30026:4;30064:2;30053:9;30049:18;30041:26;;30113:9;30107:4;30103:20;30099:1;30088:9;30084:17;30077:47;30141:131;30267:4;30141:131;:::i;:::-;30133:139;;29860:419;;;:::o;30285:226::-;30425:34;30421:1;30413:6;30409:14;30402:58;30494:9;30489:2;30481:6;30477:15;30470:34;30285:226;:::o;30517:366::-;30659:3;30680:67;30744:2;30739:3;30680:67;:::i;:::-;30673:74;;30756:93;30845:3;30756:93;:::i;:::-;30874:2;30869:3;30865:12;30858:19;;30517:366;;;:::o;30889:419::-;31055:4;31093:2;31082:9;31078:18;31070:26;;31142:9;31136:4;31132:20;31128:1;31117:9;31113:17;31106:47;31170:131;31296:4;31170:131;:::i;:::-;31162:139;;30889:419;;;:::o;31314:180::-;31362:77;31359:1;31352:88;31459:4;31456:1;31449:15;31483:4;31480:1;31473:15;31500:320;31544:6;31581:1;31575:4;31571:12;31561:22;;31628:1;31622:4;31618:12;31649:18;31639:81;;31705:4;31697:6;31693:17;31683:27;;31639:81;31767:2;31759:6;31756:14;31736:18;31733:38;31730:84;;31786:18;;:::i;:::-;31730:84;31551:269;31500:320;;;:::o;31826:522::-;31905:6;31954:2;31942:9;31933:7;31929:23;31925:32;31922:119;;;31960:79;;:::i;:::-;31922:119;32101:1;32090:9;32086:17;32080:24;32131:18;32123:6;32120:30;32117:117;;;32153:79;;:::i;:::-;32117:117;32258:73;32323:7;32314:6;32303:9;32299:22;32258:73;:::i;:::-;32248:83;;32051:290;31826:522;;;;:::o;32354:159::-;32494:11;32490:1;32482:6;32478:14;32471:35;32354:159;:::o;32519:365::-;32661:3;32682:66;32746:1;32741:3;32682:66;:::i;:::-;32675:73;;32757:93;32846:3;32757:93;:::i;:::-;32875:2;32870:3;32866:12;32859:19;;32519:365;;;:::o;32890:616::-;33102:4;33140:2;33129:9;33125:18;33117:26;;33189:9;33183:4;33179:20;33175:1;33164:9;33160:17;33153:47;33217:131;33343:4;33217:131;:::i;:::-;33209:139;;33395:9;33389:4;33385:20;33380:2;33369:9;33365:18;33358:48;33423:76;33494:4;33485:6;33423:76;:::i;:::-;33415:84;;32890:616;;;;:::o;33512:178::-;33652:30;33648:1;33640:6;33636:14;33629:54;33512:178;:::o;33696:366::-;33838:3;33859:67;33923:2;33918:3;33859:67;:::i;:::-;33852:74;;33935:93;34024:3;33935:93;:::i;:::-;34053:2;34048:3;34044:12;34037:19;;33696:366;;;:::o;34068:419::-;34234:4;34272:2;34261:9;34257:18;34249:26;;34321:9;34315:4;34311:20;34307:1;34296:9;34292:17;34285:47;34349:131;34475:4;34349:131;:::i;:::-;34341:139;;34068:419;;;:::o;34493:224::-;34633:34;34629:1;34621:6;34617:14;34610:58;34702:7;34697:2;34689:6;34685:15;34678:32;34493:224;:::o;34723:366::-;34865:3;34886:67;34950:2;34945:3;34886:67;:::i;:::-;34879:74;;34962:93;35051:3;34962:93;:::i;:::-;35080:2;35075:3;35071:12;35064:19;;34723:366;;;:::o;35095:419::-;35261:4;35299:2;35288:9;35284:18;35276:26;;35348:9;35342:4;35338:20;35334:1;35323:9;35319:17;35312:47;35376:131;35502:4;35376:131;:::i;:::-;35368:139;;35095:419;;;:::o;35520:117::-;35629:1;35626;35619:12;35643:117;35752:1;35749;35742:12;35766:117;35875:1;35872;35865:12;35889:394;35983:4;36037:11;36024:25;36137:1;36131:4;36127:12;36116:8;36100:14;36096:29;36092:48;36072:18;36068:73;36058:168;;36145:79;;:::i;:::-;36058:168;36257:18;36247:8;36243:33;36235:41;;35988:295;35889:394;;;;:::o;36289:180::-;36337:77;36334:1;36327:88;36434:4;36431:1;36424:15;36458:4;36455:1;36448:15;36475:185;36515:1;36532:20;36550:1;36532:20;:::i;:::-;36527:25;;36566:20;36584:1;36566:20;:::i;:::-;36561:25;;36605:1;36595:35;;36610:18;;:::i;:::-;36595:35;36652:1;36649;36645:9;36640:14;;36475:185;;;;:::o;36666:221::-;36806:34;36802:1;36794:6;36790:14;36783:58;36875:4;36870:2;36862:6;36858:15;36851:29;36666:221;:::o;36893:366::-;37035:3;37056:67;37120:2;37115:3;37056:67;:::i;:::-;37049:74;;37132:93;37221:3;37132:93;:::i;:::-;37250:2;37245:3;37241:12;37234:19;;36893:366;;;:::o;37265:419::-;37431:4;37469:2;37458:9;37454:18;37446:26;;37518:9;37512:4;37508:20;37504:1;37493:9;37489:17;37482:47;37546:131;37672:4;37546:131;:::i;:::-;37538:139;;37265:419;;;:::o;37690:182::-;37830:34;37826:1;37818:6;37814:14;37807:58;37690:182;:::o;37878:366::-;38020:3;38041:67;38105:2;38100:3;38041:67;:::i;:::-;38034:74;;38117:93;38206:3;38117:93;:::i;:::-;38235:2;38230:3;38226:12;38219:19;;37878:366;;;:::o;38250:419::-;38416:4;38454:2;38443:9;38439:18;38431:26;;38503:9;38497:4;38493:20;38489:1;38478:9;38474:17;38467:47;38531:131;38657:4;38531:131;:::i;:::-;38523:139;;38250:419;;;:::o;38675:122::-;38727:5;38752:39;38787:2;38782:3;38778:12;38773:3;38752:39;:::i;:::-;38743:48;;38675:122;;;;:::o;38803:108::-;38880:24;38898:5;38880:24;:::i;:::-;38875:3;38868:37;38803:108;;:::o;38917:117::-;39026:1;39023;39016:12;39040:375;39121:5;39176:3;39163:17;39268:1;39262:4;39258:12;39247:8;39231:14;39227:29;39223:48;39203:18;39199:73;39189:168;;39276:79;;:::i;:::-;39189:168;39399:8;39379:18;39375:33;39366:42;;39127:288;39040:375;;;;:::o;39421:117::-;39530:1;39527;39520:12;39544:117;39653:1;39650;39643:12;39667:711;39731:5;39738:6;39794:3;39781:17;39886:1;39880:4;39876:12;39865:8;39849:14;39845:29;39841:48;39821:18;39817:73;39807:168;;39894:79;;:::i;:::-;39807:168;40017:8;39997:18;39993:33;39984:42;;40059:5;40046:19;40036:29;;40094:4;40087:5;40083:16;40074:25;;40122:18;40114:6;40111:30;40108:117;;;40144:79;;:::i;:::-;40108:117;40280:4;40272:6;40268:17;40252:14;40248:38;40241:5;40237:50;40234:137;;;40290:79;;:::i;:::-;40234:137;39745:633;39667:711;;;;;:::o;40384:158::-;40457:11;40491:6;40486:3;40479:19;40531:4;40526:3;40522:14;40507:29;;40384:158;;;;:::o;40570:294::-;40656:3;40677:60;40730:6;40725:3;40677:60;:::i;:::-;40670:67;;40747:56;40796:6;40791:3;40784:5;40747:56;:::i;:::-;40828:29;40850:6;40828:29;:::i;:::-;40823:3;40819:39;40812:46;;40570:294;;;;;:::o;40870:122::-;40922:5;40947:39;40982:2;40977:3;40973:12;40968:3;40947:39;:::i;:::-;40938:48;;40870:122;;;;:::o;40998:108::-;41075:24;41093:5;41075:24;:::i;:::-;41070:3;41063:37;40998:108;;:::o;41158:1334::-;41271:3;41307:4;41302:3;41298:14;41392:61;41447:4;41440:5;41436:16;41429:5;41392:61;:::i;:::-;41500:3;41494:4;41490:14;41483:4;41478:3;41474:14;41467:38;41526:87;41608:4;41594:12;41580;41526:87;:::i;:::-;41518:95;;41322:302;;41694:50;41738:4;41731:5;41727:16;41720:5;41694:50;:::i;:::-;41757:63;41814:4;41809:3;41805:14;41791:12;41757:63;:::i;:::-;41634:196;41905:50;41949:4;41942:5;41938:16;41931:5;41905:50;:::i;:::-;41968:63;42025:4;42020:3;42016:14;42002:12;41968:63;:::i;:::-;41840:201;42119:50;42163:4;42156:5;42152:16;42145:5;42119:50;:::i;:::-;42182:63;42239:4;42234:3;42230:14;42216:12;42182:63;:::i;:::-;42051:204;42329:50;42373:4;42366:5;42362:16;42355:5;42329:50;:::i;:::-;42392:63;42449:4;42444:3;42440:14;42426:12;42392:63;:::i;:::-;42265:200;42482:4;42475:11;;41276:1216;41158:1334;;;;:::o;42566:968::-;42709:3;42745:4;42740:3;42736:14;42818:50;42862:4;42855:5;42851:16;42844:5;42818:50;:::i;:::-;42881:63;42938:4;42933:3;42929:14;42915:12;42881:63;:::i;:::-;42760:194;43021:78;43093:4;43086:5;43082:16;43075:5;43021:78;:::i;:::-;43146:3;43140:4;43136:14;43129:4;43124:3;43120:14;43113:38;43172:107;43274:4;43260:12;43172:107;:::i;:::-;43164:115;;42964:326;43371:50;43415:4;43408:5;43404:16;43397:5;43371:50;:::i;:::-;43434:63;43491:4;43486:3;43482:14;43468:12;43434:63;:::i;:::-;43300:207;43524:4;43517:11;;42714:820;42566:968;;;;:::o;43540:209::-;43664:11;43698:6;43693:3;43686:19;43738:4;43733:3;43729:14;43714:29;;43540:209;;;;:::o;43755:129::-;43851:4;43874:3;43866:11;;43755:129;;;:::o;43890:122::-;43942:5;43967:39;44002:2;43997:3;43993:12;43988:3;43967:39;:::i;:::-;43958:48;;43890:122;;;;:::o;44018:108::-;44095:24;44113:5;44095:24;:::i;:::-;44090:3;44083:37;44018:108;;:::o;44176:554::-;44315:4;44310:3;44306:14;44385:50;44429:4;44422:5;44418:16;44411:5;44385:50;:::i;:::-;44448:63;44505:4;44500:3;44496:14;44482:12;44448:63;:::i;:::-;44330:191;44587:50;44631:4;44624:5;44620:16;44613:5;44587:50;:::i;:::-;44650:63;44707:4;44702:3;44698:14;44684:12;44650:63;:::i;:::-;44531:192;44284:446;44176:554;;:::o;44736:283::-;44857:10;44878:98;44972:3;44964:6;44878:98;:::i;:::-;45008:4;45003:3;44999:14;44985:28;;44736:283;;;;:::o;45025:113::-;45104:5;45129:3;45120:12;;45025:113;;;;:::o;45144:142::-;45243:4;45275;45270:3;45266:14;45258:22;;45144:142;;;:::o;45340:909::-;45521:3;45544:111;45648:6;45643:3;45544:111;:::i;:::-;45537:118;;45679:85;45758:5;45679:85;:::i;:::-;45787:7;45818:1;45803:421;45828:6;45825:1;45822:13;45803:421;;;45898:69;45960:6;45951:7;45898:69;:::i;:::-;45987:115;46098:3;46083:13;45987:115;:::i;:::-;45980:122;;46125:89;46207:6;46125:89;:::i;:::-;46115:99;;45863:361;45850:1;45847;45843:9;45838:14;;45803:421;;;45807:14;46240:3;46233:10;;45526:723;;45340:909;;;;;:::o;46255:209::-;46379:11;46413:6;46408:3;46401:19;46453:4;46448:3;46444:14;46429:29;;46255:209;;;;:::o;46470:129::-;46566:4;46589:3;46581:11;;46470:129;;;:::o;46605:86::-;46640:7;46680:4;46673:5;46669:16;46658:27;;46605:86;;;:::o;46697:118::-;46768:22;46784:5;46768:22;:::i;:::-;46761:5;46758:33;46748:61;;46805:1;46802;46795:12;46748:61;46697:118;:::o;46821:135::-;46865:5;46903:6;46890:20;46881:29;;46919:31;46944:5;46919:31;:::i;:::-;46821:135;;;;:::o;46962:118::-;47012:5;47037:37;47070:2;47065:3;47061:12;47056:3;47037:37;:::i;:::-;47028:46;;46962:118;;;;:::o;47086:102::-;47159:22;47175:5;47159:22;:::i;:::-;47154:3;47147:35;47086:102;;:::o;47238:739::-;47377:4;47372:3;47368:14;47444:48;47486:4;47479:5;47475:16;47468:5;47444:48;:::i;:::-;47505:59;47558:4;47553:3;47549:14;47535:12;47505:59;:::i;:::-;47392:182;47636:50;47680:4;47673:5;47669:16;47662:5;47636:50;:::i;:::-;47699:63;47756:4;47751:3;47747:14;47733:12;47699:63;:::i;:::-;47584:188;47834:50;47878:4;47871:5;47867:16;47860:5;47834:50;:::i;:::-;47897:63;47954:4;47949:3;47945:14;47931:12;47897:63;:::i;:::-;47782:188;47346:631;47238:739;;:::o;47983:283::-;48104:10;48125:98;48219:3;48211:6;48125:98;:::i;:::-;48255:4;48250:3;48246:14;48232:28;;47983:283;;;;:::o;48272:113::-;48351:5;48376:3;48367:12;;48272:113;;;;:::o;48391:142::-;48490:4;48522;48517:3;48513:14;48505:22;;48391:142;;;:::o;48587:909::-;48768:3;48791:111;48895:6;48890:3;48791:111;:::i;:::-;48784:118;;48926:85;49005:5;48926:85;:::i;:::-;49034:7;49065:1;49050:421;49075:6;49072:1;49069:13;49050:421;;;49145:69;49207:6;49198:7;49145:69;:::i;:::-;49234:115;49345:3;49330:13;49234:115;:::i;:::-;49227:122;;49372:89;49454:6;49372:89;:::i;:::-;49362:99;;49110:361;49097:1;49094;49090:9;49085:14;;49050:421;;;49054:14;49487:3;49480:10;;48773:723;;48587:909;;;;;:::o;49502:1191::-;49949:4;49987:2;49976:9;49972:18;49964:26;;50036:9;50030:4;50026:20;50022:1;50011:9;50007:17;50000:47;50064:132;50191:4;50182:6;50064:132;:::i;:::-;50056:140;;50243:9;50237:4;50233:20;50228:2;50217:9;50213:18;50206:48;50271:170;50436:4;50427:6;50419;50271:170;:::i;:::-;50263:178;;50488:9;50482:4;50478:20;50473:2;50462:9;50458:18;50451:48;50516:170;50681:4;50672:6;50664;50516:170;:::i;:::-;50508:178;;49502:1191;;;;;;;;:::o;50699:293::-;50839:34;50835:1;50827:6;50823:14;50816:58;50908:34;50903:2;50895:6;50891:15;50884:59;50977:7;50972:2;50964:6;50960:15;50953:32;50699:293;:::o;50998:366::-;51140:3;51161:67;51225:2;51220:3;51161:67;:::i;:::-;51154:74;;51237:93;51326:3;51237:93;:::i;:::-;51355:2;51350:3;51346:12;51339:19;;50998:366;;;:::o;51370:419::-;51536:4;51574:2;51563:9;51559:18;51551:26;;51623:9;51617:4;51613:20;51609:1;51598:9;51594:17;51587:47;51651:131;51777:4;51651:131;:::i;:::-;51643:139;;51370:419;;;:::o;51795:724::-;51872:4;51878:6;51934:11;51921:25;52034:1;52028:4;52024:12;52013:8;51997:14;51993:29;51989:48;51969:18;51965:73;51955:168;;52042:79;;:::i;:::-;51955:168;52154:18;52144:8;52140:33;52132:41;;52206:4;52193:18;52183:28;;52234:18;52226:6;52223:30;52220:117;;;52256:79;;:::i;:::-;52220:117;52364:2;52358:4;52354:13;52346:21;;52421:4;52413:6;52409:17;52393:14;52389:38;52383:4;52379:49;52376:136;;;52431:79;;:::i;:::-;52376:136;51885:634;51795:724;;;;;:::o;52525:104::-;52570:7;52599:24;52617:5;52599:24;:::i;:::-;52588:35;;52525:104;;;:::o;52635:138::-;52716:32;52742:5;52716:32;:::i;:::-;52709:5;52706:43;52696:71;;52763:1;52760;52753:12;52696:71;52635:138;:::o;52779:155::-;52833:5;52871:6;52858:20;52849:29;;52887:41;52922:5;52887:41;:::i;:::-;52779:155;;;;:::o;52940:961::-;53044:6;53052;53060;53068;53117:3;53105:9;53096:7;53092:23;53088:33;53085:120;;;53124:79;;:::i;:::-;53085:120;53244:1;53269:61;53322:7;53313:6;53302:9;53298:22;53269:61;:::i;:::-;53259:71;;53215:125;53407:2;53396:9;53392:18;53379:32;53438:18;53430:6;53427:30;53424:117;;;53460:79;;:::i;:::-;53424:117;53565:63;53620:7;53611:6;53600:9;53596:22;53565:63;:::i;:::-;53555:73;;53350:288;53677:2;53703:53;53748:7;53739:6;53728:9;53724:22;53703:53;:::i;:::-;53693:63;;53648:118;53805:2;53831:53;53876:7;53867:6;53856:9;53852:22;53831:53;:::i;:::-;53821:63;;53776:118;52940:961;;;;;;;:::o;53907:410::-;53947:7;53970:20;53988:1;53970:20;:::i;:::-;53965:25;;54004:20;54022:1;54004:20;:::i;:::-;53999:25;;54059:1;54056;54052:9;54081:30;54099:11;54081:30;:::i;:::-;54070:41;;54260:1;54251:7;54247:15;54244:1;54241:22;54221:1;54214:9;54194:83;54171:139;;54290:18;;:::i;:::-;54171:139;53955:362;53907:410;;;;:::o;54323:191::-;54363:3;54382:20;54400:1;54382:20;:::i;:::-;54377:25;;54416:20;54434:1;54416:20;:::i;:::-;54411:25;;54459:1;54456;54452:9;54445:16;;54480:3;54477:1;54474:10;54471:36;;;54487:18;;:::i;:::-;54471:36;54323:191;;;;:::o;54520:644::-;54717:4;54755:3;54744:9;54740:19;54732:27;;54769:71;54837:1;54826:9;54822:17;54813:6;54769:71;:::i;:::-;54887:9;54881:4;54877:20;54872:2;54861:9;54857:18;54850:48;54915:78;54988:4;54979:6;54915:78;:::i;:::-;54907:86;;55003:72;55071:2;55060:9;55056:18;55047:6;55003:72;:::i;:::-;55085;55153:2;55142:9;55138:18;55129:6;55085:72;:::i;:::-;54520:644;;;;;;;:::o;55170:238::-;55310:34;55306:1;55298:6;55294:14;55287:58;55379:21;55374:2;55366:6;55362:15;55355:46;55170:238;:::o;55414:366::-;55556:3;55577:67;55641:2;55636:3;55577:67;:::i;:::-;55570:74;;55653:93;55742:3;55653:93;:::i;:::-;55771:2;55766:3;55762:12;55755:19;;55414:366;;;:::o;55786:419::-;55952:4;55990:2;55979:9;55975:18;55967:26;;56039:9;56033:4;56029:20;56025:1;56014:9;56010:17;56003:47;56067:131;56193:4;56067:131;:::i;:::-;56059:139;;55786:419;;;:::o;56211:176::-;56243:1;56260:20;56278:1;56260:20;:::i;:::-;56255:25;;56294:20;56312:1;56294:20;:::i;:::-;56289:25;;56333:1;56323:35;;56338:18;;:::i;:::-;56323:35;56379:1;56376;56372:9;56367:14;;56211:176;;;;:::o;56393:232::-;56533:34;56529:1;56521:6;56517:14;56510:58;56602:15;56597:2;56589:6;56585:15;56578:40;56393:232;:::o;56631:366::-;56773:3;56794:67;56858:2;56853:3;56794:67;:::i;:::-;56787:74;;56870:93;56959:3;56870:93;:::i;:::-;56988:2;56983:3;56979:12;56972:19;;56631:366;;;:::o;57003:419::-;57169:4;57207:2;57196:9;57192:18;57184:26;;57256:9;57250:4;57246:20;57242:1;57231:9;57227:17;57220:47;57284:131;57410:4;57284:131;:::i;:::-;57276:139;;57003:419;;;:::o;57428:244::-;57568:34;57564:1;57556:6;57552:14;57545:58;57637:27;57632:2;57624:6;57620:15;57613:52;57428:244;:::o;57678:366::-;57820:3;57841:67;57905:2;57900:3;57841:67;:::i;:::-;57834:74;;57917:93;58006:3;57917:93;:::i;:::-;58035:2;58030:3;58026:12;58019:19;;57678:366;;;:::o;58050:419::-;58216:4;58254:2;58243:9;58239:18;58231:26;;58303:9;58297:4;58293:20;58289:1;58278:9;58274:17;58267:47;58331:131;58457:4;58331:131;:::i;:::-;58323:139;;58050:419;;;:::o;58475:240::-;58615:34;58611:1;58603:6;58599:14;58592:58;58684:23;58679:2;58671:6;58667:15;58660:48;58475:240;:::o;58721:366::-;58863:3;58884:67;58948:2;58943:3;58884:67;:::i;:::-;58877:74;;58960:93;59049:3;58960:93;:::i;:::-;59078:2;59073:3;59069:12;59062:19;;58721:366;;;:::o;59093:419::-;59259:4;59297:2;59286:9;59282:18;59274:26;;59346:9;59340:4;59336:20;59332:1;59321:9;59317:17;59310:47;59374:131;59500:4;59374:131;:::i;:::-;59366:139;;59093:419;;;:::o;59518:243::-;59658:34;59654:1;59646:6;59642:14;59635:58;59727:26;59722:2;59714:6;59710:15;59703:51;59518:243;:::o;59767:366::-;59909:3;59930:67;59994:2;59989:3;59930:67;:::i;:::-;59923:74;;60006:93;60095:3;60006:93;:::i;:::-;60124:2;60119:3;60115:12;60108:19;;59767:366;;;:::o;60139:419::-;60305:4;60343:2;60332:9;60328:18;60320:26;;60392:9;60386:4;60382:20;60378:1;60367:9;60363:17;60356:47;60420:131;60546:4;60420:131;:::i;:::-;60412:139;;60139:419;;;:::o;60564:182::-;60704:34;60700:1;60692:6;60688:14;60681:58;60564:182;:::o;60752:366::-;60894:3;60915:67;60979:2;60974:3;60915:67;:::i;:::-;60908:74;;60991:93;61080:3;60991:93;:::i;:::-;61109:2;61104:3;61100:12;61093:19;;60752:366;;;:::o;61124:419::-;61290:4;61328:2;61317:9;61313:18;61305:26;;61377:9;61371:4;61367:20;61363:1;61352:9;61348:17;61341:47;61405:131;61531:4;61405:131;:::i;:::-;61397:139;;61124:419;;;:::o;61549:233::-;61588:3;61611:24;61629:5;61611:24;:::i;:::-;61602:33;;61657:66;61650:5;61647:77;61644:103;;61727:18;;:::i;:::-;61644:103;61774:1;61767:5;61763:13;61756:20;;61549:233;;;:::o;61788:141::-;61837:4;61860:3;61852:11;;61883:3;61880:1;61873:14;61917:4;61914:1;61904:18;61896:26;;61788:141;;;:::o;61935:93::-;61972:6;62019:2;62014;62007:5;62003:14;61999:23;61989:33;;61935:93;;;:::o;62034:107::-;62078:8;62128:5;62122:4;62118:16;62097:37;;62034:107;;;;:::o;62147:393::-;62216:6;62266:1;62254:10;62250:18;62289:97;62319:66;62308:9;62289:97;:::i;:::-;62407:39;62437:8;62426:9;62407:39;:::i;:::-;62395:51;;62479:4;62475:9;62468:5;62464:21;62455:30;;62528:4;62518:8;62514:19;62507:5;62504:30;62494:40;;62223:317;;62147:393;;;;;:::o;62546:142::-;62596:9;62629:53;62647:34;62656:24;62674:5;62656:24;:::i;:::-;62647:34;:::i;:::-;62629:53;:::i;:::-;62616:66;;62546:142;;;:::o;62694:75::-;62737:3;62758:5;62751:12;;62694:75;;;:::o;62775:269::-;62885:39;62916:7;62885:39;:::i;:::-;62946:91;62995:41;63019:16;62995:41;:::i;:::-;62987:6;62980:4;62974:11;62946:91;:::i;:::-;62940:4;62933:105;62851:193;62775:269;;;:::o;63050:73::-;63095:3;63050:73;:::o;63129:189::-;63206:32;;:::i;:::-;63247:65;63305:6;63297;63291:4;63247:65;:::i;:::-;63182:136;63129:189;;:::o;63324:186::-;63384:120;63401:3;63394:5;63391:14;63384:120;;;63455:39;63492:1;63485:5;63455:39;:::i;:::-;63428:1;63421:5;63417:13;63408:22;;63384:120;;;63324:186;;:::o;63516:543::-;63617:2;63612:3;63609:11;63606:446;;;63651:38;63683:5;63651:38;:::i;:::-;63735:29;63753:10;63735:29;:::i;:::-;63725:8;63721:44;63918:2;63906:10;63903:18;63900:49;;;63939:8;63924:23;;63900:49;63962:80;64018:22;64036:3;64018:22;:::i;:::-;64008:8;64004:37;63991:11;63962:80;:::i;:::-;63621:431;;63606:446;63516:543;;;:::o;64065:117::-;64119:8;64169:5;64163:4;64159:16;64138:37;;64065:117;;;;:::o;64188:169::-;64232:6;64265:51;64313:1;64309:6;64301:5;64298:1;64294:13;64265:51;:::i;:::-;64261:56;64346:4;64340;64336:15;64326:25;;64239:118;64188:169;;;;:::o;64362:295::-;64438:4;64584:29;64609:3;64603:4;64584:29;:::i;:::-;64576:37;;64646:3;64643:1;64639:11;64633:4;64630:21;64622:29;;64362:295;;;;:::o;64662:1395::-;64779:37;64812:3;64779:37;:::i;:::-;64881:18;64873:6;64870:30;64867:56;;;64903:18;;:::i;:::-;64867:56;64947:38;64979:4;64973:11;64947:38;:::i;:::-;65032:67;65092:6;65084;65078:4;65032:67;:::i;:::-;65126:1;65150:4;65137:17;;65182:2;65174:6;65171:14;65199:1;65194:618;;;;65856:1;65873:6;65870:77;;;65922:9;65917:3;65913:19;65907:26;65898:35;;65870:77;65973:67;66033:6;66026:5;65973:67;:::i;:::-;65967:4;65960:81;65829:222;65164:887;;65194:618;65246:4;65242:9;65234:6;65230:22;65280:37;65312:4;65280:37;:::i;:::-;65339:1;65353:208;65367:7;65364:1;65361:14;65353:208;;;65446:9;65441:3;65437:19;65431:26;65423:6;65416:42;65497:1;65489:6;65485:14;65475:24;;65544:2;65533:9;65529:18;65516:31;;65390:4;65387:1;65383:12;65378:17;;65353:208;;;65589:6;65580:7;65577:19;65574:179;;;65647:9;65642:3;65638:19;65632:26;65690:48;65732:4;65724:6;65720:17;65709:9;65690:48;:::i;:::-;65682:6;65675:64;65597:156;65574:179;65799:1;65795;65787:6;65783:14;65779:22;65773:4;65766:36;65201:611;;;65164:887;;64754:1303;;;64662:1395;;:::o;66063:755::-;66288:4;66326:3;66315:9;66311:19;66303:27;;66340:71;66408:1;66397:9;66393:17;66384:6;66340:71;:::i;:::-;66421:72;66489:2;66478:9;66474:18;66465:6;66421:72;:::i;:::-;66540:9;66534:4;66530:20;66525:2;66514:9;66510:18;66503:48;66568:78;66641:4;66632:6;66568:78;:::i;:::-;66560:86;;66656:72;66724:2;66713:9;66709:18;66700:6;66656:72;:::i;:::-;66738:73;66806:3;66795:9;66791:19;66782:6;66738:73;:::i;:::-;66063:755;;;;;;;;:::o

Swarm Source

ipfs://57d99ad3700900e0a59442b9237364650bd0441331c5addfea99c600c017fbd6

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
0x6ac02F3887B358591b8B2D22CfB1F36Fa5843867
Loading...
Loading
Loading...
Loading
[ 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.