0x004395edb43efca9885cedad51ec9faf93bd34ac

deployer: unknown relevance score: 0 status: partially_identified bytecode: 22904 bytes

DECOMPILED SOLIDITY (Heimdall)

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

/// @title            Decompiled Contract
/// @author           Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version   heimdall-rs v0.9.2
///
/// @notice           This contract was decompiled using the heimdall-rs decompiler.
///                     It was generated directly by tracing the EVM opcodes from this contract.
///                     As a result, it may not compile or even be valid solidity code.
///                     Despite this, it should be obvious what each function does. Overall
///                     logic should have been preserved throughout decompiling.
///
/// @custom:github    You can find the open-source decompiler here:
///                       https://heimdall.rs

contract DecompiledContract {
    uint256 public constant finder = 370934034954000777276380894801332968432203560899;
    uint256 public constant UINT64_MAX = 18446744073709551615;
    uint256 public constant ANCILLARY_BYTES_LIMIT = 8192;
    uint256 public constant previousVotingContract = 794044660403373486002296745972426528839210683767;
    uint256 public constant votingToken = 28412293875205054524609327518108209570240198696;
    
    mapping(bytes32 => bytes32) storage_map_c;
    mapping(bytes32 => bytes32) storage_map_f;
    mapping(bytes32 => bytes32) storage_map_w;
    mapping(bytes32 => bytes32) storage_map_ao;
    mapping(bytes32 => bytes32) storage_map_q;
    mapping(bytes32 => bytes32) storage_map_am;
    mapping(bytes32 => bytes32) storage_map_ak;
    mapping(bytes32 => bytes32) storage_map_al;
    mapping(bytes32 => bytes32) storage_map_af;
    mapping(bytes32 => bytes32) storage_map_ap;
    mapping(bytes32 => bytes32) storage_map_ac;
    mapping(bytes32 => bytes32) storage_map_ar;
    mapping(bytes32 => bytes32) storage_map_av;
    uint64 public spat;
    address public owner;
    mapping(bytes32 => bytes32) storage_map_k;
    mapping(bytes32 => bytes32) storage_map_i;
    uint256 public voteTiming;
    mapping(bytes32 => bytes32) storage_map_an;
    mapping(bytes32 => bytes32) storage_map_aw;
    mapping(bytes32 => bytes32) storage_map_x;
    uint32 public lastRoundIdProcessed;
    mapping(bytes32 => bytes32) storage_map_n;
    mapping(bytes32 => bytes32) storage_map_ae;
    mapping(bytes32 => bytes32) storage_map_at;
    uint64 public unstakeCoolDown;
    uint32 public maxRequestsPerRound;
    mapping(bytes32 => bytes32) storage_map_z;
    mapping(bytes32 => bytes32) storage_map_v;
    mapping(bytes32 => bytes32) storage_map_ah;
    mapping(bytes32 => bytes32) storage_map_au;
    mapping(bytes32 => bytes32) storage_map_ab;
    mapping(bytes32 => bytes32) storage_map_h;
    mapping(bytes32 => bytes32) storage_map_g;
    mapping(bytes32 => bytes32) storage_map_ad;
    mapping(bytes32 => bytes32) storage_map_aq;
    mapping(bytes32 => bytes32) storage_map_r;
    mapping(bytes32 => bytes32) storage_map_as;
    bytes32 store_j;
    mapping(bytes32 => bytes32) storage_map_aa;
    mapping(bytes32 => bytes32) storage_map_ai;
    mapping(bytes32 => bytes32) storage_map_y;
    mapping(bytes32 => bytes32) storage_map_m;
    bytes public getNumberOfPriceRequestsPostUpdate;
    mapping(bytes32 => bytes32) storage_map_ag;
    mapping(bytes32 => bytes32) storage_map_u;
    mapping(bytes32 => bytes32) storage_map_l;
    mapping(bytes32 => bytes32) storage_map_aj;
    address public cumulativeStake;
    
    event GatAndSpatChanged(uint128, uint64);
    event DelegatorSet(address, address);
    event SlashingLibraryChanged(address);
    event UpdatedReward(address, uint128, uint64);
    event MaxRequestsPerRoundChanged(uint32);
    event DelegateSet(address, address);
    event VotingContractMigrated(address);
    event SetNewUnstakeCoolDown(uint64);
    event SetNewEmissionRate(uint128);
    event WithdrawnRewards(address, address, uint128);
    event MaxRollsChanged(uint32);
    event ExecutedUnstake(address, uint128, uint128);
    event OwnershipTransferred(address, address);
    
    /// @custom:selector    0xd6d67003
    /// @custom:signature   setGatAndSpat(uint128 arg0, uint64 arg1) public payable
    /// @param              arg0 ["address", "uint128", "bytes16", "int128"]
    /// @param              arg1 ["uint64", "bytes8", "int64"]
    function setGatAndSpat(uint128 arg0, uint64 arg1) public payable {
        require(arg0 == (address(arg0)));
        require(arg1 == (uint64(arg1)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        (bool success, bytes memory ret0) = address(0x04fa0d235c4abf4bcf4787af4cf447de572ef828).totalSupply(); // staticcall
        uint256 var_e = var_e + (uint248(ret0.length + 0x1f));
        require(!((var_e + ret0.length) - var_e) < 0x20);
        require(!(address(arg0)) < var_e.length);
        require(address(arg0) < var_e.length);
        require(!(uint64(arg1)) > 0);
        require(uint64(arg1) < 0x0de0b6b3a7640000);
        spat = (uint64(arg1) * 0x0100000000000000000000000000000000) | (address(arg0) | (uint64(spat)));
        emit GatAndSpatChanged(address(arg0), uint64(arg1));
        require(uint64(arg1) > 0);
        spat = (uint64(arg1) * 0x0100000000000000000000000000000000) | (address(arg0) | (uint64(spat)));
        emit GatAndSpatChanged(address(arg0), uint64(arg1));
        require(address(arg0) > 0);
    }
    
    /// @custom:selector    0xb4c0cbdd
    /// @custom:signature   getRoundIdToVoteOnRequest(uint32 arg0) public view returns (uint32)
    /// @param              arg0 ["uint32", "bytes4", "int32"]
    function getRoundIdToVoteOnRequest(uint32 arg0) public view returns (uint32) {
        require(arg0 == (uint32(arg0)));
        uint32 var_a = uint32(arg0);
        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000)));
        return uint32(arg0);
        require(uint32(arg0) - 0xffffffff);
        var_a = uint32(0x01 + (arg0));
        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000)));
        return uint32(0x01 + (arg0));
    }
    
    /// @custom:selector    0xa03e881a
    /// @custom:signature   hasPrice(bytes32 arg0, uint256 arg1) public payable returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function hasPrice(bytes32 arg0, uint256 arg1) public payable returns (bool) {
        var_d = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_d); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!((var_a + ret0.length) - var_a) < 0x20);
        require(var_a.length == (address(var_a.length)));
        address var_f = msg.sender;
        (bool success, bytes memory ret0) = address(var_a.length).Unresolved_f9f6b49b(var_f); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!(((var_a + ret0.length) - var_a) < 0x20), "Caller not registered");
        require(var_a.length == var_a.length, "Caller not registered");
        require(var_a.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        var_h = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_f[var_p]))) {
                    if (!(uint32(storage_map_f[var_p])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_p = uint32(storage_map_f[var_p]);
                        var_p = uint32(storage_map_f[var_p]);
                        if (!(address(storage_map_g[keccak256(var_p) + 0x01])) > (address(storage_map_h[var_p]))) {
                            var_p = storage_map_i[keccak256(var_p) + 0x01];
                            require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                            require(voteTiming * 0x02);
                            require(0 - (uint32(storage_map_f[var_p])));
                            require(!(uint32(storage_map_f[var_p])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_g[keccak256(var_p) + 0x01])) > (address(storage_map_h[var_p])));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_f[var_p])) > (address(storage_map_h[var_p] / 0x0100000000000000000000000000000000)));
                            require(!0x01);
                            require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_f[var_p])));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_f[var_p] / 0x0100000000000000000000000000))) > 0xffffffff);
                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_f[var_p] / 0x0100000000000000000000000000)) - (uint32(storage_map_f[var_p]))) > 0xffffffff);
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(bytes1(storage_map_f[var_p] / 0x0100000000));
                            require(!0x01 > 0x04);
                            require(0);
                            return 0;
                            require(!0x01 > 0x04);
                            require(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
                            return 0;
                            require(!0x01 > 0x04);
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe);
                            return 0x01;
                            return 0;
                            return 0;
                            require(!0x01 > 0x04);
                        }
                    }
                    require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd);
                }
            }
            require(0x8b1631ab830d11531ae83725fda4d86012eccd77);
        }
    }
    
    /// @custom:selector    0xc504a522
    /// @custom:signature   requestSlashingTrackers(uint256 arg0) public payable returns (bytes memory)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function requestSlashingTrackers(uint256 arg0) public payable returns (bytes memory) {
        require(arg0 < store_j);
        var_g = uint32(storage_map_l[var_g]);
        var_g = storage_map_m[var_g];
        var_g = uint32(storage_map_l[var_g]);
        uint256 var_j = address(storage_map_n[var_g]);
        (bool success, bytes memory ret0) = address(storage_map_l[var_g]).Unresolved_273d1fd6(var_j); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!((var_a + ret0.length) - var_a) < 0x40);
        require(!(address(storage_map_n[var_g]) - (address(storage_map_l[var_g]))) > (address(storage_map_n[var_g])));
        var_g = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(var_a.length) & (address(storage_map_n[var_g]) - (address(storage_map_l[var_g])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_a.length)));
        var_g = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(address(storage_map_n[var_g]) - (address(storage_map_n[var_g]))) > (address(storage_map_n[var_g])));
        var_g = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(var_p) & (address(storage_map_n[var_g]) - (address(storage_map_n[var_g])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
        var_g = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(var_p * (address(storage_map_n[var_g]) - (address(storage_map_n[var_g])))) > ((var_a.length * (address(storage_map_n[var_g]) - (address(storage_map_l[var_g])))) + (var_p * (address(storage_map_n[var_g]) - (address(storage_map_n[var_g]))))));
        require(0x0de0b6b3a7640000);
        var_g = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        var_a = 0xa0 + var_a;
        return abi.encodePacked(var_a.length, var_t, var_ae, var_af, uint32(var_ag));
    }
    
    /// @custom:selector    0x6d15454d
    /// @custom:signature   outstandingRewards(address arg0) public view
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function outstandingRewards(address arg0) public view {
        require(arg0 == (address(arg0)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
    }
    
    /// @custom:selector    0x894fcecc
    /// @custom:signature   Unresolved_894fcecc(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    /// @param              arg3 ["uint256", "bytes32", "int256"]
    function Unresolved_894fcecc(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3) public payable {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2 > 0xffffffffffffffff), "Invalid commit hash");
        require(!(((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff)), "Invalid commit hash");
        var_e = msg.data[36:36];
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Invalid commit hash");
        owner = uint248(owner);
        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Invalid commit hash");
        require(voteTiming * 0x02, "Invalid commit hash");
        address var_a = address(msg.sender);
        require(!(address(storage_map_q[var_a])), "Invalid commit hash");
        var_a = address(storage_map_q[var_a]);
        require(!(address(msg.sender) == (address(storage_map_r[var_a]))), "Invalid commit hash");
        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Invalid commit hash");
        require(voteTiming * 0x02, "Invalid commit hash");
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))), "Invalid commit hash");
        require(!(0 < getNumberOfPriceRequestsPostUpdate), "Invalid commit hash");
        require(!(0xffffffffffffffff > 0), "Invalid commit hash");
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        var_a = address(msg.sender);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j), "Invalid commit hash");
        require(!(0xffffffffffffffff > 0), "Invalid commit hash");
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)), "Invalid commit hash");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp), "Invalid commit hash");
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!(address(msg.sender)), "Invalid commit hash");
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)), "Invalid commit hash");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp), "Invalid commit hash");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000)))))), "Invalid commit hash");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        emit UpdatedReward(address(msg.sender), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        require(arg3, "Invalid commit hash");
        var_i = 0x20;
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_p = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_p); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        if (!((var_c + ret0.length) - var_c) < 0x40) {
            require(!((var_c + ret0.length) - var_c) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_c.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_c.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_e) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_e))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_e * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_c.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_e * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_c = 0xa0 + var_c;
            var_a = uint32(var_aa);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_ab);
            var_a = address(msg.sender);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_ae)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                                require(0 < getNumberOfPriceRequestsPostUpdate, "ReentrancyGuard: reentrant call");
                                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                                require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))), "ReentrancyGuard: reentrant call");
                                                require(!(address(storage_map_ab[keccak256(var_a) + 0x01]) > (address(storage_map_z[var_a]))), "ReentrancyGuard: reentrant call");
                                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                require(!(address(storage_map_q[var_a]) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))), "ReentrancyGuard: reentrant call");
                                                require(!0x01, "ReentrancyGuard: reentrant call");
                                                var_a = keccak256(var_a) + 0x03;
                                                require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a])) > 0xffffffff), "ReentrancyGuard: reentrant call");
                                            }
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > 0xffffffff), "ReentrancyGuard: reentrant call");
                                            var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                            require(!(!bytes1(storage_map_q[var_a] / 0x0100000000)), "ReentrancyGuard: reentrant call");
                                        }
                                    }
                                    require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff, "ReentrancyGuard: reentrant call");
                                }
                            }
                            require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20), "ReentrancyGuard: reentrant call");
                        }
                    }
                    require(!(bytes1(storage_map_u[var_a])), "ReentrancyGuard: reentrant call");
                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                    require(bytes1(storage_map_u[var_a]) == 0x01, "ReentrancyGuard: reentrant call");
                }
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff, "ReentrancyGuard: reentrant call");
            }
            require(0 < getNumberOfPriceRequestsPostUpdate, "ReentrancyGuard: reentrant call");
        }
    }
    
    /// @custom:selector    0x850c6a49
    /// @custom:signature   setUnstakeCoolDown(uint64 arg0) public payable
    /// @param              arg0 ["uint64", "bytes8", "int64"]
    function setUnstakeCoolDown(uint64 arg0) public payable {
        require(arg0 == (uint64(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        unstakeCoolDown = (uint64(arg0) * 0x0100000000000000000000000000000000) | (uint192(unstakeCoolDown));
        emit SetNewUnstakeCoolDown(uint64(arg0));
    }
    
    /// @custom:selector    0x80a1f712
    /// @custom:signature   getPendingRequests() public view returns (bytes memory)
    function getPendingRequests() public view returns (bytes memory) {
        if (!getNumberOfPriceRequestsPostUpdate > 0xffffffffffffffff) {
            if (!getNumberOfPriceRequestsPostUpdate) {
                var_d = var_d + 0xc0;
                if (getNumberOfPriceRequestsPostUpdate + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {
                    if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
                        if (voteTiming * 0x02) {
                            if (!0 < getNumberOfPriceRequestsPostUpdate) {
                                if (0 < getNumberOfPriceRequestsPostUpdate) {
                                    if (!0x01 > 0x04) {
                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        if (0 - (uint32(storage_map_q[var_a]))) {
                                            if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                                var_a = uint32(storage_map_q[var_a]);
                                                var_a = uint32(storage_map_q[var_a]);
                                                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                                                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                                                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                                                        if (!0x01) {
                                                            if (uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a]))) {
                                                                if (!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                    if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                        if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a]))) > (uint32(maxRequestsPerRound))) {
                                                                            if (storage_map_q[var_a] / 0x0100000000) {
                                                                                if (!0x01 > 0x04) {
                                                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                                    if (0) {
                                                                                    }
                                                                                    if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a]))) > (uint32(maxRequestsPerRound))) {
                                                                                    }
                                                                                }
                                                                                if (!0) {
                                                                                }
                                                                                if (uint32(storage_map_q[var_a]) - (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                                                                }
                                                                                if (!0 > 0xffffffffffffffff) {
                                                                                    if (!0) {
                                                                                        var_d = var_d + 0xc0;
                                                                                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {
                                                                                            if (!0 < 0) {
                                                                                                if (!0 < (var_ag)) {
                                                                                                }
                                                                                                return abi.encodePacked(0x20, var_d.length);
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x9b21758d
    /// @custom:signature   Unresolved_9b21758d(uint256 arg0, uint256 arg1, uint256 arg2) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    function Unresolved_9b21758d(uint256 arg0, uint256 arg1, uint256 arg2) public payable {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2 > 0xffffffffffffffff), "Ownable: caller is not the owner");
        require(!(((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff)), "Ownable: caller is not the owner");
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(!(address(maxRequestsPerRound / 0x010000000000000000)), "Contract migrated");
        require(!(arg1 > block.timestamp), "Can only request in past");
        require(0x01);
        var_g = 0x4964656e74696669657257686974656c69737400000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_g); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(var_c.length == (address(var_c.length)));
        uint256 var_h = arg0;
        (bool success, bytes memory ret0) = address(var_c.length).Unresolved_90978d1b(var_h); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!(((var_c + ret0.length) - var_c) < 0x20), "Unsupported identifier");
        require(var_c.length == var_c.length, "Unsupported identifier");
        require(var_c.length, "Unsupported identifier");
        require(!(var_c.length > 0x2000), "Invalid ancillary data");
        var_i = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_q[var_a]))) {
                    if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_a = uint32(storage_map_q[var_a]);
                        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                        var_a = storage_map_ac[keccak256(var_a) + 0x01];
                        require(voteTiming * 0x02);
                        require(0 - (uint32(storage_map_q[var_a])));
                        require(!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                        require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!0x01);
                        require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])));
                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                    }
                }
                require(!0x01 > 0x04);
            }
            require(0x01);
        }
    }
    
    /// @custom:selector    0x88fe2be8
    /// @custom:signature   stake(uint128 arg0) public payable
    /// @param              arg0 ["address", "uint128", "bytes16", "int128"]
    function stake(uint128 arg0) public payable {
        require(arg0 == (address(arg0)));
        require(address(arg0) > 0);
        address var_a = address(msg.sender);
        require(0 - (address(storage_map_q[var_a])));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        var_a = address(msg.sender);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(msg.sender));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_k = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_k); // staticcall
        var_d = var_d + (uint248(ret0.length + 0x1f));
        if (!((var_d + ret0.length) - var_d) < 0x40) {
            require(!((var_d + ret0.length) - var_d) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_d.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_d.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_d.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_d = 0xa0 + var_d;
            var_a = uint32(var_w);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_x);
            var_a = address(msg.sender);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_aa)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(0 < getNumberOfPriceRequestsPostUpdate, "Cannot stake 0");
                                            storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))), "Cannot stake 0");
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01]) > (address(storage_map_z[var_a]))), "Cannot stake 0");
                                            require(!(address(storage_map_q[var_a]) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))), "Cannot stake 0");
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            require(!0x01, "Cannot stake 0");
                                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a])) > 0xffffffff), "Cannot stake 0");
                                            var_a = keccak256(var_a) + 0x03;
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > 0xffffffff), "Cannot stake 0");
                                        }
                                        require(!(!bytes1(storage_map_q[var_a] / 0x0100000000)), "Cannot stake 0");
                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff, "Cannot stake 0");
                                    }
                                }
                                require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20), "Cannot stake 0");
                            }
                        }
                        require(!(bytes1(storage_map_u[var_a])), "Cannot stake 0");
                    }
                }
                require(bytes1(storage_map_u[var_a]) == 0x01, "Cannot stake 0");
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff, "Cannot stake 0");
            }
            require(0 < getNumberOfPriceRequestsPostUpdate, "Cannot stake 0");
        }
    }
    
    /// @custom:selector    0xc6b8ac4e
    /// @custom:signature   getVoterPendingStake(address arg0, uint32 arg1) public view returns (address)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint32", "bytes4", "int32"]
    function getVoterPendingStake(address arg0, uint32 arg1) public view returns (address) {
        require(arg0 == (address(arg0)));
        require(arg1 == (uint32(arg1)));
        var_a = uint32(arg1);
        return address(storage_map_q[var_a]);
    }
    
    /// @custom:selector    0xbd8c13ad
    /// @custom:signature   pendingPriceRequestsIds(uint256 arg0) public view returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function pendingPriceRequestsIds(uint256 arg0) public view returns (uint256) {
        require(arg0 < getNumberOfPriceRequestsPostUpdate);
        var_a = 0x0a;
        return storage_map_ae[var_a];
    }
    
    /// @custom:selector    0x719c6d56
    /// @custom:signature   Unresolved_719c6d56(uint256 arg0, uint256 arg1, uint256 arg2) public payable returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    function Unresolved_719c6d56(uint256 arg0, uint256 arg1, uint256 arg2) public payable returns (uint256) {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2) > 0xffffffffffffffff);
        require(!((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff));
        var_g = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_g); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(var_c.length == (address(var_c.length)));
        address var_i = msg.sender;
        (bool success, bytes memory ret0) = address(var_c.length).Unresolved_f9f6b49b(var_i); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!(((var_c + ret0.length) - var_c) < 0x20), "Caller not registered");
        require(var_c.length == var_c.length, "Caller not registered");
        require(var_c.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        var_k = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_q[var_a]))) {
                    if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_a = uint32(storage_map_q[var_a]);
                        var_a = uint32(storage_map_q[var_a]);
                        if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                            var_a = storage_map_ac[keccak256(var_a) + 0x01];
                            require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                            require(voteTiming * 0x02);
                            require(0 - (uint32(storage_map_q[var_a])));
                            require(!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                            require(!0x01);
                            require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(bytes1(storage_map_q[var_a] / 0x0100000000));
                            require(!0x01 > 0x04);
                            require(0);
                            require(!0x01 > 0x04);
                            return 0;
                            require(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
                            require(!0x01 > 0x04);
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe);
                            require(0);
                            require(!0x01 > 0x04);
                            return 0;
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd);
                        }
                    }
                    require(0x8b1631ab830d11531ae83725fda4d86012eccd77);
                }
            }
            require(0x01);
        }
    }
    
    /// @custom:selector    0xd85d98f1
    /// @custom:signature   processResolvablePriceRequestsRange(uint64 arg0) public payable
    /// @param              arg0 ["uint64", "bytes8", "int64"]
    function processResolvablePriceRequestsRange(uint64 arg0) public payable {
        require(arg0 == (uint64(arg0)));
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            if (voteTiming * 0x02) {
                if (uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02)))) {
                    if (!0 < getNumberOfPriceRequestsPostUpdate) {
                        if (!(uint64(arg0)) > 0) {
                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                uint256 var_a = storage_map_aa[var_a];
                                if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                    var_a = uint32(storage_map_q[var_a]);
                                    var_a = uint32(storage_map_q[var_a]);
                                    if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                                        var_a = storage_map_ac[keccak256(var_a) + 0x01];
                                        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                                        require(voteTiming * 0x02);
                                        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
                                        require(!0 < getNumberOfPriceRequestsPostUpdate);
                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                        require(!(uint64(arg0)) > 0);
                                        require(0 < getNumberOfPriceRequestsPostUpdate);
                                        var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                        require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))));
                                        storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                        var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                        require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                        require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                                        require(!0x01);
                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                                        var_a = keccak256(var_a) + 0x03;
                                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                                    }
                                    require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff);
                                    var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                    require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20));
                                }
                            }
                            require(!bytes1(storage_map_u[var_a]));
                        }
                    }
                    require(bytes1(storage_map_u[var_a]) == 0x01);
                }
            }
            require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff);
            store_j = store_j + 0x01;
            var_a = 0x09;
            storage_map_af[var_a] = storage_map_aa[var_a];
            require(0 < getNumberOfPriceRequestsPostUpdate);
            require(!(getNumberOfPriceRequestsPostUpdate - 0x01) > getNumberOfPriceRequestsPostUpdate);
            require((getNumberOfPriceRequestsPostUpdate - 0x01) < getNumberOfPriceRequestsPostUpdate);
            var_a = 0x0a;
            storage_map_ad[var_a] = storage_map_ag[var_a];
            require(0 < getNumberOfPriceRequestsPostUpdate);
            require(getNumberOfPriceRequestsPostUpdate);
        }
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
    }
    
    /// @custom:selector    0xb38d1c22
    /// @custom:signature   setMaxRolls(uint32 arg0) public payable
    /// @param              arg0 ["uint32", "bytes4", "int32"]
    function setMaxRolls(uint32 arg0) public payable {
        require(arg0 == (uint32(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            if (voteTiming * 0x02) {
                if (uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02)))) {
                    if (!0 < getNumberOfPriceRequestsPostUpdate) {
                        if (!0xffffffffffffffff > 0) {
                            lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
                            maxRequestsPerRound = (uint32(arg0)) | (uint224(maxRequestsPerRound));
                            emit MaxRollsChanged(uint32(arg0));
                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                uint256 var_e = storage_map_ah[var_e];
                                if (uint32(storage_map_ai[var_e]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                    var_e = uint32(storage_map_ai[var_e]);
                                    var_e = uint32(storage_map_ai[var_e]);
                                    if (!(address(storage_map_aj[keccak256(var_e) + 0x01])) > (address(storage_map_ak[var_e]))) {
                                        var_e = storage_map_al[keccak256(var_e) + 0x01];
                                        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                                        require(voteTiming * 0x02);
                                        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
                                        require(!0 < getNumberOfPriceRequestsPostUpdate);
                                        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        storage_map_ai[var_e] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_ai[var_e]) + (storage_map_ai[var_e] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_ai[var_e]));
                                        require(!0xffffffffffffffff > 0);
                                        require(0 < getNumberOfPriceRequestsPostUpdate);
                                        var_e = uint32(block.timestamp / (voteTiming * 0x02));
                                        require(uint32(storage_map_ai[var_e]) < (uint32(block.timestamp / (voteTiming * 0x02))));
                                        storage_map_ai[var_e] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_ai[var_e]));
                                        var_e = uint32(block.timestamp / (voteTiming * 0x02));
                                        require(!(address(storage_map_aj[keccak256(var_e) + 0x01])) > (address(storage_map_ak[var_e])));
                                        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        storage_map_am[var_e] = (uint32(0x01 + (storage_map_am[var_e] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_am[var_e]));
                                        require(!(address(storage_map_ai[var_e])) > (address(storage_map_ak[var_e] / 0x0100000000000000000000000000000000)));
                                        require(!0x01);
                                        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_ai[var_e]))) > 0xffffffff);
                                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_ai[var_e])) + (uint32(storage_map_ai[var_e] / 0x0100000000000000000000000000))) > 0xffffffff);
                                        var_e = keccak256(var_e) + 0x03;
                                        require(bytes1(storage_map_ai[var_e] / 0x0100000000));
                                    }
                                    require(uint32(storage_map_am[var_e] / 0x0100000000000000000000000000000000) - 0xffffffff);
                                    var_e = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                    require(bytes1(storage_map_an[var_e]) - ((storage_map_an[var_e] >> 0x01) < 0x20));
                                }
                            }
                            require(!bytes1(storage_map_an[var_e]));
                        }
                    }
                    require(bytes1(storage_map_an[var_e]) == 0x01);
                }
            }
            require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff);
            store_j = store_j + 0x01;
            var_e = 0x09;
            storage_map_ao[var_e] = storage_map_ah[var_e];
            require(0 < getNumberOfPriceRequestsPostUpdate);
            require(!(getNumberOfPriceRequestsPostUpdate - 0x01) > getNumberOfPriceRequestsPostUpdate);
            require((getNumberOfPriceRequestsPostUpdate - 0x01) < getNumberOfPriceRequestsPostUpdate);
            var_e = 0x0a;
            storage_map_ap[var_e] = storage_map_aq[var_e];
            require(0 < getNumberOfPriceRequestsPostUpdate);
            require(getNumberOfPriceRequestsPostUpdate);
        }
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        maxRequestsPerRound = (uint32(arg0)) | (uint224(maxRequestsPerRound));
        emit MaxRollsChanged(uint32(arg0));
    }
    
    /// @custom:selector    0xca5eb5e1
    /// @custom:signature   setDelegate(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function setDelegate(address arg0) public payable {
        require(arg0 == (address(arg0)));
        address var_a = msg.sender;
        storage_map_r[var_a] = (address(arg0)) | (uint96(storage_map_r[var_a]));
        emit DelegateSet(msg.sender, address(arg0));
    }
    
    /// @custom:selector    0xc7b8981c
    /// @custom:signature   withdrawRewards() public payable returns (address)
    function withdrawRewards() public payable returns (address) {
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        address var_a = address(msg.sender);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(msg.sender));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        emit UpdatedReward(address(msg.sender), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        var_a = address(msg.sender);
        require(!address(storage_map_w[var_a] / 0x0100000000000000000000000000000000));
        storage_map_w[var_a] = address(storage_map_w[var_a]);
        address var_f = address(msg.sender);
        address var_g = address(storage_map_w[var_a] / 0x0100000000000000000000000000000000);
        (bool success, bytes memory ret0) = address(0x04fa0d235c4abf4bcf4787af4cf447de572ef828).{ value: 0 ether }Unresolved_40c10f19(var_f, var_g); // call
        uint256 var_h = var_h + (uint248(ret0.length + 0x1f));
        require(!(((var_h + ret0.length) - var_h) < 0x20), "Voting token issuance failed");
        require(var_h.length == var_h.length, "Voting token issuance failed");
        require(var_h.length, "Voting token issuance failed");
        var_g = 0x20;
        emit WithdrawnRewards(address(msg.sender), msg.sender, address(storage_map_w[var_a] / 0x0100000000000000000000000000000000));
        return address(storage_map_w[var_a] / 0x0100000000000000000000000000000000);
        return address(storage_map_w[var_a] / 0x0100000000000000000000000000000000);
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_o = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_o); // staticcall
        var_h = var_h + (uint248(ret0.length + 0x1f));
        if (!((var_h + ret0.length) - var_h) < 0x40) {
            require(!((var_h + ret0.length) - var_h) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_h.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_h.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_t) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_t))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_t * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_h.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_t * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_h = 0xa0 + var_h;
            var_a = uint32(var_aa);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_ab);
            var_a = address(msg.sender);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_ae)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                                var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                                if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff) {
                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                    storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                                    if (storage_map_u[var_a]) {
                                                        if (storage_map_u[var_a] - ((storage_map_u[var_a] >> 0x01) < 0x20)) {
                                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                            if (!storage_map_u[var_a]) {
                                                                if (storage_map_u[var_a] == 0x01) {
                                                                    var_a = keccak256(var_a) + 0x03;
                                                                    if (!0 < (storage_map_u[var_a] >> 0x01)) {
                                                                    }
                                                                    if (uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff) {
                                                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                                                        if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                                        }
                                                                    }
                                                                    if (storage_map_u[var_a]) {
                                                                    }
                                                                }
                                                                if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                                                }
                                                            }
                                                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                                                if (!0) {
                                                                }
                                                                if (!0 < getNumberOfPriceRequestsPostUpdate) {
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0xb551cd50
    /// @custom:signature   Unresolved_b551cd50(uint256 arg0, uint256 arg1, uint256 arg2) public payable returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    function Unresolved_b551cd50(uint256 arg0, uint256 arg1, uint256 arg2) public payable returns (bool) {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2) > 0xffffffffffffffff);
        require(!((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff));
        var_g = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_g); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(var_c.length == (address(var_c.length)));
        address var_i = msg.sender;
        (bool success, bytes memory ret0) = address(var_c.length).Unresolved_f9f6b49b(var_i); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!(((var_c + ret0.length) - var_c) < 0x20), "Caller not registered");
        require(var_c.length == var_c.length, "Caller not registered");
        require(var_c.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        var_k = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_q[var_a]))) {
                    if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_a = uint32(storage_map_q[var_a]);
                        var_a = uint32(storage_map_q[var_a]);
                        if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                            var_a = storage_map_ac[keccak256(var_a) + 0x01];
                            require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                            require(voteTiming * 0x02);
                            require(0 - (uint32(storage_map_q[var_a])));
                            require(!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                            require(!0x01);
                            require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])));
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(bytes1(storage_map_q[var_a] / 0x0100000000));
                            require(!0x01 > 0x04);
                            require(0);
                            return 0;
                            require(!0x01 > 0x04);
                            require(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
                            return 0;
                            require(!0x01 > 0x04);
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe);
                            return 0x01;
                            return 0;
                            return 0;
                            require(!0x01 > 0x04);
                        }
                    }
                    require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd);
                }
            }
            require(0x8b1631ab830d11531ae83725fda4d86012eccd77);
        }
    }
    
    /// @custom:selector    0xae467fda
    /// @custom:signature   updateTrackers(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function updateTrackers(address arg0) public payable {
        require(arg0 == (address(arg0)));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        address var_a = address(arg0);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(arg0));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        emit UpdatedReward(address(arg0), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_k = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_k); // staticcall
        var_f = var_f + (uint248(ret0.length + 0x1f));
        if (!((var_f + ret0.length) - var_f) < 0x40) {
            require(!((var_f + ret0.length) - var_f) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_f.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_f.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_f.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_f = 0xa0 + var_f;
            var_a = uint32(var_w);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_x);
            var_a = address(arg0);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_aa)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(0 < getNumberOfPriceRequestsPostUpdate);
                                            storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                                            require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            require(!0x01);
                                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                                            var_a = keccak256(var_a) + 0x03;
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                                        }
                                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff);
                                    }
                                }
                                require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20));
                            }
                        }
                        require(!bytes1(storage_map_u[var_a]));
                    }
                }
                require(bytes1(storage_map_u[var_a]) == 0x01);
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff);
            }
            require(0 < getNumberOfPriceRequestsPostUpdate);
        }
    }
    
    /// @custom:selector    0x83cd9cc3
    /// @custom:signature   setDelegator(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function setDelegator(address arg0) public payable {
        require(arg0 == (address(arg0)));
        address var_a = msg.sender;
        storage_map_q[var_a] = (address(arg0)) | (uint96(storage_map_q[var_a]));
        emit DelegatorSet(msg.sender, address(arg0));
    }
    
    /// @custom:selector    0x2aecac2d
    /// @custom:signature   processResolvablePriceRequests() public payable
    function processResolvablePriceRequests() public payable {
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            if (voteTiming * 0x02) {
                if (uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02)))) {
                    if (!0 < getNumberOfPriceRequestsPostUpdate) {
                        if (!0xffffffffffffffff > 0) {
                            lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                uint256 var_a = storage_map_aa[var_a];
                                if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                    var_a = uint32(storage_map_q[var_a]);
                                    var_a = uint32(storage_map_q[var_a]);
                                    if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                                        var_a = storage_map_ac[keccak256(var_a) + 0x01];
                                        if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                                            if (!0x01) {
                                                if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                    if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                        storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                                        if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                                            if (storage_map_q[var_a] / 0x0100000000) {
                                                                var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                                                if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                                    storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                                                    var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                                                    if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff) {
                                                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                        storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                                                        if (storage_map_u[var_a]) {
                                                                            if (storage_map_u[var_a] - ((storage_map_u[var_a] >> 0x01) < 0x20)) {
                                                                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                                if (!storage_map_u[var_a]) {
                                                                                    if (storage_map_u[var_a] == 0x01) {
                                                                                        var_a = keccak256(var_a) + 0x03;
                                                                                        if (!0 < (storage_map_u[var_a] >> 0x01)) {
                                                                                        }
                                                                                        if (uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff) {
                                                                                            var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                                                                            if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                                                            }
                                                                                        }
                                                                                        if (storage_map_u[var_a]) {
                                                                                        }
                                                                                    }
                                                                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                                                                    }
                                                                                }
                                                                                if (0 < getNumberOfPriceRequestsPostUpdate) {
                                                                                    store_j = store_j + 0x01;
                                                                                    var_a = 0x09;
                                                                                    storage_map_af[var_a] = storage_map_aa[var_a];
                                                                                    if (!(getNumberOfPriceRequestsPostUpdate - 0x01) > getNumberOfPriceRequestsPostUpdate) {
                                                                                        if ((getNumberOfPriceRequestsPostUpdate - 0x01) < getNumberOfPriceRequestsPostUpdate) {
                                                                                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                                                                                var_a = 0x0a;
                                                                                                storage_map_ad[var_a] = storage_map_ag[var_a];
                                                                                                if (getNumberOfPriceRequestsPostUpdate) {
                                                                                                    if (!0) {
                                                                                                    }
                                                                                                    if (!0 < getNumberOfPriceRequestsPostUpdate) {
                                                                                                        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0xbd68ab01
    /// @custom:signature   setEmissionRate(uint128 arg0) public payable
    /// @param              arg0 ["address", "uint128", "bytes16", "int128"]
    function setEmissionRate(uint128 arg0) public payable {
        require(arg0 == (address(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!0);
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        emit UpdatedReward(0, address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        cumulativeStake = (address(arg0)) | (address(cumulativeStake));
        emit SetNewEmissionRate(address(arg0));
    }
    
    /// @custom:selector    0xadd2ccb4
    /// @custom:signature   Unresolved_add2ccb4(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    /// @param              arg3 ["uint256", "bytes32", "int256"]
    /// @param              arg4 ["uint256", "bytes32", "int256"]
    function Unresolved_add2ccb4(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4) public payable {
        require(!arg3 > 0xffffffffffffffff);
        require(!(arg3 > 0xffffffffffffffff), "Invalid hash reveal");
        require(!(((var_c + (uint248((0x20 + (0x1f + (arg3))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg3))) + 0x1f))) > 0xffffffffffffffff)), "Invalid hash reveal");
        uint256 var_c = var_c + (uint248((0x20 + (0x1f + (arg3))) + 0x1f));
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Invalid hash reveal");
        owner = uint248(owner);
        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Invalid hash reveal");
        require(voteTiming * 0x02, "Invalid hash reveal");
        uint256 var_a = uint32(block.timestamp / (voteTiming * 0x02));
        require(0 - (address(storage_map_z[var_a])), "Invalid hash reveal");
        var_a = uint32(block.timestamp / (voteTiming * 0x02));
        var_a = address(msg.sender);
        require(!(address(storage_map_q[var_a])), "Invalid hash reveal");
        var_a = address(storage_map_q[var_a]);
        require(!(address(msg.sender) == (address(storage_map_r[var_a]))), "Invalid hash reveal");
        var_a = address(msg.sender);
        require(voteTiming, "Invalid hash reveal");
        require(0x02, "Invalid hash reveal");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Invalid hash reveal");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Invalid hash reveal");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Invalid hash reveal");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Invalid hash reveal");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(((block.timestamp / voteTiming) % 0x02) == 0x01, "Invalid hash reveal");
        require(storage_map_q[var_a], "Invalid hash reveal");
        var_a = address(storage_map_q[var_a]);
        require(voteTiming, "Reveal phase has not started yet");
        require(0x02, "Reveal phase has not started yet");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Reveal phase has not started yet");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Reveal phase has not started yet");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Reveal phase has not started yet");
        require(!(((block.timestamp / voteTiming) % 0x02) > 0x02), "Reveal phase has not started yet");
        require(((block.timestamp / voteTiming) % 0x02) == 0x01, "Reveal phase has not started yet");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!address(storage_map_q[var_a])) {
        }
    }
    
    /// @custom:selector    0xbf81936f
    /// @custom:signature   resolvedPriceRequestIds(uint256 arg0) public view returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function resolvedPriceRequestIds(uint256 arg0) public view returns (uint256) {
        require(arg0 < store_j);
        var_a = 0x09;
        return storage_map_ae[var_a];
    }
    
    /// @custom:selector    0xac9650d8
    /// @custom:signature   Unresolved_ac9650d8(uint256 arg0, uint256 arg1) public payable returns (bytes memory)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function Unresolved_ac9650d8(uint256 arg0, uint256 arg1) public payable returns (bytes memory) {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        uint256 var_d = var_d + (0x20 + (0x20 * (arg0)));
        require(!arg0);
        require(arg0 - 0x01);
        require(!0 < (arg0));
        require(0 < (arg0));
        require(!((0x20 + (arg0)) + ((0x20 + (arg0)) + 0)) > 0xffffffffffffffff);
        (bool success, bytes memory ret0) = address(this).Unresolved_(var_g); // delegatecall
        require(ret0.length == 0);
        require(!var_h < 0x44);
        require(!((0x84 + var_i) - 0x84) < 0x20);
        require(!var_j > 0xffffffffffffffff);
        require((0x84 + var_i) > ((0x84 + var_j) + 0x1f), "");
        require(!(var_k > 0xffffffffffffffff), "");
        require(!(((var_d + (uint248((0x20 + (0x1f + (var_k))) + 0x1f))) < var_d) | ((var_d + (uint248((0x20 + (0x1f + (var_k))) + 0x1f))) > 0xffffffffffffffff)), "");
        var_d = var_d + (uint248((0x20 + (0x1f + (var_k))) + 0x1f));
        require(!(((0x84 + var_j) + (var_l) + 0x20) > (0x84 + var_i)), "");
        require(!(0 < (var_k)), "");
        require(0x01);
        var_d = var_d + (uint248(ret0.length + 0x3f));
        return abi.encodePacked(0x20, var_d.length);
    }
    
    /// @custom:selector    0x0cea2bda
    /// @custom:signature   executeUnstake() public payable
    function executeUnstake() public payable {
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Unstake time not passed");
        owner = uint248(owner);
        address var_a = msg.sender;
        require(!(uint64(storage_map_u[var_a] / 0x01000000000000000000000000000000000000000000000000)), "Unstake time not passed");
        require(!(block.timestamp < (uint64(storage_map_u[var_a] / 0x01000000000000000000000000000000000000000000000000))), "Unstake time not passed");
        require(!(uint64(unstakeCoolDown / 0x0100000000000000000000000000000000)), "Unstake time not passed");
        require(!address(storage_map_q[var_a] / 0x0100000000000000000000000000000000));
        storage_map_q[var_a] = address(storage_map_q[var_a]);
        storage_map_u[var_a] = uint192(storage_map_u[var_a]);
        address var_d = msg.sender;
        (bool success, bytes memory ret0) = address(0x04fa0d235c4abf4bcf4787af4cf447de572ef828).{ value: 0 ether }Unresolved_a9059cbb(var_d); // call
        uint256 var_g = var_g + (uint248(ret0.length + 0x1f));
        require(!((var_g + ret0.length) - var_g) < 0x20);
        require(var_g.length == var_g.length);
        emit ExecutedUnstake(msg.sender, address(storage_map_q[var_a] / 0x0100000000000000000000000000000000), address(storage_map_q[var_a]));
        owner = 0x010000000000000000000000000000000000000000 | (uint248(owner));
        emit ExecutedUnstake(msg.sender, address(storage_map_q[var_a] / 0x0100000000000000000000000000000000), address(storage_map_q[var_a]));
        owner = 0x010000000000000000000000000000000000000000 | (uint248(owner));
        require(!(!uint64(storage_map_u[var_a] / 0x01000000000000000000000000000000000000000000000000)), "Unstake time not passed");
    }
    
    /// @custom:selector    0x29cb924d
    /// @custom:signature   getCurrentTime() public view returns (uint256)
    function getCurrentTime() public view returns (uint256) {
        return block.timestamp;
    }
    
    /// @custom:selector    0x715018a6
    /// @custom:signature   renounceOwnership() public payable
    function renounceOwnership() public payable {
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        owner = 0 | (uint96(owner));
        emit OwnershipTransferred(address(owner), 0);
    }
    
    /// @custom:selector    0xa2654447
    /// @custom:signature   delegateToStaker(address arg0) public view returns (address)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function delegateToStaker(address arg0) public view returns (address) {
        require(arg0 == (address(arg0)));
        address var_b = arg0;
        return address(storage_map_ar[var_b]);
    }
    
    /// @custom:selector    0xfaf92a3f
    /// @custom:signature   updateTrackersRange(address arg0, uint64 arg1) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint64", "bytes8", "int64"]
    function updateTrackersRange(address arg0, uint64 arg1) public payable {
        require(arg0 == (address(arg0)));
        require(arg1 == (uint64(arg1)));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        address var_a = address(arg0);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!(uint64(arg1)) > 0);
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_k = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_k); // staticcall
        var_d = var_d + (uint248(ret0.length + 0x1f));
        if (!((var_d + ret0.length) - var_d) < 0x40) {
            require(!((var_d + ret0.length) - var_d) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_d.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_d.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_d.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_d = 0xa0 + var_d;
            var_a = uint32(var_w);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_x);
            var_a = address(arg0);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_aa)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(0 < getNumberOfPriceRequestsPostUpdate);
                                            storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                                            require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            require(!0x01);
                                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                                            var_a = keccak256(var_a) + 0x03;
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                                        }
                                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff);
                                    }
                                }
                                require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20));
                            }
                        }
                        require(!bytes1(storage_map_u[var_a]));
                    }
                }
                require(bytes1(storage_map_u[var_a]) == 0x01);
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff);
            }
            require(0 < getNumberOfPriceRequestsPostUpdate);
        }
    }
    
    /// @custom:selector    0x866be1e1
    /// @custom:signature   requestUnstake(uint128 arg0) public payable
    /// @param              arg0 ["address", "uint128", "bytes16", "int128"]
    function requestUnstake(uint128 arg0) public payable {
        require(arg0 == (address(arg0)));
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Bad amount or pending unstake");
        owner = uint248(owner);
        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Bad amount or pending unstake");
        require(voteTiming * 0x02, "Bad amount or pending unstake");
        require(!(0 < getNumberOfPriceRequestsPostUpdate), "Bad amount or pending unstake");
        require(0 < getNumberOfPriceRequestsPostUpdate, "Bad amount or pending unstake");
        uint256 var_a = storage_map_ad[var_a];
        require(0 - (uint32(storage_map_q[var_a])), "Bad amount or pending unstake");
        require(!(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))), "Bad amount or pending unstake");
        var_a = uint32(storage_map_q[var_a]);
        var_a = uint32(storage_map_q[var_a]);
        require(!(address(storage_map_ab[keccak256(var_a) + 0x01]) > (address(storage_map_z[var_a]))), "Bad amount or pending unstake");
        var_a = storage_map_ac[keccak256(var_a) + 0x01];
        require(!(address(storage_map_q[var_a]) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))), "Bad amount or pending unstake");
        require(!0x01, "Bad amount or pending unstake");
        require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])), "Bad amount or pending unstake");
        require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > 0xffffffff), "Bad amount or pending unstake");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a])) > 0xffffffff), "Bad amount or pending unstake");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a])) > (uint32(maxRequestsPerRound))), "Bad amount or pending unstake");
        require(!(!bytes1(storage_map_q[var_a] / 0x0100000000)), "Bad amount or pending unstake");
        require(!(0x01 > 0x04), "Bad amount or pending unstake");
        require(0, "Bad amount or pending unstake");
        require(!0x01, "Bad amount or pending unstake");
        require(!0x01, "Bad amount or pending unstake");
        require(address(arg0) > 0, "Bad amount or pending unstake");
        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Bad amount or pending unstake");
        require(voteTiming * 0x02, "Bad amount or pending unstake");
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))), "Bad amount or pending unstake");
        require(!(0 < getNumberOfPriceRequestsPostUpdate), "Bad amount or pending unstake");
        require(!(0xffffffffffffffff > 0), "Bad amount or pending unstake");
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        var_a = address(msg.sender);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j), "Bad amount or pending unstake");
        require(!(0xffffffffffffffff > 0), "Bad amount or pending unstake");
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)), "Bad amount or pending unstake");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp), "Bad amount or pending unstake");
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!(address(msg.sender)), "Bad amount or pending unstake");
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)), "Bad amount or pending unstake");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp), "Bad amount or pending unstake");
        require(!((block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000)))))), "Bad amount or pending unstake");
        emit UpdatedReward(address(msg.sender), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        var_a = msg.sender;
        require(address(storage_map_q[var_a]) < (address(arg0)), "Bad amount or pending unstake");
        require(!(address(storage_map_q[var_a]) < (address(arg0))), "Bad amount or pending unstake");
        var_f = 0x20;
        require(!(address(cumulativeStake / 0x0100000000000000000000000000000000) - (address(arg0))) > 0xffffffffffffffffffffffffffffffff);
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        uint256 var_n = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_n); // staticcall
        var_i = var_i + (uint248(ret0.length + 0x1f));
        if (!((var_i + ret0.length) - var_i) < 0x40) {
            require(!((var_i + ret0.length) - var_i) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_i.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_i.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_s) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_s))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_s * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_i.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_s * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_i = 0xa0 + var_i;
            var_a = uint32(var_z);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_aa);
            var_a = address(msg.sender);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_ad)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
            }
            require(0 < getNumberOfPriceRequestsPostUpdate, "Cannot unstake 0");
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a]))) > (uint32(maxRequestsPerRound))) {
        }
        if (!0) {
        }
        if (uint32(storage_map_q[var_a]) - (uint32(block.timestamp / (voteTiming * 0x02)))) {
        }
        require(!0, "In an active reveal phase");
        require(!0, "In an active reveal phase");
    }
    
    /// @custom:selector    0x12b19a13
    /// @custom:signature   getRoundEndTime(uint256 arg0) public view
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function getRoundEndTime(uint256 arg0) public view {
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(!0x01 > (arg0 + 0x01));
    }
    
    /// @custom:selector    0xc9280f06
    /// @custom:signature   getPrice(bytes32 arg0, uint256 arg1) public payable returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function getPrice(bytes32 arg0, uint256 arg1) public payable returns (uint256) {
        var_d = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_d); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!((var_a + ret0.length) - var_a) < 0x20);
        require(var_a.length == (address(var_a.length)));
        address var_f = msg.sender;
        (bool success, bytes memory ret0) = address(var_a.length).Unresolved_f9f6b49b(var_f); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!(((var_a + ret0.length) - var_a) < 0x20), "Caller not registered");
        require(var_a.length == var_a.length, "Caller not registered");
        require(var_a.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        var_h = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_f[var_p]))) {
                    if (!(uint32(storage_map_f[var_p])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_p = uint32(storage_map_f[var_p]);
                        var_p = uint32(storage_map_f[var_p]);
                        if (!(address(storage_map_g[keccak256(var_p) + 0x01])) > (address(storage_map_h[var_p]))) {
                            var_p = storage_map_i[keccak256(var_p) + 0x01];
                            require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                            require(voteTiming * 0x02);
                            require(0 - (uint32(storage_map_f[var_p])));
                            require(!(uint32(storage_map_f[var_p])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_g[keccak256(var_p) + 0x01])) > (address(storage_map_h[var_p])));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(address(storage_map_f[var_p])) > (address(storage_map_h[var_p] / 0x0100000000000000000000000000000000)));
                            require(!0x01);
                            require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_f[var_p])));
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_f[var_p] / 0x0100000000000000000000000000))) > 0xffffffff);
                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_f[var_p] / 0x0100000000000000000000000000)) - (uint32(storage_map_f[var_p]))) > 0xffffffff);
                            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                            require(bytes1(storage_map_f[var_p] / 0x0100000000));
                            require(!0x01 > 0x04);
                            require(0);
                            require(!0x01 > 0x04);
                            return 0;
                            require(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
                            require(!0x01 > 0x04);
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe);
                            require(0);
                            require(!0x01 > 0x04);
                            return 0;
                            require(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd);
                        }
                    }
                    require(0x8b1631ab830d11531ae83725fda4d86012eccd77);
                }
            }
            require(0x01);
        }
    }
    
    /// @custom:selector    0x68ad8ae3
    /// @custom:signature   requestPrice(bytes32 arg0, uint256 arg1) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function requestPrice(bytes32 arg0, uint256 arg1) public payable {
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Contract migrated");
        owner = uint248(owner);
        require(!(address(maxRequestsPerRound / 0x010000000000000000)), "Contract migrated");
        var_d = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_d); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!((var_a + ret0.length) - var_a) < 0x20);
        require(var_a.length == (address(var_a.length)));
        address var_e = msg.sender;
        (bool success, bytes memory ret0) = address(var_a.length).Unresolved_f9f6b49b(var_e); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!(((var_a + ret0.length) - var_a) < 0x20), "Caller not registered");
        require(var_a.length == var_a.length, "Caller not registered");
        require(var_a.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        require(!(arg1 > block.timestamp), "Can only request in past");
        require(0, "Invalid ancillary data");
        require(0, "Invalid ancillary data");
        require(!(var_a.length > 0x2000), "Invalid ancillary data");
        var_f = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_f[var_p]))) {
                    if (!(uint32(storage_map_f[var_p])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_p = uint32(storage_map_f[var_p]);
                        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Unsupported identifier");
                        var_p = storage_map_i[keccak256(var_p) + 0x01];
                        require(voteTiming * 0x02, "Unsupported identifier");
                        require(0 - (uint32(storage_map_f[var_p])), "Unsupported identifier");
                        require(!(uint32(storage_map_f[var_p]) < (uint32(block.timestamp / (voteTiming * 0x02)))), "Unsupported identifier");
                        require(!(address(storage_map_g[keccak256(var_p) + 0x01]) > (address(storage_map_h[var_p]))), "Unsupported identifier");
                        var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(address(storage_map_f[var_p]) > (address(storage_map_h[var_p] / 0x0100000000000000000000000000000000))), "Unsupported identifier");
                        var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!0x01, "Unsupported identifier");
                        require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_f[var_p])), "Unsupported identifier");
                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_f[var_p] / 0x0100000000000000000000000000)) > 0xffffffff), "Unsupported identifier");
                        var_p = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_f[var_p] / 0x0100000000000000000000000000)) - (uint32(storage_map_f[var_p])) > 0xffffffff), "Unsupported identifier");
                        owner = 0x010000000000000000000000000000000000000000 | (uint248(owner));
                        require(!(!storage_map_f[var_p] / 0x0100000000), "Unsupported identifier");
                    }
                }
                require(!(0x01 > 0x04), "Unsupported identifier");
            }
            require(0x01, "Unsupported identifier");
        }
        var_f = 0x4964656e74696669657257686974656c69737400000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).getImplementationAddress(var_f); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!((var_a + ret0.length) - var_a) < 0x20);
        require(var_a.length == (address(var_a.length)));
        uint256 var_i = arg0;
        (bool success, bytes memory ret0) = address(var_a.length).isIdentifierSupported(var_i); // staticcall
        var_a = var_a + (uint248(ret0.length + 0x1f));
        require(!(((var_a + ret0.length) - var_a) < 0x20), "Unsupported identifier");
        require(var_a.length == var_a.length, "Unsupported identifier");
        require(var_a.length, "Unsupported identifier");
    }
    
    /// @custom:selector    0x4edd8d53
    /// @custom:signature   voterStakes(address arg0) public view returns (bytes memory)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function voterStakes(address arg0) public view returns (bytes memory) {
        require(arg0 == (address(arg0)));
        address var_b = arg0;
        return abi.encodePacked(address(storage_map_ar[var_b]), address(storage_map_ar[var_b] / 0x0100000000000000000000000000000000), address(storage_map_as[var_b]), address(storage_map_as[var_b] / 0x0100000000000000000000000000000000), 11, uint64(storage_map_at[var_b] / 0x0100000000000000000000000000000000), uint64(storage_map_at[var_b] / 0x01000000000000000000000000000000000000000000000000), address(storage_map_au[var_b]));
    }
    
    /// @custom:selector    0x3aa3ed1a
    /// @custom:signature   getVoterFromDelegate(address arg0) public view returns (address)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function getVoterFromDelegate(address arg0) public view returns (address) {
        require(arg0 == (address(arg0)));
        address var_a = address(arg0);
        require(!address(storage_map_q[var_a]));
        var_a = address(storage_map_q[var_a]);
        require(!(address(arg0)) == (address(storage_map_r[var_a])));
        return address(arg0);
        return address(storage_map_q[var_a]);
        require(!address(storage_map_q[var_a]));
        return address(storage_map_q[var_a]);
        return address(arg0);
    }
    
    /// @custom:selector    0x52dc0c83
    /// @custom:signature   setMaxRequestPerRound(uint32 arg0) public payable
    /// @param              arg0 ["uint32", "bytes4", "int32"]
    function setMaxRequestPerRound(uint32 arg0) public payable {
        require(arg0 == (uint32(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(uint32(arg0) > 0);
        maxRequestsPerRound = (uint32(arg0) * 0x0100000000) | (uint224(maxRequestsPerRound));
        emit MaxRequestsPerRoundChanged(uint32(arg0));
    }
    
    /// @custom:selector    0xcb1330f5
    /// @custom:signature   getVoterStakePostUpdate(address arg0) public payable returns (address)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function getVoterStakePostUpdate(address arg0) public payable returns (address) {
        require(arg0 == (address(arg0)));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        address var_a = address(arg0);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(arg0));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        emit UpdatedReward(address(arg0), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        var_a = address(arg0);
        return address(storage_map_q[var_a]);
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_k = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_k); // staticcall
        var_f = var_f + (uint248(ret0.length + 0x1f));
        if (!((var_f + ret0.length) - var_f) < 0x40) {
            require(!((var_f + ret0.length) - var_f) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_f.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_f.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_f.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_f = 0xa0 + var_f;
            var_a = uint32(var_w);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_x);
            var_a = address(arg0);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_aa)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(0 < getNumberOfPriceRequestsPostUpdate);
                                            storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                                            require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            require(!0x01);
                                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                                            var_a = keccak256(var_a) + 0x03;
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                                        }
                                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff);
                                    }
                                }
                                require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20));
                            }
                        }
                        require(!bytes1(storage_map_u[var_a]));
                    }
                }
                require(bytes1(storage_map_u[var_a]) == 0x01);
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff);
            }
            require(0 < getNumberOfPriceRequestsPostUpdate);
        }
    }
    
    /// @custom:selector    0xc0ba4b61
    /// @custom:signature   getVoterParticipation(uint256 arg0, uint32 arg1, address arg2) public view returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint32", "bytes4", "int32"]
    /// @param              arg2 ["address", "uint160", "bytes20", "int160"]
    function getVoterParticipation(uint256 arg0, uint32 arg1, address arg2) public view returns (uint256) {
        require(arg1 == (uint32(arg1)));
        require(arg2 == (address(arg2)));
        require(arg0 < store_j);
        var_a = uint32(arg1);
        var_a = address(arg2);
        require(storage_map_z[var_a]);
        require(!(storage_map_z[var_a]) == (keccak256(var_f)));
        require(0x02 < 0x03);
        return 0x02;
    }
    
    /// @custom:selector    0x26739d2a
    /// @custom:signature   Unresolved_26739d2a(address arg0, uint256 arg1, uint256 arg2, uint256 arg3) public payable returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    /// @param              arg3 ["uint256", "bytes32", "int256"]
    function Unresolved_26739d2a(address arg0, uint256 arg1, uint256 arg2, uint256 arg3) public payable returns (uint256) {
        require(arg0 == (address(arg0)));
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2) > 0xffffffffffffffff);
        require(!((var_c + (uint248(((arg2 << 0x05) + 0x20) + 0x1f))) < var_c) | ((var_c + (uint248(((arg2 << 0x05) + 0x20) + 0x1f))) > 0xffffffffffffffff));
        uint256 var_c = var_c + (uint248(((arg2 << 0x05) + 0x20) + 0x1f));
        require(!((0x04 + arg2) + 0x20) < (((0x04 + arg2) + 0x20) + (arg2 << 0x05)));
        require(!(arg2 + 0x20) > 0xffffffffffffffff);
        require(!((var_c + 0x60) < var_c) | ((var_c + 0x60) > 0xffffffffffffffff));
        var_c = var_c + 0x60;
        require(!(0x40 + ((arg2 + 0x20) + (arg2 + 0x20))) > 0xffffffffffffffff);
        require(!((arg2 + 0x20) + (arg2 + 0x20) + (0x40 + ((arg2 + 0x20) + (arg2 + 0x20)))) > 0xffffffffffffffff);
        require(!((var_c + (uint248((0x20 + (0x1f + ((arg2 + 0x20) + (arg2 + 0x20) + (0x40 + ((arg2 + 0x20) + (arg2 + 0x20)))))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + ((arg2 + 0x20) + (arg2 + 0x20) + (0x40 + ((arg2 + 0x20) + (arg2 + 0x20)))))) + 0x1f))) > 0xffffffffffffffff));
        var_c = var_c + (uint248((0x20 + (0x1f + ((arg2 + 0x20) + (arg2 + 0x20) + (0x40 + ((arg2 + 0x20) + (arg2 + 0x20)))))) + 0x1f));
        address var_h = address(arg0);
        uint256 var_i = arg1;
        var_j = 0x60;
        if (!0 < (var_r)) {
        }
        (bool success, bytes memory ret0) = address(0x8b1631ab830d11531ae83725fda4d86012eccd77).{ value: 0 ether }Unresolved_017e4c03(var_h, var_i, var_j); // call
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(!((var_c + 0x20) > 0xffffffffffffffff) | ((var_c + 0x20) < var_c));
        var_c = var_c + 0x20;
        return var_c.length;
    }
    
    /// @custom:selector    0x0dc57567
    /// @custom:signature   currentActiveRequests() public view returns (bool)
    function currentActiveRequests() public view returns (bool) {
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            if (voteTiming * 0x02) {
                if (!0 < getNumberOfPriceRequestsPostUpdate) {
                    if (0 < getNumberOfPriceRequestsPostUpdate) {
                        uint256 var_a = storage_map_ad[var_a];
                        if (0 - (uint32(storage_map_q[var_a]))) {
                            if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                var_a = uint32(storage_map_q[var_a]);
                                var_a = uint32(storage_map_q[var_a]);
                                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                                        if (!0x01) {
                                            if (uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a]))) {
                                                if (!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                    if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                        if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a]))) > (uint32(maxRequestsPerRound))) {
                                                            if (storage_map_q[var_a] / 0x0100000000) {
                                                                if (!0x01 > 0x04) {
                                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                    if (0) {
                                                                        return 0x01;
                                                                        if (!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000) - (storage_map_q[var_a]))) > (uint32(maxRequestsPerRound))) {
                                                                        }
                                                                    }
                                                                    if (!0) {
                                                                    }
                                                                    if (uint32(storage_map_q[var_a]) - (uint32(block.timestamp / (voteTiming * 0x02)))) {
                                                                    }
                                                                    return 0;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x16d32474
    /// @custom:signature   Unresolved_16d32474(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4) public pure
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    /// @param              arg3 ["uint256", "bytes32", "int256"]
    /// @param              arg4 ["uint256", "bytes32", "int256"]
    function Unresolved_16d32474(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4) public pure {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2) > 0xffffffffffffffff);
        require(!((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff));
        require(!arg4 > 0xffffffffffffffff);
    }
    
    /// @custom:selector    0xf2fde38b
    /// @custom:signature   transferOwnership(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function transferOwnership(address arg0) public payable {
        require(arg0 == (address(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(address(arg0), "Ownable: new owner is the zero address");
        owner = (address(arg0)) | (uint96(owner));
        emit OwnershipTransferred(address(owner), address(arg0));
    }
    
    /// @custom:selector    0x216666a4
    /// @custom:signature   Unresolved_216666a4(uint256 arg0, uint256 arg1, uint256 arg2) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    function Unresolved_216666a4(uint256 arg0, uint256 arg1, uint256 arg2) public payable {
        require(!arg2 > 0xffffffffffffffff);
        require(!(arg2 > 0xffffffffffffffff), "Contract migrated");
        require(!(((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + (arg2))) + 0x1f))) > 0xffffffffffffffff)), "Contract migrated");
        require(bytes1(owner / 0x010000000000000000000000000000000000000000), "Contract migrated");
        owner = uint248(owner);
        require(!(address(maxRequestsPerRound / 0x010000000000000000)), "Contract migrated");
        var_g = 0x5265676973747279000000000000000000000000000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).Unresolved_aafd5e40(var_g); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(var_c.length == (address(var_c.length)));
        address var_h = msg.sender;
        (bool success, bytes memory ret0) = address(var_c.length).Unresolved_f9f6b49b(var_h); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!(((var_c + ret0.length) - var_c) < 0x20), "Caller not registered");
        require(var_c.length == var_c.length, "Caller not registered");
        require(var_c.length, "Caller not registered");
        require(msg.sender == (address(maxRequestsPerRound / 0x010000000000000000)), "Caller not registered");
        require(!(arg1 > block.timestamp), "Can only request in past");
        require(0, "Invalid ancillary data");
        require(0, "Invalid ancillary data");
        require(!(var_c.length > 0x2000), "Invalid ancillary data");
        var_i = 0x20;
        if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            if (voteTiming * 0x02) {
                if (0 - (uint32(storage_map_q[var_a]))) {
                    if (!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                        uint32 var_a = uint32(storage_map_q[var_a]);
                        require(!(voteTiming & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))), "Unsupported identifier");
                        var_a = storage_map_ac[keccak256(var_a) + 0x01];
                        require(voteTiming * 0x02, "Unsupported identifier");
                        require(0 - (uint32(storage_map_q[var_a])), "Unsupported identifier");
                        require(!(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))), "Unsupported identifier");
                        require(!(address(storage_map_ab[keccak256(var_a) + 0x01]) > (address(storage_map_z[var_a]))), "Unsupported identifier");
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(address(storage_map_q[var_a]) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))), "Unsupported identifier");
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!0x01, "Unsupported identifier");
                        require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])), "Unsupported identifier");
                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > 0xffffffff), "Unsupported identifier");
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a])) > 0xffffffff), "Unsupported identifier");
                        owner = 0x010000000000000000000000000000000000000000 | (uint248(owner));
                        require(!(!storage_map_q[var_a] / 0x0100000000), "Unsupported identifier");
                    }
                }
                require(!(0x01 > 0x04), "Unsupported identifier");
            }
            require(0x01, "Unsupported identifier");
        }
        var_i = 0x4964656e74696669657257686974656c69737400000000000000000000000000;
        (bool success, bytes memory ret0) = address(0x40f941e48a552bf496b154af6bf55725f18d77c3).getImplementationAddress(var_i); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!((var_c + ret0.length) - var_c) < 0x20);
        require(var_c.length == (address(var_c.length)));
        uint256 var_l = arg0;
        (bool success, bytes memory ret0) = address(var_c.length).isIdentifierSupported(var_l); // staticcall
        var_c = var_c + (uint248(ret0.length + 0x1f));
        require(!(((var_c + ret0.length) - var_c) < 0x20), "Unsupported identifier");
        require(var_c.length == var_c.length, "Unsupported identifier");
        require(var_c.length, "Unsupported identifier");
    }
    
    /// @custom:selector    0x498ec3c9
    /// @custom:signature   Unresolved_498ec3c9(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3) public view returns (bytes memory)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["uint256", "bytes32", "int256"]
    /// @param              arg3 ["uint256", "bytes32", "int256"]
    function Unresolved_498ec3c9(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3) public view returns (bytes memory) {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        require(!((var_c + (uint248(((arg0 << 0x05) + 0x20) + 0x1f))) < var_c) | ((var_c + (uint248(((arg0 << 0x05) + 0x20) + 0x1f))) > 0xffffffffffffffff));
        uint256 var_c = var_c + (uint248(((arg0 << 0x05) + 0x20) + 0x1f));
        require(!((0x04 + arg0) + 0x20) < (((0x04 + arg0) + 0x20) + (arg0 << 0x05)));
        require(!(arg0 + 0x20) > 0xffffffffffffffff);
        require(!((var_c + 0x60) < var_c) | ((var_c + 0x60) > 0xffffffffffffffff));
        var_c = var_c + 0x60;
        require(!(0x40 + ((arg0 + 0x20) + (arg0 + 0x20))) > 0xffffffffffffffff);
        require(!((arg0 + 0x20) + (arg0 + 0x20) + (0x40 + ((arg0 + 0x20) + (arg0 + 0x20)))) > 0xffffffffffffffff);
        require(!((var_c + (uint248((0x20 + (0x1f + ((arg0 + 0x20) + (arg0 + 0x20) + (0x40 + ((arg0 + 0x20) + (arg0 + 0x20)))))) + 0x1f))) < var_c) | ((var_c + (uint248((0x20 + (0x1f + ((arg0 + 0x20) + (arg0 + 0x20) + (0x40 + ((arg0 + 0x20) + (arg0 + 0x20)))))) + 0x1f))) > 0xffffffffffffffff));
        var_c = var_c + (uint248((0x20 + (0x1f + ((arg0 + 0x20) + (arg0 + 0x20) + (0x40 + ((arg0 + 0x20) + (arg0 + 0x20)))))) + 0x1f));
        if (!var_c.length > 0xffffffffffffffff) {
            var_c = var_c + (0x20 + (0x20 * var_c.length));
            if (!var_c.length) {
                var_c = 0x40 + var_c;
                if (var_c.length - 0x01) {
                    if (!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming))) {
                        require(!var_c.length > 0xffffffffffffffff);
                        require(!var_c.length);
                        var_c = 0x20 + (uint248(0x1f + (var_q)) + ((0x20 + var_c) + 0x60));
                        require(var_c.length - 0x01);
                        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
                        uint32 var_a = uint32(storage_map_q[var_a]);
                        require(voteTiming * 0x02);
                        var_a = storage_map_ac[keccak256(var_a) + 0x01];
                        require(!0 < (var_o));
                        require(0 - (uint32(storage_map_q[var_a])));
                        require(!(uint32(storage_map_q[var_a])) < (uint32(block.timestamp / (voteTiming * 0x02))));
                        require(!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a])));
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000)));
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!0x01);
                        require(uint32(block.timestamp / (voteTiming * 0x02)) > (uint32(storage_map_q[var_a])));
                        require(!(uint32(block.timestamp / (voteTiming * 0x02)) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff);
                        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                        require(!(uint32((block.timestamp / (voteTiming * 0x02)) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) - (uint32(storage_map_q[var_a]))) > 0xffffffff);
                        require(bytes1(storage_map_q[var_a] / 0x0100000000));
                        require(!0x01 > 0x04);
                        require(0);
                    }
                }
                require(!0x01 > 0x04);
            }
            require(!0x01 > 0x04);
        }
        require(var_t < 0x05);
        return abi.encodePacked(0x20, var_c.length);
    }
    
    /// @custom:selector    0xbed40f6f
    /// @custom:signature   priceRequests(bytes32 arg0) public view returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function priceRequests(bytes32 arg0) public view returns (bool) {
        uint256 var_b = arg0;
        require(bytes1(storage_map_at[var_b]));
        require(bytes1(storage_map_at[var_b]) - ((storage_map_at[var_b] >> 0x01) < 0x20));
        var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        uint256 var_d = var_d + (0x20 + (((0x1f + (storage_map_at[var_b] >> 0x01)) / 0x20) * 0x20));
        require(bytes1(storage_map_at[var_b]));
        require(bytes1(storage_map_at[var_b]) - ((storage_map_at[var_b] >> 0x01) < 0x20));
        var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!(storage_map_at[var_b]) >> 0x01);
        require(0x1f < (storage_map_at[var_b] >> 0x01));
        var_b = keccak256(var_b) + 0x03;
        require((0x20 + var_d) + (storage_map_at[var_b] >> 0x01) > (0x20 + (0x20 + var_d)));
        return abi.encodePacked(uint32(storage_map_ar[var_b]), !(!bytes1(storage_map_ar[var_b] / 0x0100000000)), uint64(storage_map_ar[var_b] / 0x010000000000), uint32(storage_map_ar[var_b] / 0x0100000000000000000000000000), storage_map_aw[var_b], 0xc0, var_d.length);
    }
    
    /// @custom:selector    0xc54325af
    /// @custom:signature   stakeTo(address arg0, uint128 arg1) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["address", "uint128", "bytes16", "int128"]
    function stakeTo(address arg0, uint128 arg1) public payable {
        require(arg0 == (address(arg0)));
        require(arg1 == (address(arg1)));
        require(address(arg1) > 0);
        address var_a = address(arg0);
        require(0 - (address(storage_map_q[var_a])));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        var_a = address(arg0);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(arg0));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_k = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_k); // staticcall
        var_d = var_d + (uint248(ret0.length + 0x1f));
        if (!((var_d + ret0.length) - var_d) < 0x40) {
            require(!((var_d + ret0.length) - var_d) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_d.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_d.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_p))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_d.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_p * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_d = 0xa0 + var_d;
            var_a = uint32(var_w);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_x);
            var_a = address(arg0);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_aa)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(0 < getNumberOfPriceRequestsPostUpdate, "Cannot stake 0");
                                            storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            require(uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02))), "Cannot stake 0");
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                            require(!(address(storage_map_ab[keccak256(var_a) + 0x01]) > (address(storage_map_z[var_a]))), "Cannot stake 0");
                                            require(!(address(storage_map_q[var_a]) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))), "Cannot stake 0");
                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                            require(!0x01, "Cannot stake 0");
                                            require(!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a])) > 0xffffffff), "Cannot stake 0");
                                            var_a = keccak256(var_a) + 0x03;
                                            require(!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > 0xffffffff), "Cannot stake 0");
                                        }
                                        require(!(!bytes1(storage_map_q[var_a] / 0x0100000000)), "Cannot stake 0");
                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                        require(uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff, "Cannot stake 0");
                                    }
                                }
                                require(bytes1(storage_map_u[var_a]) - ((storage_map_u[var_a] >> 0x01) < 0x20), "Cannot stake 0");
                            }
                        }
                        require(!(bytes1(storage_map_u[var_a])), "Cannot stake 0");
                    }
                }
                require(bytes1(storage_map_u[var_a]) == 0x01, "Cannot stake 0");
                require(uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff, "Cannot stake 0");
            }
            require(0 < getNumberOfPriceRequestsPostUpdate, "Cannot stake 0");
        }
    }
    
    /// @custom:selector    0x2960b5af
    /// @custom:signature   setMigrated(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function setMigrated(address arg0) public payable {
        require(arg0 == (address(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        maxRequestsPerRound = (address(arg0) * 0x010000000000000000) | (uint96(maxRequestsPerRound));
        emit VotingContractMigrated(address(arg0));
    }
    
    /// @custom:selector    0xe835e343
    /// @custom:signature   withdrawAndRestake() public payable
    function withdrawAndRestake() public payable {
        address var_a = address(msg.sender);
        require(!address(storage_map_q[var_a]));
        var_a = address(storage_map_q[var_a]);
        require(!(address(msg.sender)) == (address(storage_map_r[var_a])));
        require(!(voteTiming) & (0x02 > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / voteTiming)));
        require(voteTiming * 0x02);
        require(uint32(lastRoundIdProcessed) == (uint32(block.timestamp / (voteTiming * 0x02))));
        require(!0 < getNumberOfPriceRequestsPostUpdate);
        require(!0xffffffffffffffff > 0);
        lastRoundIdProcessed = (uint32(block.timestamp / (voteTiming * 0x02)) | (address(lastRoundIdProcessed))) | 0;
        var_a = address(msg.sender);
        require(!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j);
        require(!0xffffffffffffffff > 0);
        storage_map_u[var_a] = (uint192(storage_map_u[var_a])) | (0x0100000000000000000000000000000000 * (uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        unstakeCoolDown = (uint64(block.timestamp) * 0x01000000000000000000000000000000000000000000000000) | (address(unstakeCoolDown) | (uint64(unstakeCoolDown)));
        require(!address(msg.sender));
        require(0 - (address(cumulativeStake / 0x0100000000000000000000000000000000)));
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) > block.timestamp);
        require(!(block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))) & (address(cumulativeStake) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (block.timestamp - (uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000))))));
        emit UpdatedReward(address(msg.sender), address(unstakeCoolDown), uint64(unstakeCoolDown / 0x01000000000000000000000000000000000000000000000000));
        var_a = address(msg.sender);
        require(!address(storage_map_w[var_a] / 0x0100000000000000000000000000000000));
        storage_map_w[var_a] = address(storage_map_w[var_a]);
        address var_f = address(this);
        address var_g = address(storage_map_w[var_a] / 0x0100000000000000000000000000000000);
        (bool success, bytes memory ret0) = address(0x04fa0d235c4abf4bcf4787af4cf447de572ef828).{ value: 0 ether }Unresolved_40c10f19(var_f, var_g); // call
        uint256 var_h = var_h + (uint248(ret0.length + 0x1f));
        require(!(((var_h + ret0.length) - var_h) < 0x20), "Voting token issuance failed");
        require(var_h.length == var_h.length, "Voting token issuance failed");
        require(var_h.length, "Voting token issuance failed");
        emit WithdrawnRewards(address(msg.sender), msg.sender, address(storage_map_w[var_a] / 0x0100000000000000000000000000000000));
        if (address(storage_map_w[var_a] / 0x0100000000000000000000000000000000) > 0) {
            var_a = address(msg.sender);
            require(address(storage_map_w[var_a] / 0x0100000000000000000000000000000000) > 0, "Cannot stake 0");
        }
        var_g = 0x20;
        require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
        var_a = uint32(storage_map_q[var_a]);
        var_a = storage_map_u[var_a];
        var_a = uint32(storage_map_q[var_a]);
        address var_o = address(storage_map_w[var_a]);
        (bool success, bytes memory ret0) = address(storage_map_q[var_a]).Unresolved_273d1fd6(var_o); // staticcall
        var_h = var_h + (uint248(ret0.length + 0x1f));
        if (!((var_h + ret0.length) - var_h) < 0x40) {
            require(!((var_h + ret0.length) - var_h) < 0x40);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_q[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_h.length) & (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / var_h.length)));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))) > (address(storage_map_w[var_a])));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_t) & (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / (var_t))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(var_t * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a])))) > ((var_h.length * (address(storage_map_w[var_a]) - (address(storage_map_q[var_a])))) + (var_t * (address(storage_map_w[var_a]) - (address(storage_map_w[var_a]))))));
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            var_h = 0xa0 + var_h;
            var_a = uint32(var_aa);
            require(0x0de0b6b3a7640000);
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            require(!(address(storage_map_q[var_a]) - (address(storage_map_q[var_a]))) > 0xffffffffffffffffffffffffffffffff);
            var_a = uint32(var_ab);
            var_a = address(msg.sender);
            require(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000) < store_j);
            require(storage_map_z[var_a]);
            require(!(storage_map_z[var_a]) == (keccak256(var_ae)));
            require(!0x02 > 0x02);
            require(0x02);
            require(!0x02 > 0x02);
        }
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        if (!(uint64(storage_map_u[var_a] / 0x0100000000000000000000000000000000)) < store_j) {
        }
        if (0 < getNumberOfPriceRequestsPostUpdate) {
            var_a = storage_map_aa[var_a];
            if (uint32(storage_map_q[var_a]) < (uint32(block.timestamp / (voteTiming * 0x02)))) {
                var_a = uint32(storage_map_q[var_a]);
                var_a = uint32(storage_map_q[var_a]);
                if (!(address(storage_map_ab[keccak256(var_a) + 0x01])) > (address(storage_map_z[var_a]))) {
                    var_a = storage_map_ac[keccak256(var_a) + 0x01];
                    if (!(address(storage_map_q[var_a])) > (address(storage_map_z[var_a] / 0x0100000000000000000000000000000000))) {
                        if (!0x01) {
                            if (!(uint32(block.timestamp / (voteTiming * 0x02)) - (uint32(storage_map_q[var_a]))) > 0xffffffff) {
                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                if (!(uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a])) + (uint32(storage_map_q[var_a] / 0x0100000000000000000000000000))) > 0xffffffff) {
                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                    storage_map_q[var_a] = (uint32((block.timestamp / (voteTiming * 0x02)) - (storage_map_q[var_a]) + (storage_map_q[var_a] / 0x0100000000000000000000000000)) * 0x0100000000000000000000000000) | (uint224(storage_map_q[var_a]));
                                    if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                        if (storage_map_q[var_a] / 0x0100000000) {
                                            var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                            if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                storage_map_q[var_a] = (uint32(block.timestamp / (voteTiming * 0x02))) | (uint224(storage_map_q[var_a]));
                                                var_a = uint32(block.timestamp / (voteTiming * 0x02));
                                                if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) - 0xffffffff) {
                                                    var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                    storage_map_c[var_a] = (uint32(0x01 + (storage_map_c[var_a] / 0x0100000000000000000000000000000000)) * 0x0100000000000000000000000000000000) | (uint224(storage_map_c[var_a]));
                                                    if (storage_map_u[var_a]) {
                                                        if (storage_map_u[var_a] - ((storage_map_u[var_a] >> 0x01) < 0x20)) {
                                                            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                            if (!storage_map_u[var_a]) {
                                                                if (storage_map_u[var_a] == 0x01) {
                                                                    var_a = keccak256(var_a) + 0x03;
                                                                    if (!0 < (storage_map_u[var_a] >> 0x01)) {
                                                                    }
                                                                    if (uint32(block.timestamp / (voteTiming * 0x02)) - 0xffffffff) {
                                                                        var_a = uint32(0x01 + (block.timestamp / (voteTiming * 0x02)));
                                                                        if (uint32(storage_map_c[var_a] / 0x0100000000000000000000000000000000) < (uint32(maxRequestsPerRound / 0x0100000000))) {
                                                                        }
                                                                    }
                                                                    if (storage_map_u[var_a]) {
                                                                    }
                                                                }
                                                                if (!(uint32(storage_map_q[var_a] / 0x0100000000000000000000000000)) > (uint32(maxRequestsPerRound))) {
                                                                }
                                                            }
                                                            if (0 < getNumberOfPriceRequestsPostUpdate) {
                                                                if (!0) {
                                                                }
                                                                if (!0 < getNumberOfPriceRequestsPostUpdate) {
                                                                }
                                                                var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
                                                                if (!address(storage_map_q[var_a])) {
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x8c65c81f
    /// @custom:signature   rounds(uint256 arg0) public view returns (bytes memory)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function rounds(uint256 arg0) public view returns (bytes memory) {
        uint256 var_b = arg0;
        return abi.encodePacked(address(storage_map_ar[var_b]), address(storage_map_aw[var_b]), address(storage_map_aw[var_b] / 0x0100000000000000000000000000000000), address(storage_map_as[var_b]), uint32(storage_map_as[var_b] / 0x0100000000000000000000000000000000));
    }
    
    /// @custom:selector    0x0318684e
    /// @custom:signature   setSlashingLibrary(address arg0) public payable
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function setSlashingLibrary(address arg0) public payable {
        require(arg0 == (address(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        lastRoundIdProcessed = (address(arg0) * 0x01000000000000000000000000) | (uint96(lastRoundIdProcessed));
        emit SlashingLibraryChanged(address(arg0));
    }
}

ABI

[
  {
    "type": "function",
    "name": "ANCILLARY_BYTES_LIMIT",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "UINT64_MAX",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_16d32474",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      },
      {
        "name": "arg3",
        "type": "uint256"
      },
      {
        "name": "arg4",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_216666a4",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_26739d2a",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      },
      {
        "name": "arg3",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_498ec3c9",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      },
      {
        "name": "arg3",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_719c6d56",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_894fcecc",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      },
      {
        "name": "arg3",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_9b21758d",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_ac9650d8",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_add2ccb4",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      },
      {
        "name": "arg3",
        "type": "uint256"
      },
      {
        "name": "arg4",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_b551cd50",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "cumulativeStake",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "currentActiveRequests",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "delegateToStaker",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "emissionRate",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "executeUnstake",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "finder",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "gat",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getCurrentRoundId",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getCurrentTime",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getNumberOfPriceRequests",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getNumberOfPriceRequestsPostUpdate",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "getPendingRequests",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getPrice",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "getRoundEndTime",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRoundIdToVoteOnRequest",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVotePhase",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVoterFromDelegate",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVoterParticipation",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint32"
      },
      {
        "name": "arg2",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVoterPendingStake",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVoterStakePostUpdate",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "hasPrice",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "lastRoundIdProcessed",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lastUpdateTime",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "maxRequestsPerRound",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "maxRolls",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "migratedAddress",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nextPendingIndexToProcess",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "outstandingRewards",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingPriceRequestsIds",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "previousVotingContract",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "priceRequests",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "processResolvablePriceRequests",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "processResolvablePriceRequestsRange",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint64"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "renounceOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "requestPrice",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "requestSlashingTrackers",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "requestUnstake",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "resolvedPriceRequestIds",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "rewardPerToken",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "rewardPerTokenStored",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "rounds",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "setDelegate",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setDelegator",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setEmissionRate",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setGatAndSpat",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128"
      },
      {
        "name": "arg1",
        "type": "uint64"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setMaxRequestPerRound",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setMaxRolls",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setMigrated",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setSlashingLibrary",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setUnstakeCoolDown",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint64"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "slashingLibrary",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "spat",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "stake",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "stakeTo",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint128"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "unstakeCoolDown",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "updateTrackers",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "updateTrackersRange",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint64"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "voteTiming",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "voterStakes",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "votingToken",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "withdrawAndRestake",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "withdrawRewards",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "event",
    "name": "DelegateSet",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DelegatorSet",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ExecutedUnstake",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "uint128",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "uint128",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "GatAndSpatChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "uint64",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "MaxRequestsPerRoundChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "MaxRollsChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetNewEmissionRate",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint128",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetNewUnstakeCoolDown",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint64",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SlashingLibraryChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "UpdatedReward",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "uint128",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "uint64",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "VotingContractMigrated",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WithdrawnRewards",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "uint128",
        "indexed": false
      }
    ],
    "anonymous": false
  }
]

UNKNOWN SELECTORS (7)

0x0b551cd5unknown
0x38ce36abunknown
0x5b7f254eunknown
0x273d1fd6unknown
0x02abf579unknown
0x139e8febunknown
0x017e4c03unknown
These selectors are not yet in the research database — they are being investigated and will be added as known functions once identified. They are also marked in red in the decompiled Solidity above.

KNOWN CLUSTER ADDRESSES IN THIS BYTECODE (0)

(none)