Contract 0x4E14EA1CFbe4015f31C7F989f2e3a48FA6586097

Contract Overview

Balance:
0 AVAX
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x22f85d58cbef7fb8b46a724f290382ef459ba35a15d6276b79e1660744c3ae08Vote105700962022-06-09 20:32:40111 days 15 hrs ago0x8626f6940e2eb28930efb4cef49b2d1f2c9c1199 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.0038494165 26.5
0x83535cd83f6cac01fdf453c3399387a2358983ed322d970ec5d867d59fdfa3b1Vote105700842022-06-09 20:32:11111 days 15 hrs ago0x8626f6940e2eb28930efb4cef49b2d1f2c9c1199 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.0051961995 26.5
0x2b17b68a67e8d74029509c0925d46ecc8a237858f4c4cce8b3f7e21d121884f30x7cc7b87a105697242022-06-09 20:14:01111 days 16 hrs ago0x8626f6940e2eb28930efb4cef49b2d1f2c9c1199 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.0205442738 34.7
0xa7ddc95868bfaed92aa32a13b153498c18ae0ed255cdc6deb3e0a955a8d34ddc0x7cc7b87a105693862022-06-09 19:57:12111 days 16 hrs ago0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.011400353 26.5
0xc3cddcd31448f5a81a639d95f4060b8510beddadb14004e32d41fb362596a6930x7cc7b87a105690812022-06-09 19:42:15111 days 16 hrs ago0x2489b8c7e72763e993437efaee8792b2ba2be69d IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.0093159955 26.5
0xf3cad5e4d65f867ebc93f0932a53ed38574690499b58fb87abb0b39284705690Vote99918902022-05-22 21:47:11129 days 14 hrs ago0x6e5faafdb60d7b8f0b91c29b2a29f4c2c403e1a9 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.004141473 26.5
0xaee7732108cba287b2b5a0421b916b3ddb8215f52ef38fec36b8f187ad7bb888Vote99892922022-05-22 19:12:06129 days 17 hrs ago0x3ca0882a262cf7d5b38b31697371b7f4480a9385 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x4d8a2c6b098f40b5bb4d387b6efdf789da6dcfff3410d982d1ef7ade8ce80128Vote99891952022-05-22 19:06:45129 days 17 hrs ago0x4265da5bd81026b706c7cef15bda13efbba97e65 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003034055175 27.425
0x5d63d117d781102c5aede4d2373d3d5892d539a1d1257427154759e026d5fe87Vote99888592022-05-22 18:50:21129 days 17 hrs ago0x757a9d479f15ecd09f18d06b6131306da4ed2def IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x7b16297b635402852ba194393f8ca2126b876659378e4d76a2984ba496002cabVote99887902022-05-22 18:47:15129 days 17 hrs ago0xe8161cdc0bef9475c3a46b32ce7e3fd779086fbb IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x16dc61ce12e3022df80f0486e33ed721962c78e8c8656a7a8fab8bdda1c331b3Vote99885202022-05-22 18:32:38129 days 17 hrs ago0x0ab41ca98c8ec6e6cd7f721470459a2f15541785 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003720403042 27.2816825
0x253e03b3d76e21d5d3d75838400c2e06b3dcaa4010191f0dfdda7c28c13d882aVote99877662022-05-22 17:50:13129 days 18 hrs ago0x10bcd1e05ffceb5d96dbcbe803138b4f320405e9 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.004141473 26.5
0x3a239861d3eb6a41c16285fb417577b96a4d9f2b800bb6d6762515c427bfe67cVote99863852022-05-22 16:48:48129 days 19 hrs ago0xfc6667dbd97b98294f4a5237c2267b85a88f2dd0 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.004235993125 31.0625
0xfb5d00e6ea0806d2edeeff1fb830d1879b40b73efb55a786af5a44a04fe31e29Vote99861422022-05-22 16:38:45129 days 19 hrs ago0x00000c3865dcff9b9ebe811b50cad10dc7d6eb59 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x8524960ca2c2bc4d3877ff9ca0a0c628052411ee5c3f8aee5d00fdf65337597aVote99853372022-05-22 16:05:36129 days 20 hrs ago0xcfc7e629774647d3e206aa20fdd30e62d049cf5a IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.004211190831 30.880625
0x70979ae7d1d2f12d3a0042b00b83d8cab01f0bc9ce92f9441468c2b0abbcd571Vote99853362022-05-22 16:05:34129 days 20 hrs ago0xfa7e62c305ecd9906d248d21a54116d0f439463f IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003730026332 27.35225
0xc7f761ddc448f7c26acfb6dd5a0811d117ac67aca781f0cc22327c2d17d5c59dVote99846232022-05-22 15:30:40129 days 20 hrs ago0x59b4dd5ba4c8c105a85f2d5ccd34c5e97692100d IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.00373994725 27.425
0x83267acc90ed1b6f594b6fa6ba2350e7279e9d7d19a5f553d1d7ed2a60a106efVote99837962022-05-22 14:53:15129 days 21 hrs ago0x29ea64a30a5906d946e42420690075dc8c67b9d7 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0xa313863eb0923027c612073916442ce959a5cf045c1200231ecf2e29dacfbc31Vote99835412022-05-22 14:39:14129 days 21 hrs ago0xbf0b1f86fdeb57c0858c79265c1e24c8822aa1e0 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.0034593895 26.5
0x0535c8df7f52f0aa92aee4647ffd006d632cf5a30ad23339f2b92af49f0ecc1eVote99831662022-05-22 14:20:10129 days 21 hrs ago0xbb29efd0a123b63d113c882111925a6f92c799a2 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x839432aac97ccbda90d04269532c1f11a64ac4f84853eb17e34727632420d052Vote99825942022-05-22 13:52:54129 days 22 hrs ago0xfec0f31ef13fa17db3aa405dd0855d12254015d2 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x8f7054ef080a6301d49c071ddd03f4bbb379ebf13720da5026f11288aa69562fVote99824622022-05-22 13:46:58129 days 22 hrs ago0xe86b56d3e7502ebe3f40ce1ad3bc14f328cbb167 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.004141473 26.5
0x28dc421ad9266aeb7968414fe084ad5f0ac9ea9fff6d51bacdb8905d060e6120Vote99815602022-05-22 13:02:40129 days 23 hrs ago0x9dfa83dd7cdfe8e37ce1930a5df9e99defc965d0 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0xbf5d83e3b871a9a8cfb405356ea890ae3c8a12f019af1a67f41b87c92cf9a73eVote99805422022-05-22 12:15:33130 days 4 mins ago0x6548002fd3eefdc72179be7f0322b7fd2c306387 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
0x1f09a29bc51eae8b65fbd933a373fc86f233826216ffbf32ee3dcde17dc834abVote99803482022-05-22 12:06:47130 days 12 mins ago0xfeb4c794bc4db07f51c2b36b2c5a96d5cd470c95 IN 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970 AVAX0.003613805 26.5
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x22f85d58cbef7fb8b46a724f290382ef459ba35a15d6276b79e1660744c3ae08105700962022-06-09 20:32:40111 days 15 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x83535cd83f6cac01fdf453c3399387a2358983ed322d970ec5d867d59fdfa3b1105700842022-06-09 20:32:11111 days 15 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x2b17b68a67e8d74029509c0925d46ecc8a237858f4c4cce8b3f7e21d121884f3105697242022-06-09 20:14:01111 days 16 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xa7ddc95868bfaed92aa32a13b153498c18ae0ed255cdc6deb3e0a955a8d34ddc105693862022-06-09 19:57:12111 days 16 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xc3cddcd31448f5a81a639d95f4060b8510beddadb14004e32d41fb362596a693105690812022-06-09 19:42:15111 days 16 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xf3cad5e4d65f867ebc93f0932a53ed38574690499b58fb87abb0b3928470569099918902022-05-22 21:47:11129 days 14 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xaee7732108cba287b2b5a0421b916b3ddb8215f52ef38fec36b8f187ad7bb88899892922022-05-22 19:12:06129 days 17 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x4d8a2c6b098f40b5bb4d387b6efdf789da6dcfff3410d982d1ef7ade8ce8012899891952022-05-22 19:06:45129 days 17 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x5d63d117d781102c5aede4d2373d3d5892d539a1d1257427154759e026d5fe8799888592022-05-22 18:50:21129 days 17 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x7b16297b635402852ba194393f8ca2126b876659378e4d76a2984ba496002cab99887902022-05-22 18:47:15129 days 17 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x16dc61ce12e3022df80f0486e33ed721962c78e8c8656a7a8fab8bdda1c331b399885202022-05-22 18:32:38129 days 17 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x253e03b3d76e21d5d3d75838400c2e06b3dcaa4010191f0dfdda7c28c13d882a99877662022-05-22 17:50:13129 days 18 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x3a239861d3eb6a41c16285fb417577b96a4d9f2b800bb6d6762515c427bfe67c99863852022-05-22 16:48:48129 days 19 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xfb5d00e6ea0806d2edeeff1fb830d1879b40b73efb55a786af5a44a04fe31e2999861422022-05-22 16:38:45129 days 19 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x8524960ca2c2bc4d3877ff9ca0a0c628052411ee5c3f8aee5d00fdf65337597a99853372022-05-22 16:05:36129 days 20 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x70979ae7d1d2f12d3a0042b00b83d8cab01f0bc9ce92f9441468c2b0abbcd57199853362022-05-22 16:05:34129 days 20 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xc7f761ddc448f7c26acfb6dd5a0811d117ac67aca781f0cc22327c2d17d5c59d99846232022-05-22 15:30:40129 days 20 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x83267acc90ed1b6f594b6fa6ba2350e7279e9d7d19a5f553d1d7ed2a60a106ef99837962022-05-22 14:53:15129 days 21 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xa313863eb0923027c612073916442ce959a5cf045c1200231ecf2e29dacfbc3199835412022-05-22 14:39:14129 days 21 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x0535c8df7f52f0aa92aee4647ffd006d632cf5a30ad23339f2b92af49f0ecc1e99831662022-05-22 14:20:10129 days 21 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x839432aac97ccbda90d04269532c1f11a64ac4f84853eb17e34727632420d05299825942022-05-22 13:52:54129 days 22 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x8f7054ef080a6301d49c071ddd03f4bbb379ebf13720da5026f11288aa69562f99824622022-05-22 13:46:58129 days 22 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x28dc421ad9266aeb7968414fe084ad5f0ac9ea9fff6d51bacdb8905d060e612099815602022-05-22 13:02:40129 days 23 hrs ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0xbf5d83e3b871a9a8cfb405356ea890ae3c8a12f019af1a67f41b87c92cf9a73e99805422022-05-22 12:15:33130 days 4 mins ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
0x1f09a29bc51eae8b65fbd933a373fc86f233826216ffbf32ee3dcde17dc834ab99803482022-05-22 12:06:47130 days 12 mins ago 0x4e14ea1cfbe4015f31c7f989f2e3a48fa65860970xb7819a8714fca85239e4b881291819a79aa703e40 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Governance

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at testnet.snowtrace.io on 2022-04-28
*/

// Sources flattened with hardhat v2.8.4 https://hardhat.org

// File @openzeppelin/contracts/security/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}


// File @openzeppelin/contracts/utils/[email protected]

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File contracts/Governance.sol

pragma solidity 0.8.9;

/// @title A governance contract for proposals, voting, and execution
/// @author Auroter
/// @notice Uses the StakedAxial contract to determine users voting power
/// @notice Multiple executions can be included in a single yes/no proposal
/// @notice Multiple-choice proposals are also valid and can be used to select a specific execution context


// import "hardhat/console.sol";

interface IsAxial {
  function balanceOf(address _account) external view returns (uint256);
}

contract Governance is ReentrancyGuard, Ownable {

    /// @notice Lower bound for the voting period
    uint256 public minimumVotingPeriod = 3 days;
    uint256 public constant VOTING_PERIOD_MINIMUM = 1 days;
    uint256 public constant VOTING_PERIOD_MAXIMUM = 30 days;

    /// @notice Seconds since the end of the voting period before the proposal can be executed
    uint256 public executionDelay = 24 hours;
    uint256 public constant EXECUTION_DELAY_MINIMUM = 30 seconds;
    uint256 public constant EXECUTION_DELAY_MAXIMUM = 30 days;

    /// @notice Seconds since the proposal could be executed until it is considered expired
    uint256 public constant EXPIRATION_PERIOD = 14 days;

    /// @notice The required minimum number of votes in support of a proposal for it to succeed
    uint256 public quorumVotes = 300_000;
    uint256 public constant QUORUM_VOTES_MINIMUM = 100_000;
    uint256 public constant QUORUM_VOTES_MAXIMUM = 18_000_000;

    /// @notice The minimum number of votes required for an account to create a proposal
    uint256 public proposalThreshold = 100_000;
    uint256 public constant PROPOSAL_THRESHOLD_MINIMUM = 50_000;
    uint256 public constant PROPOSAL_THRESHOLD_MAXIMUM = 10_000_000;

    /// @notice The total number of proposals
    uint256 public proposalCount;

    /// @notice The record of all proposals ever proposed
    mapping(uint256 => Proposal) public proposals;
    mapping(uint256 => mapping(address => Receipt)) public receipts;
    mapping(address => uint256) public lastProposalByAddress;

    /// @notice Non-tradeable sAXIAL used to represent votes
    IsAxial public sAXIAL;

    struct Proposal {
        string title;
        string metadata;
        address proposer;
        address executor;
        uint256 startTime;
        uint256 votingPeriod;
        uint256 quorumVotes;
        uint256 executionDelay;
        uint256[] votes;
        bool isBoolean;
        ProposalExecutionContextList executionContexts;
    }

    struct ProposalExecutionContext {
        string label; // Description of execution context
        address target; // The contract we wish to manipulate
        uint256 value; // We set this if the function requires native AVAX
        bytes data; // *encoded* function and parameters being executed at target
    }

    struct ProposalExecutionContextList {
        uint256 length;
        ProposalExecutionContext[] contexts;
    }

    struct Receipt {
        bool hasVoted; // did the user vote
        uint256 support; // what did user vote for?
        uint256 votes; // weight of the users vote
    }

    enum ProposalState {
        Active,
        Defeated,
        PendingExecution,
        ReadyForExecution,
        Executed,
        Expired
    }

    // emitted whenever a user votes
    event NewVote(
        uint256 proposalId,
        address voter,
        uint256 support,
        uint256 votes
    );

    event ProposalCreated(uint256 proposalId, address proposer, string title);
    event ProposalExecuted(uint256 proposalId, address executor);
    event MinimumVotingPeriodChanged(uint256 newMinimumVotingPeriod);
    event ExecutionDelayChanged(uint256 newExecutionDelay);
    event QuorumVotesChanges(uint256 newQuorumVotes);
    event ProposalThresholdChanged(uint256 newProposalThreshold);

    /// @notice Constructor
    /// @param _sAXIAL the address of the contract which determines each users voting power
    /// @dev This token must not be tradeable
    constructor(address _sAXIAL) {
        sAXIAL = IsAxial(_sAXIAL);
    }

    function getProposalVotes(uint256 proposalId) public view returns (uint256[] memory) {
        return proposals[proposalId].votes;
    }

    // Setters

    function setMinimumVotingPeriod(uint256 _seconds) public onlyOwner {
        require(
            _seconds >= VOTING_PERIOD_MINIMUM,
            "Governance::setMinimumVotingPeriod: TOO_SMALL"
        );
        require(
            _seconds <= VOTING_PERIOD_MAXIMUM,
            "Governance::setMinimumVotingPeriod: TOO_LARGE"
        );
        minimumVotingPeriod = _seconds;
        emit MinimumVotingPeriodChanged(_seconds);
    }

    function setExecutionDelay(uint256 _seconds) public onlyOwner {
        require(
            _seconds >= EXECUTION_DELAY_MINIMUM,
            "Governance::setExecutionDelay: TOO_SMALL"
        );
        require(
            _seconds <= EXECUTION_DELAY_MAXIMUM,
            "Governance::setExecutionDelay: TOO_LARGE"
        );
        executionDelay = _seconds;
        emit ExecutionDelayChanged(_seconds);
    }

    function setQuorumVotes(uint256 _votes) public onlyOwner {
        require(
            _votes >= QUORUM_VOTES_MINIMUM,
            "Governance::setQuorumVotes: TOO_SMALL"
        );
        require(
            _votes <= QUORUM_VOTES_MAXIMUM,
            "Governance::setQuorumVotes: TOO_LARGE"
        );
        quorumVotes = _votes;
        emit QuorumVotesChanges(_votes);
    }

    function setProposalThreshold(uint256 _votes) public onlyOwner {
        require(
            _votes >= PROPOSAL_THRESHOLD_MINIMUM,
            "Governance::setProposalThreshold: TOO_SMALL"
        );
        require(
            _votes <= PROPOSAL_THRESHOLD_MAXIMUM,
            "Governance::setProposalThreshold: TOO_LARGE"
        );
        proposalThreshold = _votes;
        emit ProposalThresholdChanged(_votes);
    }

    /// @notice View the current status of any proposal
    /// @param _proposalId the index of the proposal we wish to view the State of
    /// @return ProposalState enum representing the status of the selected proposal
    function state(uint256 _proposalId) public view returns (ProposalState) {
        require(
            _proposalId < proposalCount,
            "Governance::state: invalid proposal id"
        );

        Proposal memory proposal = proposals[_proposalId];

        // These states are each being a precondition of the next state

        // The proposal is currently allowing votes
        if (block.timestamp <= proposal.startTime + proposal.votingPeriod) {
            return ProposalState.Active;
        }

        // The proposal is no longer allowing votes and has been executed
        if (proposal.executor != address(0)) {
            return ProposalState.Executed;
        }

        // The proposal is yes/no and the yes votes did not exceed the no votes, or the yes notes did not exceed quorum
        if (proposal.isBoolean && (proposal.votes[1] <= proposal.votes[0] || proposal.votes[1] < proposal.quorumVotes)) {
            return ProposalState.Defeated;
        }

        // The proposal is multiple choice and none of the choices exceeded quorum
        if (!proposal.isBoolean) {
            bool multipleChoiceDefeated = true;
            for (uint256 i = 0; i < proposal.votes.length; ++i) {
                if (proposal.votes[i] >= proposal.quorumVotes) {
                    multipleChoiceDefeated = false;
                }
            }
            if (multipleChoiceDefeated) {
                return ProposalState.Defeated;
            }
        }

        // We are still in the execution delay window
        if (block.timestamp < proposal.startTime + proposal.votingPeriod + proposal.executionDelay) {
            return ProposalState.PendingExecution;
        }

        // We have not yet exceeded the expiration period
        if (block.timestamp < proposal.startTime + proposal.votingPeriod + proposal.executionDelay + EXPIRATION_PERIOD) {
            return ProposalState.ReadyForExecution;
        }

        // None of the previous conditions were met therefore the proposal has expired
        return ProposalState.Expired;
    }

    /// @param _proposalId the index of the proposal we wish to view the receipt for
    /// @param _voter the user we wish to view the receipt for
    /// @return Receipt A copy of the voters selection for the provided proposal
    function getReceipt(uint256 _proposalId, address _voter) public view returns (Receipt memory) {
        return receipts[_proposalId][_voter];
    }

    function constructProposalExecutionContexts(string[] calldata _labels, 
                                               address[] calldata _targets, 
                                               uint256[] calldata _values, 
                                               bytes[] calldata _data) 
                                               public pure returns (ProposalExecutionContextList memory) {
        require(_labels.length == _targets.length && _targets.length == _values.length && _values.length == _data.length, "!length");
        uint256 length = _labels.length;
        ProposalExecutionContextList memory list;
        list.length = length;
        list.contexts = new ProposalExecutionContext[](length);
            for (uint256 i = 0; i < length; ++i) {
                ProposalExecutionContext memory newProposalExecutionContext = ProposalExecutionContext({
                    label: _labels[i],
                    target: _targets[i],
                    value: _values[i],
                    data: _data[i]
                });

                list.contexts[i] = newProposalExecutionContext;
            }
        return list;
    }

    function constructProposalMetadata(string calldata _title, 
                                       string calldata _metadata, 
                                       uint256 _votingPeriod, 
                                       bool _isBoolean) 
                                       public pure returns (Proposal memory) {
        Proposal memory metaData;
        metaData.title = _title;
        metaData.metadata = _metadata;
        metaData.votingPeriod = _votingPeriod;
        metaData.isBoolean = _isBoolean;
        return metaData;
    }

    /// @notice Allows any user with sufficient priviledges to propose a new vote
    /// @param _metaData Metadata struct generated via constructProposalMetadata
    /// @param _executionContexts Execution struct generated via constructExecutionContexts
    function propose(
        Proposal memory _metaData,
        ProposalExecutionContextList memory _executionContexts
    ) public  {
        require(_executionContexts.length == _executionContexts.contexts.length,
            "Governance::propose: Malformed execution contexts list"
        );

        require(
            _metaData.votingPeriod >= minimumVotingPeriod,
            "Governance::propose: voting period too short"
        );

        require(
            _metaData.votingPeriod <= VOTING_PERIOD_MAXIMUM,
            "Governance::propose: voting period too long"
        );

        uint256 lastProposalId = lastProposalByAddress[msg.sender];

        // Prevent the same person from having concurrent proposals
        if (lastProposalId > 0) {
            ProposalState proposalState = state(lastProposalId);
            require(
                proposalState == ProposalState.Executed ||
                proposalState == ProposalState.Defeated ||
                proposalState == ProposalState.Expired,
                "Governance::propose: proposer already has a proposal in progress"
            );
        }

        uint256 votes = sAXIAL.balanceOf(msg.sender);

        // user needs to have enough voting power to be allowed to propose
        require(
            votes > proposalThreshold,
            "Governance::propose: proposer votes below proposal threshold"
        );

        // Allocate voting options
        uint256[] memory isMultipleChoice;
        if (!_metaData.isBoolean) {
            isMultipleChoice = new uint256[](_executionContexts.length);
        } else {
            isMultipleChoice = new uint256[](2); // 0: No, 1: Yes
        }

        Proposal storage newProposal = proposals[proposalCount];
        // newProposal.votes = new uint256[](0);

        // if (!_metaData.isBoolean) {
        //     for (uint256 i = 0; i < _executionContexts.length; ++i) {
        //         newProposal.votes.push(0); // A, B, C ...
        //     }
        // } else {
        //     newProposal.votes.push(0); // No
        //     newProposal.votes.push(0); // Yes
        // }

        newProposal.title = _metaData.title;
        newProposal.metadata = _metaData.metadata;
        newProposal.proposer = msg.sender;
        newProposal.executor = address(0);
        newProposal.startTime = block.timestamp;
        newProposal.votingPeriod = _metaData.votingPeriod;
        newProposal.quorumVotes = quorumVotes;
        newProposal.executionDelay = executionDelay;
        newProposal.votes = isMultipleChoice;
        newProposal.isBoolean = _metaData.isBoolean;
        for (uint256 i = 0; i < _executionContexts.length; ++i) {
            newProposal.executionContexts.contexts.push(_executionContexts.contexts[i]);
        }
        newProposal.executionContexts.length = _executionContexts.length;


        //Save new proposal to state
        //proposals[proposalCount] = newProposal;
        lastProposalByAddress[msg.sender] = proposalCount;

        ++proposalCount;

        emit ProposalCreated(proposalCount, newProposal.proposer, newProposal.title);
    }

    /// @notice Vote for selected option
    /// @param _proposalId the index of the proposal the user wishes to vote for or against
    /// @param _support index of the option the user wishes to cast their vote for
    /// @dev If the proposal is binary, 0 means No and 1 means Yes
    function vote(uint256 _proposalId, uint256 _support) public nonReentrant {
        require(
            state(_proposalId) == ProposalState.Active,
            "Governance::vote: voting is closed"
        );

        // directly talk to state memory
        Proposal storage proposal = proposals[_proposalId];
        Receipt storage receipt = receipts[_proposalId][msg.sender];

        uint256 votes = sAXIAL.balanceOf(msg.sender);

        // Remove any previous votes if the user cast them already
        if (receipt.hasVoted) {
            proposal.votes[receipt.support] -= receipt.votes;
        }

        // Increment votes for option user has now selected
        proposal.votes[_support] += votes;

        // Update users receipt
        receipt.hasVoted = true;
        receipt.support = _support;
        receipt.votes = votes;

        emit NewVote(_proposalId, msg.sender, _support, votes);
    }

    /// @notice Allow any user to execute the proposal if it is in the execution stage
    /// @param _proposalId the index of the proposal we wish to execute
    /// @return bytes array the executed function/s returned
    function execute(uint256 _proposalId) public payable nonReentrant returns (bytes[] memory) {
        require(
            state(_proposalId) == ProposalState.ReadyForExecution,
            "Governance::execute: cannot be executed"
        );

        Proposal storage proposal = proposals[_proposalId];

        ProposalExecutionContextList storage proposalExecution = proposal.executionContexts;

        bytes[] memory returnDatas;

        // If yes/no options were given, execute all
        if (proposal.isBoolean) {
            returnDatas = new bytes[](proposalExecution.length);
            for (uint256 i = 0; i < proposalExecution.length; ++i) {
                (bool success, bytes memory returnData) = proposalExecution.contexts[i].target.call{
                                                   value: proposalExecution.contexts[i].value}(
                                                          proposalExecution.contexts[i].data);
                require(
                    success,
                    "Governance::execute: transaction execution reverted."
                );
                returnDatas[i] = returnData;
            }
        } else {
            // If multiple choice, execute the option with the most votes
            returnDatas = new bytes[](1);
            uint256 contextToExecute = 0;
            uint256 maxVotes = proposal.quorumVotes;
            for (uint256 i = 0; i < proposal.votes.length; ++i) {
                if (proposal.votes[i] > maxVotes) {
                    maxVotes = proposal.votes[i];
                    contextToExecute = i;
                }
            }
            (bool success, bytes memory returnData) = proposalExecution.contexts[contextToExecute].target.call{
                                               value: proposalExecution.contexts[contextToExecute].value}(
                                                      proposalExecution.contexts[contextToExecute].data);
            require(
                success,
                "Governance::execute: transaction execution reverted."
            );
            returnDatas[0] = returnData;
        }

        proposal.executor = msg.sender;

        emit ProposalExecuted(_proposalId, proposal.executor);

        return returnDatas;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_sAXIAL","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newExecutionDelay","type":"uint256"}],"name":"ExecutionDelayChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMinimumVotingPeriod","type":"uint256"}],"name":"MinimumVotingPeriodChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"support","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"}],"name":"NewVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"string","name":"title","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"executor","type":"address"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newQuorumVotes","type":"uint256"}],"name":"QuorumVotesChanges","type":"event"},{"inputs":[],"name":"EXECUTION_DELAY_MAXIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXECUTION_DELAY_MINIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXPIRATION_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_THRESHOLD_MAXIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_THRESHOLD_MINIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUORUM_VOTES_MAXIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUORUM_VOTES_MINIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTING_PERIOD_MAXIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTING_PERIOD_MINIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"_labels","type":"string[]"},{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"name":"constructProposalExecutionContexts","outputs":[{"components":[{"internalType":"uint256","name":"length","type":"uint256"},{"components":[{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Governance.ProposalExecutionContext[]","name":"contexts","type":"tuple[]"}],"internalType":"struct Governance.ProposalExecutionContextList","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_title","type":"string"},{"internalType":"string","name":"_metadata","type":"string"},{"internalType":"uint256","name":"_votingPeriod","type":"uint256"},{"internalType":"bool","name":"_isBoolean","type":"bool"}],"name":"constructProposalMetadata","outputs":[{"components":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"internalType":"uint256","name":"executionDelay","type":"uint256"},{"internalType":"uint256[]","name":"votes","type":"uint256[]"},{"internalType":"bool","name":"isBoolean","type":"bool"},{"components":[{"internalType":"uint256","name":"length","type":"uint256"},{"components":[{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Governance.ProposalExecutionContext[]","name":"contexts","type":"tuple[]"}],"internalType":"struct Governance.ProposalExecutionContextList","name":"executionContexts","type":"tuple"}],"internalType":"struct Governance.Proposal","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"name":"execute","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"executionDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"getProposalVotes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"getReceipt","outputs":[{"components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"uint256","name":"support","type":"uint256"},{"internalType":"uint256","name":"votes","type":"uint256"}],"internalType":"struct Governance.Receipt","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastProposalByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumVotingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"internalType":"uint256","name":"executionDelay","type":"uint256"},{"internalType":"bool","name":"isBoolean","type":"bool"},{"components":[{"internalType":"uint256","name":"length","type":"uint256"},{"components":[{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Governance.ProposalExecutionContext[]","name":"contexts","type":"tuple[]"}],"internalType":"struct Governance.ProposalExecutionContextList","name":"executionContexts","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"internalType":"uint256","name":"executionDelay","type":"uint256"},{"internalType":"uint256[]","name":"votes","type":"uint256[]"},{"internalType":"bool","name":"isBoolean","type":"bool"},{"components":[{"internalType":"uint256","name":"length","type":"uint256"},{"components":[{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Governance.ProposalExecutionContext[]","name":"contexts","type":"tuple[]"}],"internalType":"struct Governance.ProposalExecutionContextList","name":"executionContexts","type":"tuple"}],"internalType":"struct Governance.Proposal","name":"_metaData","type":"tuple"},{"components":[{"internalType":"uint256","name":"length","type":"uint256"},{"components":[{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Governance.ProposalExecutionContext[]","name":"contexts","type":"tuple[]"}],"internalType":"struct Governance.ProposalExecutionContextList","name":"_executionContexts","type":"tuple"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"receipts","outputs":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"uint256","name":"support","type":"uint256"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sAXIAL","outputs":[{"internalType":"contract IsAxial","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"setExecutionDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"setMinimumVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_votes","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_votes","type":"uint256"}],"name":"setQuorumVotes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum Governance.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"_support","type":"uint256"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526203f48060025562015180600355620493e0600455620186a06005553480156200002d57600080fd5b506040516200354a3803806200354a8339810160408190526200005091620000d8565b6001600055620000603362000086565b600a80546001600160a01b0319166001600160a01b03929092169190911790556200010a565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208284031215620000eb57600080fd5b81516001600160a01b03811681146200010357600080fd5b9392505050565b613430806200011a6000396000f3fe6080604052600436106101ee5760003560e01c806387ce23f51161010d578063ca75960b116100a0578063ea014f481161006f578063ea014f48146105c5578063ece40cc1146105da578063f2fde38b146105fa578063fdfd7d441461061a578063fe0d94c11461063a57600080fd5b8063ca75960b14610534578063da35c6641461054b578063e23a9a5214610561578063e4917d9f146105a557600080fd5b80638e19855e116100dc5780638e19855e146104d2578063b1c360ed146104e8578063b384abef146104fe578063b58131b01461051e57600080fd5b806387ce23f5146104465780638ac56a53146104735780638b2579891461048a5780638da5cb5b146104a057600080fd5b806347c66140116101855780636dedc06e116101545780636dedc06e146103e2578063715018a6146103f95780637ba456af1461040e5780637cc7b87a1461042657600080fd5b806347c66140146103715780635a1daf7314610278578063645c71511461039e57806368c67143146103b557600080fd5b806334e5e95a116101c157806334e5e95a1461028f57806338249a49146102bc5780633e4f49e6146102dc5780634178b2491461030957600080fd5b8063013cf08b146101f357806302ec8f9e1461023257806324bc1a64146102545780632e54929c14610278575b600080fd5b3480156101ff57600080fd5b5061021361020e3660046126dc565b61065a565b6040516102299a999897969594939291906127f2565b60405180910390f35b34801561023e57600080fd5b5061025261024d3660046126dc565b610981565b005b34801561026057600080fd5b5061026a60045481565b604051908152602001610229565b34801561028457600080fd5b5061026a62278d0081565b34801561029b57600080fd5b506102af6102aa3660046128d9565b610ab3565b604051610229919061299b565b3480156102c857600080fd5b506102526102d73660046126dc565b610b4e565b3480156102e857600080fd5b506102fc6102f73660046126dc565b610c7f565b6040516102299190612aa8565b34801561031557600080fd5b50610354610324366004612ae7565b600860209081526000928352604080842090915290825290208054600182015460029092015460ff909116919083565b604080519315158452602084019290925290820152606001610229565b34801561037d57600080fd5b5061039161038c3660046126dc565b611249565b6040516102299190612b13565b3480156103aa57600080fd5b5061026a620186a081565b3480156103c157600080fd5b5061026a6103d0366004612b2d565b60096020526000908152604090205481565b3480156103ee57600080fd5b5061026a6201518081565b34801561040557600080fd5b506102526112ae565b34801561041a57600080fd5b5061026a630112a88081565b34801561043257600080fd5b50610252610441366004612e55565b6112e4565b34801561045257600080fd5b50610466610461366004612ff9565b611877565b60405161022991906130bc565b34801561047f57600080fd5b5061026a6298968081565b34801561049657600080fd5b5061026a60035481565b3480156104ac57600080fd5b506001546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104de57600080fd5b5061026a61c35081565b3480156104f457600080fd5b5061026a60025481565b34801561050a57600080fd5b506102526105193660046130cf565b611adf565b34801561052a57600080fd5b5061026a60055481565b34801561054057600080fd5b5061026a6212750081565b34801561055757600080fd5b5061026a60065481565b34801561056d57600080fd5b5061058161057c366004612ae7565b611d36565b60408051825115158152602080840151908201529181015190820152606001610229565b3480156105b157600080fd5b506102526105c03660046126dc565b611dab565b3480156105d157600080fd5b5061026a601e81565b3480156105e657600080fd5b506102526105f53660046126dc565b611ed0565b34801561060657600080fd5b50610252610615366004612b2d565b611ffc565b34801561062657600080fd5b50600a546104ba906001600160a01b031681565b61064d6106483660046126dc565b612097565b60405161022991906130f1565b60076020526000908152604090208054819061067590613153565b80601f01602080910402602001604051908101604052809291908181526020018280546106a190613153565b80156106ee5780601f106106c3576101008083540402835291602001916106ee565b820191906000526020600020905b8154815290600101906020018083116106d157829003601f168201915b50505050509080600101805461070390613153565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90613153565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b505050506002830154600384015460048501546005860154600687015460078801546009890154604080518082018252600a8c0180548252600b8d01805484516020808302820181019096528181529d9e6001600160a01b039c8d169e9c909b169c50989a97999698959760ff909516969592949193808601939060009084015b82821015610974578382906000526020600020906004020160405180608001604052908160008201805461083090613153565b80601f016020809104026020016040519081016040528092919081815260200182805461085c90613153565b80156108a95780601f1061087e576101008083540402835291602001916108a9565b820191906000526020600020905b81548152906001019060200180831161088c57829003601f168201915b505050918352505060018201546001600160a01b03166020820152600282015460408201526003820180546060909201916108e390613153565b80601f016020809104026020016040519081016040528092919081815260200182805461090f90613153565b801561095c5780601f106109315761010080835404028352916020019161095c565b820191906000526020600020905b81548152906001019060200180831161093f57829003601f168201915b505050505081525050815260200190600101906107fd565b505050508152505090508a565b6001546001600160a01b031633146109b45760405162461bcd60e51b81526004016109ab9061318e565b60405180910390fd5b620186a0811015610a155760405162461bcd60e51b815260206004820152602560248201527f476f7665726e616e63653a3a73657451756f72756d566f7465733a20544f4f5f60448201526414d350531360da1b60648201526084016109ab565b630112a880811115610a775760405162461bcd60e51b815260206004820152602560248201527f476f7665726e616e63653a3a73657451756f72756d566f7465733a20544f4f5f6044820152644c4152474560d81b60648201526084016109ab565b60048190556040518181527f4d82feec215c8e1f4d904b7268dd6499d866a96685c31f1e394e6663715f76e1906020015b60405180910390a150565b610abb612581565b610ac3612581565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152908790879081908401838280828437600092019190915250505050602082015260a0810193909352501515610120820152949350505050565b6001546001600160a01b03163314610b785760405162461bcd60e51b81526004016109ab9061318e565b62015180811015610be15760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e616e63653a3a7365744d696e696d756d566f74696e675065726960448201526c1bd90e881513d3d7d4d3505313609a1b60648201526084016109ab565b62278d00811115610c4a5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e616e63653a3a7365744d696e696d756d566f74696e675065726960448201526c6f643a20544f4f5f4c4152474560981b60648201526084016109ab565b60028190556040518181527ff4f36c6d71e6dce23fde1248bfb40024041297ac1665de2840339f8a6b32e54590602001610aa8565b60006006548210610ce15760405162461bcd60e51b815260206004820152602660248201527f476f7665726e616e63653a3a73746174653a20696e76616c69642070726f706f6044820152651cd85b081a5960d21b60648201526084016109ab565b60008281526007602052604080822081516101608101909252805482908290610d0990613153565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3590613153565b8015610d825780601f10610d5757610100808354040283529160200191610d82565b820191906000526020600020905b815481529060010190602001808311610d6557829003601f168201915b50505050508152602001600182018054610d9b90613153565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc790613153565b8015610e145780601f10610de957610100808354040283529160200191610e14565b820191906000526020600020905b815481529060010190602001808311610df757829003601f168201915b505050918352505060028201546001600160a01b0390811660208084019190915260038401549091166040808401919091526004840154606084015260058401546080840152600684015460a0840152600784015460c084015260088401805482518185028101850190935280835260e0909401939192909190830182828015610ebd57602002820191906000526020600020905b815481526020019060010190808311610ea9575b5050509183525050600982015460ff161515602080830191909152604080518082018252600a850180548252600b86018054845181870281018701865281815294909601959294919385830193909260009084015b828210156110895783829060005260206000209060040201604051806080016040529081600082018054610f4590613153565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7190613153565b8015610fbe5780601f10610f9357610100808354040283529160200191610fbe565b820191906000526020600020905b815481529060010190602001808311610fa157829003601f168201915b505050918352505060018201546001600160a01b0316602082015260028201546040820152600382018054606090920191610ff890613153565b80601f016020809104026020016040519081016040528092919081815260200182805461102490613153565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b50505050508152505081526020019060010190610f12565b5050509152505090525060a081015160808201519192506110a9916131d9565b42116110b85750600092915050565b60608101516001600160a01b0316156110d45750600492915050565b806101200151801561115057508061010001516000815181106110f9576110f96131f1565b6020026020010151816101000151600181518110611119576111196131f1565b602002602001015111158061115057508060c00151816101000151600181518110611146576111466131f1565b6020026020010151105b1561115e5750600192915050565b8061012001516111cc57600160005b826101000151518110156111b9578260c001518361010001518281518110611197576111976131f1565b6020026020010151106111a957600091505b6111b281613207565b905061116d565b5080156111ca575060019392505050565b505b8060e001518160a0015182608001516111e591906131d9565b6111ef91906131d9565b4210156111ff5750600292915050565b621275008160e001518260a00151836080015161121c91906131d9565b61122691906131d9565b61123091906131d9565b4210156112405750600392915050565b50600592915050565b6000818152600760209081526040918290206008018054835181840281018401909452808452606093928301828280156112a257602002820191906000526020600020905b81548152602001906001019080831161128e575b50505050509050919050565b6001546001600160a01b031633146112d85760405162461bcd60e51b81526004016109ab9061318e565b6112e2600061252f565b565b6020810151518151146113585760405162461bcd60e51b815260206004820152603660248201527f476f7665726e616e63653a3a70726f706f73653a204d616c666f726d656420656044820152751e1958dd5d1a5bdb8818dbdb9d195e1d1cc81b1a5cdd60521b60648201526084016109ab565b6002548260a0015110156113c35760405162461bcd60e51b815260206004820152602c60248201527f476f7665726e616e63653a3a70726f706f73653a20766f74696e67207065726960448201526b1bd9081d1bdbc81cda1bdc9d60a21b60648201526084016109ab565b62278d008260a00151111561142e5760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e616e63653a3a70726f706f73653a20766f74696e67207065726960448201526a6f6420746f6f206c6f6e6760a81b60648201526084016109ab565b33600090815260096020526040902054801561151457600061144f82610c7f565b9050600481600581111561146557611465612a92565b14806114825750600181600581111561148057611480612a92565b145b8061149e5750600581600581111561149c5761149c612a92565b145b611512576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e616e63653a3a70726f706f73653a2070726f706f73657220616c60448201527f72656164792068617320612070726f706f73616c20696e2070726f677265737360648201526084016109ab565b505b600a546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561155857600080fd5b505afa15801561156c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115909190613222565b905060055481116116095760405162461bcd60e51b815260206004820152603c60248201527f476f7665726e616e63653a3a70726f706f73653a2070726f706f73657220766f60448201527f7465732062656c6f772070726f706f73616c207468726573686f6c640000000060648201526084016109ab565b606084610120015161165f5783516001600160401b0381111561162e5761162e612b48565b604051908082528060200260200182016040528015611657578160200160208202803683370190505b509050611680565b60408051600280825260608201835290916020830190803683370190505090505b60065460009081526007602090815260409091208651805191926116a992849290910190612609565b5060208087015180516116c29260018501920190612609565b506002810180546001600160a01b03199081163317909155600380830180549092169091554260048084019190915560a08801516005840155546006830155546007820155815161171c906008830190602085019061268d565b5061012086015160098201805460ff191691151591909117905560005b85518110156117f55781600a016001018660200151828151811061175f5761175f6131f1565b60209081029190910181015182546001810184556000938452928290208151805192946004029091019261179892849290910190612609565b506020828101516001830180546001600160a01b0319166001600160a01b0390921691909117905560408301516002830155606083015180516117e19260038501920190612609565b505050806117ee90613207565b9050611739565b508451600a820155600680543360009081526009602052604081208290559061181d90613207565b9091555060065460028201546040517f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63926118679290916001600160a01b0390911690859061323b565b60405180910390a1505050505050565b604080518082019091526000815260606020820152878614801561189a57508584145b80156118a557508382145b6118db5760405162461bcd60e51b8152602060048201526007602482015266042d8cadccee8d60cb1b60448201526064016109ab565b60408051808201909152606060208201528881528890816001600160401b0381111561190957611909612b48565b60405190808252806020026020018201604052801561196e57816020015b61195b60405180608001604052806060815260200160006001600160a01b0316815260200160008152602001606081525090565b8152602001906001900390816119275790505b50602082015260005b82811015611ad057600060405180608001604052808e8e8581811061199e5761199e6131f1565b90506020028101906119b091906132d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020018c8c858181106119fc576119fc6131f1565b9050602002016020810190611a119190612b2d565b6001600160a01b031681526020018a8a85818110611a3157611a316131f1565b905060200201358152602001888885818110611a4f57611a4f6131f1565b9050602002810190611a6191906132d7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525060208401518051919250829184908110611ab357611ab36131f1565b60200260200101819052505080611ac990613207565b9050611977565b509a9950505050505050505050565b60026000541415611b325760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109ab565b60026000908155611b4283610c7f565b6005811115611b5357611b53612a92565b14611bab5760405162461bcd60e51b815260206004820152602260248201527f476f7665726e616e63653a3a766f74653a20766f74696e6720697320636c6f73604482015261195960f21b60648201526084016109ab565b600082815260076020908152604080832060088352818420338086529352818420600a5492516370a0823160e01b815260048101949094529093909290916001600160a01b0316906370a082319060240160206040518083038186803b158015611c1457600080fd5b505afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c9190613222565b825490915060ff1615611c9657816002015483600801836001015481548110611c7757611c776131f1565b906000526020600020016000828254611c90919061331d565b90915550505b80836008018581548110611cac57611cac6131f1565b906000526020600020016000828254611cc591906131d9565b9091555050815460ff19166001908117835582018490556002820181905560408051868152336020820152908101859052606081018290527f30fc966e088e5d91399acda87c233b87ed99de5ab4e137c1fbc19a3bb9a87bff9060800160405180910390a150506001600055505050565b611d5c604051806060016040528060001515815260200160008152602001600081525090565b5060009182526008602090815260408084206001600160a01b03939093168452918152918190208151606081018352815460ff1615158152600182015493810193909352600201549082015290565b6001546001600160a01b03163314611dd55760405162461bcd60e51b81526004016109ab9061318e565b601e811015611e375760405162461bcd60e51b815260206004820152602860248201527f476f7665726e616e63653a3a736574457865637574696f6e44656c61793a205460448201526713d3d7d4d350531360c21b60648201526084016109ab565b62278d00811115611e9b5760405162461bcd60e51b815260206004820152602860248201527f476f7665726e616e63653a3a736574457865637574696f6e44656c61793a20546044820152674f4f5f4c4152474560c01b60648201526084016109ab565b60038190556040518181527f193d917ecb8a5c0270b102b28be14cc9ee25763c29c0b87e980a0bc65d485e7590602001610aa8565b6001546001600160a01b03163314611efa5760405162461bcd60e51b81526004016109ab9061318e565b61c350811015611f605760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e616e63653a3a73657450726f706f73616c5468726573686f6c6460448201526a0e881513d3d7d4d350531360aa1b60648201526084016109ab565b62989680811115611fc75760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e616e63653a3a73657450726f706f73616c5468726573686f6c6460448201526a3a20544f4f5f4c4152474560a81b60648201526084016109ab565b60058190556040518181527f0553c1e1d490599cc62884d38bddf3b538bf26581e3d5a830cb2aa0a54fc563390602001610aa8565b6001546001600160a01b031633146120265760405162461bcd60e51b81526004016109ab9061318e565b6001600160a01b03811661208b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109ab565b6120948161252f565b50565b6060600260005414156120ec5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109ab565b600260005560036120fc83610c7f565b600581111561210d5761210d612a92565b1461216a5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e616e63653a3a657865637574653a2063616e6e6f7420626520656044820152661e1958dd5d195960ca1b60648201526084016109ab565b60008281526007602052604090206009810154600a82019060609060ff16156123165781546001600160401b038111156121a6576121a6612b48565b6040519080825280602002602001820160405280156121d957816020015b60608152602001906001900390816121c45790505b50905060005b825481101561231057600080846001018381548110612200576122006131f1565b60009182526020909120600160049092020181015490860180546001600160a01b039092169185908110612236576122366131f1565b90600052602060002090600402016002015486600101858154811061225d5761225d6131f1565b906000526020600020906004020160030160405161227b9190613334565b60006040518083038185875af1925050503d80600081146122b8576040519150601f19603f3d011682016040523d82523d6000602084013e6122bd565b606091505b5091509150816122df5760405162461bcd60e51b81526004016109ab906133a6565b808484815181106122f2576122f26131f1565b602002602001018190525050508061230990613207565b90506121df565b506124d1565b60408051600180825281830190925290816020015b606081526020019060019003908161232b5750506006840154909150600090815b60088601548110156123b5578186600801828154811061236e5761236e6131f1565b906000526020600020015411156123a557856008018181548110612394576123946131f1565b906000526020600020015491508092505b6123ae81613207565b905061234c565b506000808560010184815481106123ce576123ce6131f1565b60009182526020909120600160049092020181015490870180546001600160a01b039092169186908110612404576124046131f1565b90600052602060002090600402016002015487600101868154811061242b5761242b6131f1565b90600052602060002090600402016003016040516124499190613334565b60006040518083038185875af1925050503d8060008114612486576040519150601f19603f3d011682016040523d82523d6000602084013e61248b565b606091505b5091509150816124ad5760405162461bcd60e51b81526004016109ab906133a6565b80856000815181106124c1576124c16131f1565b6020026020010181905250505050505b6003830180546001600160a01b031916339081179091556040805187815260208101929092527f9c85b616f29fca57a17eafe71cf9ff82ffef41766e2cf01ea7f8f7878dd3ec24910160405180910390a16001600055949350505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051806101600160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001600015158152602001612604604051806040016040528060008152602001606081525090565b905290565b82805461261590613153565b90600052602060002090601f016020900481019282612637576000855561267d565b82601f1061265057805160ff191683800117855561267d565b8280016001018555821561267d579182015b8281111561267d578251825591602001919060010190612662565b506126899291506126c7565b5090565b82805482825590600052602060002090810192821561267d579160200282018281111561267d578251825591602001919060010190612662565b5b8082111561268957600081556001016126c8565b6000602082840312156126ee57600080fd5b5035919050565b6000815180845260005b8181101561271b576020818501810151868301820152016126ff565b8181111561272d576000602083870101525b50601f01601f19169290920160200192915050565b60006040808401835185526020808501518382880152828151808552606094508489019150848160051b8a0101848401935060005b828110156127e457605f198b830301845284516080815181855261279d828601826126f5565b838a01516001600160a01b0316868b01528b8401518c870152928a01518584038b8701529291506127d0905081836126f5565b968801969588019593505050600101612777565b509998505050505050505050565b60006101408083526128068184018e6126f5565b9050828103602084015261281a818d6126f5565b6001600160a01b038c811660408601528b166060850152608084018a905260a0840189905260c0840188905260e08401879052851515610100850152838103610120850152905061286b8185612742565b9d9c50505050505050505050505050565b60008083601f84011261288e57600080fd5b5081356001600160401b038111156128a557600080fd5b6020830191508360208285010111156128bd57600080fd5b9250929050565b803580151581146128d457600080fd5b919050565b600080600080600080608087890312156128f257600080fd5b86356001600160401b038082111561290957600080fd5b6129158a838b0161287c565b9098509650602089013591508082111561292e57600080fd5b5061293b89828a0161287c565b90955093505060408701359150612954606088016128c4565b90509295509295509295565b600081518084526020808501945080840160005b8381101561299057815187529582019590820190600101612974565b509495945050505050565b60208152600082516101608060208501526129ba6101808501836126f5565b91506020850151601f19808685030160408701526129d884836126f5565b9350604087015191506129f660608701836001600160a01b03169052565b60608701516001600160a01b03811660808801529150608087015160a087015260a087015160c087015260c087015160e087015260e08701519150610100828188015280880151925050610120818786030181880152612a568584612960565b945080880151925050610140612a6f8188018415159052565b870151868503909101838701529050612a888382612742565b9695505050505050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310612aca57634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b03811681146128d457600080fd5b60008060408385031215612afa57600080fd5b82359150612b0a60208401612ad0565b90509250929050565b602081526000612b266020830184612960565b9392505050565b600060208284031215612b3f57600080fd5b612b2682612ad0565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b8057612b80612b48565b60405290565b604051608081016001600160401b0381118282101715612b8057612b80612b48565b60405161016081016001600160401b0381118282101715612b8057612b80612b48565b604051601f8201601f191681016001600160401b0381118282101715612bf357612bf3612b48565b604052919050565b60006001600160401b03831115612c1457612c14612b48565b612c27601f8401601f1916602001612bcb565b9050828152838383011115612c3b57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612c6357600080fd5b612b2683833560208501612bfb565b60006001600160401b03821115612c8b57612c8b612b48565b5060051b60200190565b600082601f830112612ca657600080fd5b81356020612cbb612cb683612c72565b612bcb565b82815260059290921b84018101918181019086841115612cda57600080fd5b8286015b84811015612cf55780358352918301918301612cde565b509695505050505050565b60006040808385031215612d1357600080fd5b612d1b612b5e565b9150823582526020808401356001600160401b0380821115612d3c57600080fd5b818601915086601f830112612d5057600080fd5b8135612d5e612cb682612c72565b81815260059190911b83018401908481019089831115612d7d57600080fd5b8585015b83811015612e4257803585811115612d995760008081fd5b86016080818d03601f1901811315612db15760008081fd5b612db9612b86565b8983013588811115612dcb5760008081fd5b612dd98f8c83870101612c52565b825250612de78b8401612ad0565b818b01526060838101358c830152918301359188831115612e085760008081fd5b82840193508e603f850112612e1f57600092508283fd5b612e2f8f8c8601358e8701612bfb565b9082015285525050918601918601612d81565b5080868901525050505050505092915050565b60008060408385031215612e6857600080fd5b82356001600160401b0380821115612e7f57600080fd5b908401906101608287031215612e9457600080fd5b612e9c612ba8565b823582811115612eab57600080fd5b612eb788828601612c52565b825250602083013582811115612ecc57600080fd5b612ed888828601612c52565b602083015250612eea60408401612ad0565b6040820152612efb60608401612ad0565b60608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013583811115612f3c57600080fd5b612f4889828701612c95565b828401525050610120612f5c8185016128c4565b908201526101408381013583811115612f7457600080fd5b612f8089828701612d00565b828401525050809450506020850135915080821115612f9e57600080fd5b50612fab85828601612d00565b9150509250929050565b60008083601f840112612fc757600080fd5b5081356001600160401b03811115612fde57600080fd5b6020830191508360208260051b85010111156128bd57600080fd5b6000806000806000806000806080898b03121561301557600080fd5b88356001600160401b038082111561302c57600080fd5b6130388c838d01612fb5565b909a50985060208b013591508082111561305157600080fd5b61305d8c838d01612fb5565b909850965060408b013591508082111561307657600080fd5b6130828c838d01612fb5565b909650945060608b013591508082111561309b57600080fd5b506130a88b828c01612fb5565b999c989b5096995094979396929594505050565b602081526000612b266020830184612742565b600080604083850312156130e257600080fd5b50508035926020909101359150565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561314657603f198886030184526131348583516126f5565b94509285019290850190600101613118565b5092979650505050505050565b600181811c9082168061316757607f821691505b6020821081141561318857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156131ec576131ec6131c3565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561321b5761321b6131c3565b5060010190565b60006020828403121561323457600080fd5b5051919050565b8381526000602060018060a01b03851681840152606060408401526000845461326381613153565b80606087015260806001808416600081146132855760018114613299576132c7565b60ff1985168984015260a0890195506132c7565b896000528660002060005b858110156132bf5781548b82018601529083019088016132a4565b8a0184019650505b50939a9950505050505050505050565b6000808335601e198436030181126132ee57600080fd5b8301803591506001600160401b0382111561330857600080fd5b6020019150368190038213156128bd57600080fd5b60008282101561332f5761332f6131c3565b500390565b600080835461334281613153565b6001828116801561335a576001811461336b5761339a565b60ff1984168752828701945061339a565b8760005260208060002060005b858110156133915781548a820152908401908201613378565b50505082870194505b50929695505050505050565b60208082526034908201527f476f7665726e616e63653a3a657865637574653a207472616e73616374696f6e6040820152731032bc32b1baba34b7b7103932bb32b93a32b21760611b60608201526080019056fea264697066735822122031ef345b9dde6b63f8e12e02969052f0f75ca5b12680b39a25e6df413272bf3064736f6c63430008090033000000000000000000000000b7819a8714fca85239e4b881291819a79aa703e4

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

000000000000000000000000b7819a8714fca85239e4b881291819a79aa703e4

-----Decoded View---------------
Arg [0] : _sAXIAL (address): 0xb7819a8714fca85239e4b881291819a79aa703e4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b7819a8714fca85239e4b881291819a79aa703e4


Deployed ByteCode Sourcemap

6849:17298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8248:45;;;;;;;;;;-1:-1:-1;8248:45:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11561:394;;;;;;;;;;-1:-1:-1;11561:394:0;;;;;:::i;:::-;;:::i;:::-;;7658:36;;;;;;;;;;;;;;;;;;;3572:25:1;;;3560:2;3545:18;7658:36:0;3426:177:1;7342:57:0;;;;;;;;;;;;7392:7;7342:57;;16334:561;;;;;;;;;;-1:-1:-1;16334:561:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10674:446::-;;;;;;;;;;-1:-1:-1;10674:446:0;;;;;:::i;:::-;;:::i;12632:2118::-;;;;;;;;;;-1:-1:-1;12632:2118:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8300:63::-;;;;;;;;;;-1:-1:-1;8300:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8234:14:1;;8227:22;8209:41;;8281:2;8266:18;;8259:34;;;;8309:18;;;8302:34;8197:2;8182:18;8300:63:0;8013:329:1;10510:138:0;;;;;;;;;;-1:-1:-1;10510:138:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7701:54::-;;;;;;;;;;;;7748:7;7701:54;;8370:56;;;;;;;;;;-1:-1:-1;8370:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;7007:54;;;;;;;;;;;;7055:6;7007:54;;5476:103;;;;;;;;;;;;;:::i;7762:57::-;;;;;;;;;;;;7809:10;7762:57;;17161:3195;;;;;;;;;;-1:-1:-1;17161:3195:0;;;;;:::i;:::-;;:::i;15147:1179::-;;;;;;;;;;-1:-1:-1;15147:1179:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8033:63::-;;;;;;;;;;;;8086:10;8033:63;;7228:40;;;;;;;;;;;;;;;;4825:87;;;;;;;;;;-1:-1:-1;4898:6:0;;-1:-1:-1;;;;;4898:6:0;4825:87;;;-1:-1:-1;;;;;18094:32:1;;;18076:51;;18064:2;18049:18;4825:87:0;17930:203:1;7967:59:0;;;;;;;;;;;;8020:6;7967:59;;6957:43;;;;;;;;;;;;;;;;20651:939;;;;;;;;;;-1:-1:-1;20651:939:0;;;;;:::i;:::-;;:::i;7918:42::-;;;;;;;;;;;;;;;;7501:51;;;;;;;;;;;;7545:7;7501:51;;8152:28;;;;;;;;;;;;;;;;14990:149;;;;;;;;;;-1:-1:-1;14990:149:0;;;;;:::i;:::-;;:::i;:::-;;;;18617:13:1;;18610:21;18603:29;18585:48;;18689:4;18677:17;;;18671:24;18649:20;;;18642:54;18740:17;;;18734:24;18712:20;;;18705:54;18573:2;18558:18;14990:149:0;18391:374:1;11128:425:0;;;;;;;;;;-1:-1:-1;11128:425:0;;;;;:::i;:::-;;:::i;7275:60::-;;;;;;;;;;;;7325:10;7275:60;;11963:436;;;;;;;;;;-1:-1:-1;11963:436:0;;;;;:::i;:::-;;:::i;5734:201::-;;;;;;;;;;-1:-1:-1;5734:201:0;;;;;:::i;:::-;;:::i;8497:21::-;;;;;;;;;;-1:-1:-1;8497:21:0;;;;-1:-1:-1;;;;;8497:21:0;;;21821:2323;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8248:45::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;8248:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8248:45:0;;;;;;;;;-1:-1:-1;8248:45:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8248:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8248:45:0;;;-1:-1:-1;;8248:45:0;;;;-1:-1:-1;;;;;8248:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11561:394::-;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;;;;;;;;;7748:7:::1;11651:6;:30;;11629:117;;;::::0;-1:-1:-1;;;11629:117:0;;20747:2:1;11629:117:0::1;::::0;::::1;20729:21:1::0;20786:2;20766:18;;;20759:30;20825:34;20805:18;;;20798:62;-1:-1:-1;;;20876:18:1;;;20869:35;20921:19;;11629:117:0::1;20545:401:1::0;11629:117:0::1;7809:10;11779:6;:30;;11757:117;;;::::0;-1:-1:-1;;;11757:117:0;;21153:2:1;11757:117:0::1;::::0;::::1;21135:21:1::0;21192:2;21172:18;;;21165:30;21231:34;21211:18;;;21204:62;-1:-1:-1;;;21282:18:1;;;21275:35;21327:19;;11757:117:0::1;20951:401:1::0;11757:117:0::1;11885:11;:20:::0;;;11921:26:::1;::::0;3572:25:1;;;11921:26:0::1;::::0;3560:2:1;3545:18;11921:26:0::1;;;;;;;;11561:394:::0;:::o;16334:561::-;16645:15;;:::i;:::-;16673:24;;:::i;:::-;16725:6;;16708:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16708:23:0;;;-1:-1:-1;16742:29:0;;;;16708:23;16742:29;;;;;;;;;;;;;;;;;;16762:9;;;;;;16742:29;;16762:9;;;;16742:29;;;;;;;;;-1:-1:-1;;;;16742:17:0;;;:29;16782:21;;;:37;;;;-1:-1:-1;16830:31:0;;:18;;;:31;16742:17;16334:561;-1:-1:-1;;;;16334:561:0:o;10674:446::-;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;7055:6:::1;10774:8;:33;;10752:128;;;::::0;-1:-1:-1;;;10752:128:0;;21559:2:1;10752:128:0::1;::::0;::::1;21541:21:1::0;21598:2;21578:18;;;21571:30;21637:34;21617:18;;;21610:62;-1:-1:-1;;;21688:18:1;;;21681:43;21741:19;;10752:128:0::1;21357:409:1::0;10752:128:0::1;7116:7;10913:8;:33;;10891:128;;;::::0;-1:-1:-1;;;10891:128:0;;21973:2:1;10891:128:0::1;::::0;::::1;21955:21:1::0;22012:2;21992:18;;;21985:30;22051:34;22031:18;;;22024:62;-1:-1:-1;;;22102:18:1;;;22095:43;22155:19;;10891:128:0::1;21771:409:1::0;10891:128:0::1;11030:19;:30:::0;;;11076:36:::1;::::0;3572:25:1;;;11076:36:0::1;::::0;3560:2:1;3545:18;11076:36:0::1;3426:177:1::0;12632:2118:0;12689:13;12751;;12737:11;:27;12715:115;;;;-1:-1:-1;;;12715:115:0;;22387:2:1;12715:115:0;;;22369:21:1;22426:2;22406:18;;;22399:30;22465:34;22445:18;;;22438:62;-1:-1:-1;;;22516:18:1;;;22509:36;22562:19;;12715:115:0;22185:402:1;12715:115:0;12843:24;12870:22;;;:9;:22;;;;;;12843:49;;;;;;;;;;;;12870:22;;12843:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12843:49:0;;;-1:-1:-1;;12843:49:0;;;;-1:-1:-1;;;;;12843:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12843:49:0;;;-1:-1:-1;;12843:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12843:49:0;;;-1:-1:-1;;12843:49:0;;;;-1:-1:-1;;;;;12843:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12843:49:0;;-1:-1:-1;;12843:49:0;;-1:-1:-1;13077:21:0;;;;13056:18;;;;12843:49;;-1:-1:-1;13056:42:0;;;:::i;:::-;13037:15;:61;13033:121;;-1:-1:-1;13122:20:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;13033:121::-;13245:17;;;;-1:-1:-1;;;;;13245:31:0;;13241:93;;-1:-1:-1;13300:22:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;13241:93::-;13471:8;:18;;;:106;;;;;13515:8;:14;;;13530:1;13515:17;;;;;;;;:::i;:::-;;;;;;;13494:8;:14;;;13509:1;13494:17;;;;;;;;:::i;:::-;;;;;;;:38;;:82;;;;13556:8;:20;;;13536:8;:14;;;13551:1;13536:17;;;;;;;;:::i;:::-;;;;;;;:40;13494:82;13467:168;;;-1:-1:-1;13601:22:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;13467:168::-;13736:8;:18;;;13731:412;;13801:4;13771:27;13820:206;13844:8;:14;;;:21;13840:1;:25;13820:206;;;13916:8;:20;;;13895:8;:14;;;13910:1;13895:17;;;;;;;;:::i;:::-;;;;;;;:41;13891:120;;13986:5;13961:30;;13891:120;13867:3;;;:::i;:::-;;;13820:206;;;;14044:22;14040:92;;;-1:-1:-1;14094:22:0;;12632:2118;-1:-1:-1;;;12632:2118:0:o;14040:92::-;13756:387;13731:412;14277:8;:23;;;14253:8;:21;;;14232:8;:18;;;:42;;;;:::i;:::-;:68;;;;:::i;:::-;14214:15;:86;14210:156;;;-1:-1:-1;14324:30:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;14210:156::-;7545:7;14504:8;:23;;;14480:8;:21;;;14459:8;:18;;;:42;;;;:::i;:::-;:68;;;;:::i;:::-;:88;;;;:::i;:::-;14441:15;:106;14437:177;;;-1:-1:-1;14571:31:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;14437:177::-;-1:-1:-1;14721:21:0;;12632:2118;-1:-1:-1;;12632:2118:0:o;10510:138::-;10613:21;;;;:9;:21;;;;;;;;;:27;;10606:34;;;;;;;;;;;;;;;;;10577:16;;10606:34;;;10613:27;10606:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10510:138;;;:::o;5476:103::-;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;5541:30:::1;5568:1;5541:18;:30::i;:::-;5476:103::o:0;17161:3195::-;17342:27;;;;:34;17313:25;;:63;17305:153;;;;-1:-1:-1;;;17305:153:0;;23331:2:1;17305:153:0;;;23313:21:1;23370:2;23350:18;;;23343:30;23409:34;23389:18;;;23382:62;-1:-1:-1;;;23460:18:1;;;23453:52;23522:19;;17305:153:0;23129:418:1;17305:153:0;17519:19;;17493:9;:22;;;:45;;17471:139;;;;-1:-1:-1;;;17471:139:0;;23754:2:1;17471:139:0;;;23736:21:1;23793:2;23773:18;;;23766:30;23832:34;23812:18;;;23805:62;-1:-1:-1;;;23883:18:1;;;23876:42;23935:19;;17471:139:0;23552:408:1;17471:139:0;7116:7;17645:9;:22;;;:47;;17623:140;;;;-1:-1:-1;;;17623:140:0;;24167:2:1;17623:140:0;;;24149:21:1;24206:2;24186:18;;;24179:30;24245:34;24225:18;;;24218:62;-1:-1:-1;;;24296:18:1;;;24289:41;24347:19;;17623:140:0;23965:407:1;17623:140:0;17823:10;17776:22;17801:33;;;:21;:33;;;;;;17920:18;;17916:401;;17955:27;17985:21;17991:14;17985:5;:21::i;:::-;17955:51;-1:-1:-1;18064:22:0;18047:13;:39;;;;;;;;:::i;:::-;;:99;;;-1:-1:-1;18124:22:0;18107:13;:39;;;;;;;;:::i;:::-;;18047:99;:158;;;-1:-1:-1;18184:21:0;18167:13;:38;;;;;;;;:::i;:::-;;18047:158;18021:284;;;;;-1:-1:-1;;;18021:284:0;;24579:2:1;18021:284:0;;;24561:21:1;24598:18;;;24591:30;;;;24657:34;24637:18;;;24630:62;24728:34;24708:18;;;24701:62;24780:19;;18021:284:0;24377:428:1;18021:284:0;17940:377;17916:401;18345:6;;:28;;-1:-1:-1;;;18345:28:0;;18362:10;18345:28;;;18076:51:1;18329:13:0;;-1:-1:-1;;;;;18345:6:0;;:16;;18049:18:1;;18345:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18329:44;;18492:17;;18484:5;:25;18462:135;;;;-1:-1:-1;;;18462:135:0;;25201:2:1;18462:135:0;;;25183:21:1;25240:2;25220:18;;;25213:30;25279:34;25259:18;;;25252:62;25350:30;25330:18;;;25323:58;25398:19;;18462:135:0;24999:424:1;18462:135:0;18646:33;18695:9;:19;;;18690:197;;18764:25;;-1:-1:-1;;;;;18750:40:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18750:40:0;;18731:59;;18690:197;;;18842:16;;;18856:1;18842:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18842:16:0;18823:35;;18690:197;18940:13;;18899:28;18930:24;;;:9;:24;;;;;;;;19367:15;;19347:35;;18930:24;;19347:35;;18930:24;;19347:35;;;;;:::i;:::-;-1:-1:-1;19416:18:0;;;;;19393:41;;;;:20;;;;:41;;;:::i;:::-;-1:-1:-1;19445:20:0;;;:33;;-1:-1:-1;;;;;;19445:33:0;;;19468:10;19445:33;;;;19489:20;;;;:33;;;;;;;;19557:15;19533:21;;;;:39;;;;19610:22;;;;19583:24;;;:49;19669:11;19643:23;;;:37;19720:14;19691:26;;;:43;19745:36;;;;:17;;;;:36;;;;;:::i;:::-;-1:-1:-1;19816:19:0;;;;19792:21;;;:43;;-1:-1:-1;;19792:43:0;;;;;;;;;;-1:-1:-1;19846:158:0;19870:25;;19866:29;;19846:158;;;19917:11;:29;;:38;;19961:18;:27;;;19989:1;19961:30;;;;;;;;:::i;:::-;;;;;;;;;;;;19917:75;;;;;;;-1:-1:-1;19917:75:0;;;;;;;;;;;19961:30;;19917:75;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19917:75:0;;;;;;;;;;-1:-1:-1;;;;;;19917:75:0;-1:-1:-1;;;;;19917:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19897:3;;;;:::i;:::-;;;19846:158;;;-1:-1:-1;20053:25:0;;20014:29;;;:64;20218:13;;;20204:10;20053:25;20182:33;;;:21;:33;;;;;:49;;;20053:25;20244:15;;;:::i;:::-;;;;-1:-1:-1;20293:13:0;;20308:20;;;;20277:71;;;;;;20293:13;;-1:-1:-1;;;;;20308:20:0;;;;:11;;20277:71;:::i;:::-;;;;;;;;17294:3062;;;;17161:3195;;:::o;15147:1179::-;-1:-1:-1;;;;;;;;;;;;;;;;;15572:33:0;;;:70;;;;-1:-1:-1;15609:33:0;;;15572:70;:104;;;;-1:-1:-1;15646:30:0;;;15572:104;15564:124;;;;-1:-1:-1;;;15564:124:0;;26731:2:1;15564:124:0;;;26713:21:1;26770:1;26750:18;;;26743:29;-1:-1:-1;;;26788:18:1;;;26781:37;26835:18;;15564:124:0;26529:330:1;15564:124:0;-1:-1:-1;;;;;;;;;;;;;;15792:20:0;;;15716:7;;;-1:-1:-1;;;;;15839:38:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15839:38:0;;;;;;;;;;;;;;;;-1:-1:-1;15823:13:0;;;:54;15897:9;15892:405;15916:6;15912:1;:10;15892:405;;;15948:59;16010:204;;;;;;;;16065:7;;16073:1;16065:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;16010:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16010:204:0;;;-1:-1:-1;16010:204:0;;16106:8;;16115:1;16106:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16010:204:0;;;;;16147:7;;16155:1;16147:10;;;;;;;:::i;:::-;;;;;;;16010:204;;;;16186:5;;16192:1;16186:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;16010:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16010:204:0;;-1:-1:-1;16235:13:0;;;;:16;;15948:266;;-1:-1:-1;15948:266:0;;16249:1;;16235:16;;;;;;:::i;:::-;;;;;;:46;;;;15929:368;15924:3;;;;:::i;:::-;;;15892:405;;;-1:-1:-1;16314:4:0;15147:1179;-1:-1:-1;;;;;;;;;;15147:1179:0:o;20651:939::-;1913:1;2511:7;;:19;;2503:63;;;;-1:-1:-1;;;2503:63:0;;28119:2:1;2503:63:0;;;28101:21:1;28158:2;28138:18;;;28131:30;28197:33;28177:18;;;28170:61;28248:18;;2503:63:0;27917:355:1;2503:63:0;1913:1;2644:7;:18;;;20757::::1;20763:11;20757:5;:18::i;:::-;:42;;;;;;;;:::i;:::-;;20735:126;;;::::0;-1:-1:-1;;;20735:126:0;;28479:2:1;20735:126:0::1;::::0;::::1;28461:21:1::0;28518:2;28498:18;;;28491:30;28557:34;28537:18;;;28530:62;-1:-1:-1;;;28608:18:1;;;28601:32;28650:19;;20735:126:0::1;28277:398:1::0;20735:126:0::1;20916:25;20944:22:::0;;;:9:::1;:22;::::0;;;;;;;21003:8:::1;:21:::0;;;;;21025:10:::1;21003:33:::0;;;;;;;;21065:6:::1;::::0;:28;;-1:-1:-1;;;21065:28:0;;::::1;::::0;::::1;18076:51:1::0;;;;20944:22:0;;21003:33;;20916:25;;-1:-1:-1;;;;;21065:6:0::1;::::0;:16:::1;::::0;18049:18:1;;21065:28:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21178:16:::0;;21049:44;;-1:-1:-1;21178:16:0::1;;21174:97;;;21246:7;:13;;;21211:8;:14;;21226:7;:15;;;21211:31;;;;;;;;:::i;:::-;;;;;;;;;:48;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21174:97:0::1;21372:5;21344:8;:14;;21359:8;21344:24;;;;;;;;:::i;:::-;;;;;;;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21423:23:0;;-1:-1:-1;;21423:23:0::1;21442:4;21423:23:::0;;::::1;::::0;;21457:15;::::1;:26:::0;;;21494:13:::1;::::0;::::1;:21:::0;;;21533:49:::1;::::0;;29041:25:1;;;21554:10:0::1;29097:2:1::0;29082:18;;29075:60;29151:18;;;29144:34;;;29209:2;29194:18;;29187:34;;;21533:49:0::1;::::0;29028:3:1;29013:19;21533:49:0::1;;;;;;;-1:-1:-1::0;;1869:1:0;2823:7;:22;-1:-1:-1;;;20651:939:0:o;14990:149::-;15068:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;15068:14:0;-1:-1:-1;15102:21:0;;;;:8;:21;;;;;;;;-1:-1:-1;;;;;15102:29:0;;;;;;;;;;;;;15095:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14990:149::o;11128:425::-;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;7325:10:::1;11223:8;:35;;11201:125;;;::::0;-1:-1:-1;;;11201:125:0;;29434:2:1;11201:125:0::1;::::0;::::1;29416:21:1::0;29473:2;29453:18;;;29446:30;29512:34;29492:18;;;29485:62;-1:-1:-1;;;29563:18:1;;;29556:38;29611:19;;11201:125:0::1;29232:404:1::0;11201:125:0::1;7392:7;11359:8;:35;;11337:125;;;::::0;-1:-1:-1;;;11337:125:0;;29843:2:1;11337:125:0::1;::::0;::::1;29825:21:1::0;29882:2;29862:18;;;29855:30;29921:34;29901:18;;;29894:62;-1:-1:-1;;;29972:18:1;;;29965:38;30020:19;;11337:125:0::1;29641:404:1::0;11337:125:0::1;11473:14;:25:::0;;;11514:31:::1;::::0;3572:25:1;;;11514:31:0::1;::::0;3560:2:1;3545:18;11514:31:0::1;3426:177:1::0;11963:436:0;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;8020:6:::1;12059;:36;;12037:129;;;::::0;-1:-1:-1;;;12037:129:0;;30252:2:1;12037:129:0::1;::::0;::::1;30234:21:1::0;30291:2;30271:18;;;30264:30;30330:34;30310:18;;;30303:62;-1:-1:-1;;;30381:18:1;;;30374:41;30432:19;;12037:129:0::1;30050:407:1::0;12037:129:0::1;8086:10;12199:6;:36;;12177:129;;;::::0;-1:-1:-1;;;12177:129:0;;30664:2:1;12177:129:0::1;::::0;::::1;30646:21:1::0;30703:2;30683:18;;;30676:30;30742:34;30722:18;;;30715:62;-1:-1:-1;;;30793:18:1;;;30786:41;30844:19;;12177:129:0::1;30462:407:1::0;12177:129:0::1;12317:17;:26:::0;;;12359:32:::1;::::0;3572:25:1;;;12359:32:0::1;::::0;3560:2:1;3545:18;12359:32:0::1;3426:177:1::0;5734:201:0;4898:6;;-1:-1:-1;;;;;4898:6:0;3625:10;5045:23;5037:68;;;;-1:-1:-1;;;5037:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5823:22:0;::::1;5815:73;;;::::0;-1:-1:-1;;;5815:73:0;;31076:2:1;5815:73:0::1;::::0;::::1;31058:21:1::0;31115:2;31095:18;;;31088:30;31154:34;31134:18;;;31127:62;-1:-1:-1;;;31205:18:1;;;31198:36;31251:19;;5815:73:0::1;30874:402:1::0;5815:73:0::1;5899:28;5918:8;5899:18;:28::i;:::-;5734:201:::0;:::o;21821:2323::-;21896:14;1913:1;2511:7;;:19;;2503:63;;;;-1:-1:-1;;;2503:63:0;;28119:2:1;2503:63:0;;;28101:21:1;28158:2;28138:18;;;28131:30;28197:33;28177:18;;;28170:61;28248:18;;2503:63:0;27917:355:1;2503:63:0;1913:1;2644:7;:18;21967:31:::1;21945:18;21951:11;21945:5;:18::i;:::-;:53;;;;;;;;:::i;:::-;;21923:142;;;::::0;-1:-1:-1;;;21923:142:0;;31483:2:1;21923:142:0::1;::::0;::::1;31465:21:1::0;31522:2;31502:18;;;31495:30;31561:34;31541:18;;;31534:62;-1:-1:-1;;;31612:18:1;;;31605:37;31659:19;;21923:142:0::1;31281:403:1::0;21923:142:0::1;22078:25;22106:22:::0;;;:9:::1;:22;::::0;;;;22334:18:::1;::::0;::::1;::::0;22198:26:::1;::::0;::::1;::::0;22237::::1;::::0;22334:18:::1;;22330:1667;;;22395:24:::0;;-1:-1:-1;;;;;22383:37:0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22369:51;;22440:9;22435:564;22459:24:::0;;22455:28;::::1;22435:564;;;22510:12;22524:23:::0;22551:17:::1;:26;;22578:1;22551:29;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:36:::1;:29;::::0;;::::1;;:36:::0;::::1;::::0;22653:26;;::::1;:29:::0;;-1:-1:-1;;;;;22551:36:0;;::::1;::::0;22680:1;;22653:29;::::1;;;;;:::i;:::-;;;;;;;;;;;:35;;;22750:17;:26;;22777:1;22750:29;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;22551:234;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22509:276;;;;22834:7;22804:133;;;;-1:-1:-1::0;;;22804:133:0::1;;;;;;;:::i;:::-;22973:10;22956:11;22968:1;22956:14;;;;;;;;:::i;:::-;;;;;;:27;;;;22490:509;;22485:3;;;;:::i;:::-;;;22435:564;;;;22330:1667;;;23120:14;::::0;;23132:1:::1;23120:14:::0;;;;;::::1;::::0;;;;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;;23211:20:0::1;::::0;::::1;::::0;23106:28;;-1:-1:-1;23149:24:0::1;::::0;;23246:234:::1;23270:14;::::0;::::1;:21:::0;23266:25;::::1;23246:234;;;23341:8;23321;:14;;23336:1;23321:17;;;;;;;;:::i;:::-;;;;;;;;;:28;23317:148;;;23385:8;:14;;23400:1;23385:17;;;;;;;;:::i;:::-;;;;;;;;;23374:28;;23444:1;23425:20;;23317:148;23293:3;::::0;::::1;:::i;:::-;;;23246:234;;;;23495:12;23509:23:::0;23536:17:::1;:26;;23563:16;23536:44;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:51:::1;:44;::::0;;::::1;;:51:::0;::::1;::::0;23649:26;;::::1;:44:::0;;-1:-1:-1;;;;;23536:51:0;;::::1;::::0;23676:16;;23649:44;::::1;;;;;:::i;:::-;;;;;;;;;;;:50;;;23757:17;:26;;23784:16;23757:44;;;;;;;;:::i;:::-;;;;;;;;;;;:49;;23536:271;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23494:313;;;;23848:7;23822:121;;;;-1:-1:-1::0;;;23822:121:0::1;;;;;;;:::i;:::-;23975:10;23958:11;23970:1;23958:14;;;;;;;;:::i;:::-;;;;;;:27;;;;23016:981;;;;22330:1667;24009:17;::::0;::::1;:30:::0;;-1:-1:-1;;;;;;24009:30:0::1;24029:10;24009:30:::0;;::::1;::::0;;;24057:48:::1;::::0;;33100:25:1;;;33156:2;33141:18;;33134:60;;;;24057:48:0::1;::::0;33073:18:1;24057:48:0::1;;;;;;;1869:1:::0;2823:7;:22;24125:11;21821:2323;-1:-1:-1;;;;21821:2323:0:o;6095:191::-;6188:6;;;-1:-1:-1;;;;;6205:17:0;;;-1:-1:-1;;;;;;6205:17:0;;;;;;;6238:40;;6188:6;;;6205:17;6188:6;;6238:40;;6169:16;;6238:40;6158:128;6095:191;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:472::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;521:6;518:1;515:13;512:87;;;587:1;580:4;571:6;566:3;562:16;558:27;551:38;512:87;-1:-1:-1;653:2:1;632:15;-1:-1:-1;;628:29:1;619:39;;;;660:4;615:50;;199:472;-1:-1:-1;;199:472:1:o;881:1299::-;952:3;980:4;1014:2;1009:3;1005:12;1044:5;1038:12;1033:3;1026:25;1070:4;1120:2;1113:5;1109:14;1103:21;1154:2;1149;1144:3;1140:12;1133:24;1179:4;1212:12;1206:19;1247:6;1241:4;1234:20;1273:2;1263:12;;1302:2;1297:3;1293:12;1284:21;;1358:2;1348:6;1345:1;1341:14;1336:3;1332:24;1328:33;1402:2;1388:12;1384:21;1370:35;;1423:1;1433:719;1447:6;1444:1;1441:13;1433:719;;;1536:2;1532:7;1526:3;1518:6;1514:16;1510:30;1503:5;1496:45;1570:6;1564:13;1600:4;1645:2;1639:9;1676:2;1668:6;1661:18;1706:50;1752:2;1744:6;1740:15;1724:14;1706:50;:::i;:::-;1803:11;;;1797:18;-1:-1:-1;;;;;1793:44:1;1776:15;;;1769:69;1881:11;;;1875:18;1858:15;;;1851:43;1935:11;;;1929:18;1984:19;;;1967:15;;;1960:44;1929:18;1692:64;-1:-1:-1;2027:41:1;;-1:-1:-1;1692:64:1;1929:18;2027:41;:::i;:::-;2091:15;;;;2128:14;;;;2017:51;-1:-1:-1;;;1469:1:1;1462:9;1433:719;;;-1:-1:-1;2168:6:1;881:1299;-1:-1:-1;;;;;;;;;881:1299:1:o;2185:1236::-;2653:4;2682:3;2712:2;2701:9;2694:21;2738:45;2779:2;2768:9;2764:18;2756:6;2738:45;:::i;:::-;2724:59;;2831:9;2823:6;2819:22;2814:2;2803:9;2799:18;2792:50;2865:33;2891:6;2883;2865:33;:::i;:::-;-1:-1:-1;;;;;2972:15:1;;;2967:2;2952:18;;2945:43;3024:15;;3019:2;3004:18;;2997:43;3071:3;3056:19;;3049:35;;;2925:3;3100:19;;3093:35;;;3159:3;3144:19;;3137:35;;;3203:3;3188:19;;3181:35;;;3260:14;;3253:22;3247:3;3232:19;;3225:51;3313:22;;;3307:3;3292:19;;3285:51;2851:47;-1:-1:-1;3353:62:1;2851:47;3400:6;3353:62;:::i;:::-;3345:70;2185:1236;-1:-1:-1;;;;;;;;;;;;;2185:1236:1:o;3608:348::-;3660:8;3670:6;3724:3;3717:4;3709:6;3705:17;3701:27;3691:55;;3742:1;3739;3732:12;3691:55;-1:-1:-1;3765:20:1;;-1:-1:-1;;;;;3797:30:1;;3794:50;;;3840:1;3837;3830:12;3794:50;3877:4;3869:6;3865:17;3853:29;;3929:3;3922:4;3913:6;3905;3901:19;3897:30;3894:39;3891:59;;;3946:1;3943;3936:12;3891:59;3608:348;;;;;:::o;3961:160::-;4026:20;;4082:13;;4075:21;4065:32;;4055:60;;4111:1;4108;4101:12;4055:60;3961:160;;;:::o;4126:858::-;4233:6;4241;4249;4257;4265;4273;4326:3;4314:9;4305:7;4301:23;4297:33;4294:53;;;4343:1;4340;4333:12;4294:53;4383:9;4370:23;-1:-1:-1;;;;;4453:2:1;4445:6;4442:14;4439:34;;;4469:1;4466;4459:12;4439:34;4508:59;4559:7;4550:6;4539:9;4535:22;4508:59;:::i;:::-;4586:8;;-1:-1:-1;4482:85:1;-1:-1:-1;4674:2:1;4659:18;;4646:32;;-1:-1:-1;4690:16:1;;;4687:36;;;4719:1;4716;4709:12;4687:36;;4758:61;4811:7;4800:8;4789:9;4785:24;4758:61;:::i;:::-;4838:8;;-1:-1:-1;4732:87:1;-1:-1:-1;;4920:2:1;4905:18;;4892:32;;-1:-1:-1;4943:35:1;4974:2;4959:18;;4943:35;:::i;:::-;4933:45;;4126:858;;;;;;;;:::o;4989:435::-;5042:3;5080:5;5074:12;5107:6;5102:3;5095:19;5133:4;5162:2;5157:3;5153:12;5146:19;;5199:2;5192:5;5188:14;5220:1;5230:169;5244:6;5241:1;5238:13;5230:169;;;5305:13;;5293:26;;5339:12;;;;5374:15;;;;5266:1;5259:9;5230:169;;;-1:-1:-1;5415:3:1;;4989:435;-1:-1:-1;;;;;4989:435:1:o;5429:1660::-;5608:2;5597:9;5590:21;5571:4;5646:6;5640:13;5672:6;5714:2;5709;5698:9;5694:18;5687:30;5740:52;5787:3;5776:9;5772:19;5758:12;5740:52;:::i;:::-;5726:66;;5841:2;5833:6;5829:15;5823:22;5868:2;5864:7;5935:2;5923:9;5915:6;5911:22;5907:31;5902:2;5891:9;5887:18;5880:59;5962:41;5996:6;5980:14;5962:41;:::i;:::-;5948:55;;6052:2;6044:6;6040:15;6034:22;6012:44;;6065:54;6115:2;6104:9;6100:18;6084:14;-1:-1:-1;;;;;742:31:1;730:44;;676:104;6065:54;6168:2;6156:15;;6150:22;-1:-1:-1;;;;;742:31:1;;6231:3;6216:19;;730:44;6150:22;-1:-1:-1;6291:3:1;6283:6;6279:16;6273:23;6267:3;6256:9;6252:19;6245:52;6352:3;6344:6;6340:16;6334:23;6328:3;6317:9;6313:19;6306:52;6413:3;6405:6;6401:16;6395:23;6389:3;6378:9;6374:19;6367:52;6456:3;6448:6;6444:16;6438:23;6428:33;;6480:3;6519:2;6514;6503:9;6499:18;6492:30;6571:2;6563:6;6559:15;6553:22;6531:44;;;6594:3;6661:2;6649:9;6641:6;6637:22;6633:31;6628:2;6617:9;6613:18;6606:59;6688:52;6733:6;6717:14;6688:52;:::i;:::-;6674:66;;6789:2;6781:6;6777:15;6771:22;6749:44;;;6812:3;6824:51;6871:2;6860:9;6856:18;6840:14;855:13;848:21;836:34;;785:91;6824:51;6912:15;;6906:22;6968;;;6964:31;;;6944:18;;;6937:59;6906:22;-1:-1:-1;7013:70:1;6972:6;6906:22;7013:70;:::i;:::-;7005:78;5429:1660;-1:-1:-1;;;;;;5429:1660:1:o;7094:127::-;7155:10;7150:3;7146:20;7143:1;7136:31;7186:4;7183:1;7176:15;7210:4;7207:1;7200:15;7226:345;7375:2;7360:18;;7408:1;7397:13;;7387:144;;7453:10;7448:3;7444:20;7441:1;7434:31;7488:4;7485:1;7478:15;7516:4;7513:1;7506:15;7387:144;7540:25;;;7226:345;:::o;7576:173::-;7644:20;;-1:-1:-1;;;;;7693:31:1;;7683:42;;7673:70;;7739:1;7736;7729:12;7754:254;7822:6;7830;7883:2;7871:9;7862:7;7858:23;7854:32;7851:52;;;7899:1;7896;7889:12;7851:52;7935:9;7922:23;7912:33;;7964:38;7998:2;7987:9;7983:18;7964:38;:::i;:::-;7954:48;;7754:254;;;;;:::o;8347:261::-;8526:2;8515:9;8508:21;8489:4;8546:56;8598:2;8587:9;8583:18;8575:6;8546:56;:::i;:::-;8538:64;8347:261;-1:-1:-1;;;8347:261:1:o;8613:186::-;8672:6;8725:2;8713:9;8704:7;8700:23;8696:32;8693:52;;;8741:1;8738;8731:12;8693:52;8764:29;8783:9;8764:29;:::i;8804:127::-;8865:10;8860:3;8856:20;8853:1;8846:31;8896:4;8893:1;8886:15;8920:4;8917:1;8910:15;8936:257;9008:4;9002:11;;;9040:17;;-1:-1:-1;;;;;9072:34:1;;9108:22;;;9069:62;9066:88;;;9134:18;;:::i;:::-;9170:4;9163:24;8936:257;:::o;9198:253::-;9270:2;9264:9;9312:4;9300:17;;-1:-1:-1;;;;;9332:34:1;;9368:22;;;9329:62;9326:88;;;9394:18;;:::i;9456:255::-;9528:2;9522:9;9570:6;9558:19;;-1:-1:-1;;;;;9592:34:1;;9628:22;;;9589:62;9586:88;;;9654:18;;:::i;9716:275::-;9787:2;9781:9;9852:2;9833:13;;-1:-1:-1;;9829:27:1;9817:40;;-1:-1:-1;;;;;9872:34:1;;9908:22;;;9869:62;9866:88;;;9934:18;;:::i;:::-;9970:2;9963:22;9716:275;;-1:-1:-1;9716:275:1:o;9996:407::-;10061:5;-1:-1:-1;;;;;10087:6:1;10084:30;10081:56;;;10117:18;;:::i;:::-;10155:57;10200:2;10179:15;;-1:-1:-1;;10175:29:1;10206:4;10171:40;10155:57;:::i;:::-;10146:66;;10235:6;10228:5;10221:21;10275:3;10266:6;10261:3;10257:16;10254:25;10251:45;;;10292:1;10289;10282:12;10251:45;10341:6;10336:3;10329:4;10322:5;10318:16;10305:43;10395:1;10388:4;10379:6;10372:5;10368:18;10364:29;10357:40;9996:407;;;;;:::o;10408:222::-;10451:5;10504:3;10497:4;10489:6;10485:17;10481:27;10471:55;;10522:1;10519;10512:12;10471:55;10544:80;10620:3;10611:6;10598:20;10591:4;10583:6;10579:17;10544:80;:::i;10635:183::-;10695:4;-1:-1:-1;;;;;10720:6:1;10717:30;10714:56;;;10750:18;;:::i;:::-;-1:-1:-1;10795:1:1;10791:14;10807:4;10787:25;;10635:183::o;10823:662::-;10877:5;10930:3;10923:4;10915:6;10911:17;10907:27;10897:55;;10948:1;10945;10938:12;10897:55;10984:6;10971:20;11010:4;11034:60;11050:43;11090:2;11050:43;:::i;:::-;11034:60;:::i;:::-;11128:15;;;11214:1;11210:10;;;;11198:23;;11194:32;;;11159:12;;;;11238:15;;;11235:35;;;11266:1;11263;11256:12;11235:35;11302:2;11294:6;11290:15;11314:142;11330:6;11325:3;11322:15;11314:142;;;11396:17;;11384:30;;11434:12;;;;11347;;11314:142;;;-1:-1:-1;11474:5:1;10823:662;-1:-1:-1;;;;;;10823:662:1:o;11490:2333::-;11565:5;11595:4;11636:2;11624:9;11619:3;11615:19;11611:28;11608:48;;;11652:1;11649;11642:12;11608:48;11674:22;;:::i;:::-;11665:31;;11732:9;11719:23;11712:5;11705:38;11762:2;11815;11804:9;11800:18;11787:32;-1:-1:-1;;;;;11879:2:1;11871:6;11868:14;11865:34;;;11895:1;11892;11885:12;11865:34;11933:6;11922:9;11918:22;11908:32;;11978:3;11971:4;11967:2;11963:13;11959:23;11949:51;;11996:1;11993;11986:12;11949:51;12032:2;12019:16;12055:60;12071:43;12111:2;12071:43;:::i;12055:60::-;12149:15;;;12231:1;12227:10;;;;12219:19;;12215:28;;;12180:12;;;;12255:15;;;12252:35;;;12283:1;12280;12273:12;12252:35;12315:2;12311;12307:11;12327:1452;12343:6;12338:3;12335:15;12327:1452;;;12429:3;12416:17;12465:2;12452:11;12449:19;12446:109;;;12509:1;12538:2;12534;12527:14;12446:109;12578:20;;12621:4;12649:12;;;-1:-1:-1;;12645:26:1;12641:35;-1:-1:-1;12638:125:1;;;12717:1;12746:2;12742;12735:14;12638:125;12791:22;;:::i;:::-;12863:2;12859;12855:11;12842:25;12896:2;12886:8;12883:16;12880:109;;;12941:1;12971:3;12966;12959:16;12880:109;13018:50;13064:3;13059:2;13048:8;13044:2;13040:17;13036:26;13018:50;:::i;:::-;13009:7;13002:67;;13107:31;13134:2;13130;13126:11;13107:31;:::i;:::-;13089:16;;;13082:57;13163:2;13216:12;;;13203:26;13185:16;;;13178:52;13272:11;;;13259:25;;13300:16;;;13297:109;;;13358:1;13388:3;13383;13376:16;13297:109;13438:8;13434:2;13430:17;13419:28;;13488:3;13483:2;13478:3;13474:12;13470:22;13460:123;;13535:1;13524:12;;13565:3;13560;13553:16;13460:123;13622:81;13699:3;13693:2;13688:3;13684:12;13671:26;13666:2;13661:3;13657:12;13622:81;:::i;:::-;13603:17;;;13596:108;13717:20;;-1:-1:-1;;13757:12:1;;;;12360;;12327:1452;;;12331:3;13811:5;13806:2;13799:5;13795:14;13788:29;;;;;;;;11490:2333;;;;:::o;13828:1929::-;13966:6;13974;14027:2;14015:9;14006:7;14002:23;13998:32;13995:52;;;14043:1;14040;14033:12;13995:52;14083:9;14070:23;-1:-1:-1;;;;;14153:2:1;14145:6;14142:14;14139:34;;;14169:1;14166;14159:12;14139:34;14192:22;;;;14248:6;14230:16;;;14226:29;14223:49;;;14268:1;14265;14258:12;14223:49;14294:22;;:::i;:::-;14354:2;14341:16;14382:2;14372:8;14369:16;14366:36;;;14398:1;14395;14388:12;14366:36;14425:45;14462:7;14451:8;14447:2;14443:17;14425:45;:::i;:::-;14418:5;14411:60;;14517:2;14513;14509:11;14496:25;14546:2;14536:8;14533:16;14530:36;;;14562:1;14559;14552:12;14530:36;14598:45;14635:7;14624:8;14620:2;14616:17;14598:45;:::i;:::-;14593:2;14586:5;14582:14;14575:69;;14676:31;14703:2;14699;14695:11;14676:31;:::i;:::-;14671:2;14664:5;14660:14;14653:55;14740:31;14767:2;14763;14759:11;14740:31;:::i;:::-;14735:2;14728:5;14724:14;14717:55;14826:3;14822:2;14818:12;14805:26;14799:3;14792:5;14788:15;14781:51;14886:3;14882:2;14878:12;14865:26;14859:3;14852:5;14848:15;14841:51;14946:3;14942:2;14938:12;14925:26;14919:3;14912:5;14908:15;14901:51;15006:3;15002:2;14998:12;14985:26;14979:3;14972:5;14968:15;14961:51;15031:3;15080:2;15076;15072:11;15059:25;15109:2;15099:8;15096:16;15093:36;;;15125:1;15122;15115:12;15093:36;15161:56;15209:7;15198:8;15194:2;15190:17;15161:56;:::i;:::-;15156:2;15149:5;15145:14;15138:80;;;15237:3;15272:28;15296:2;15292;15288:11;15272:28;:::i;:::-;15256:14;;;15249:52;15320:3;15361:11;;;15348:25;15385:16;;;15382:36;;;15414:1;15411;15404:12;15382:36;15450:74;15516:7;15505:8;15501:2;15497:17;15450:74;:::i;:::-;15445:2;15438:5;15434:14;15427:98;;;15544:5;15534:15;;;15602:2;15591:9;15587:18;15574:32;15558:48;;15631:2;15621:8;15618:16;15615:36;;;15647:1;15644;15637:12;15615:36;;15670:81;15743:7;15732:8;15721:9;15717:24;15670:81;:::i;:::-;15660:91;;;13828:1929;;;;;:::o;15762:375::-;15833:8;15843:6;15897:3;15890:4;15882:6;15878:17;15874:27;15864:55;;15915:1;15912;15905:12;15864:55;-1:-1:-1;15938:20:1;;-1:-1:-1;;;;;15970:30:1;;15967:50;;;16013:1;16010;16003:12;15967:50;16050:4;16042:6;16038:17;16026:29;;16110:3;16103:4;16093:6;16090:1;16086:14;16078:6;16074:27;16070:38;16067:47;16064:67;;;16127:1;16124;16117:12;16142:1459;16359:6;16367;16375;16383;16391;16399;16407;16415;16468:3;16456:9;16447:7;16443:23;16439:33;16436:53;;;16485:1;16482;16475:12;16436:53;16525:9;16512:23;-1:-1:-1;;;;;16595:2:1;16587:6;16584:14;16581:34;;;16611:1;16608;16601:12;16581:34;16650:78;16720:7;16711:6;16700:9;16696:22;16650:78;:::i;:::-;16747:8;;-1:-1:-1;16624:104:1;-1:-1:-1;16835:2:1;16820:18;;16807:32;;-1:-1:-1;16851:16:1;;;16848:36;;;16880:1;16877;16870:12;16848:36;16919:80;16991:7;16980:8;16969:9;16965:24;16919:80;:::i;:::-;17018:8;;-1:-1:-1;16893:106:1;-1:-1:-1;17106:2:1;17091:18;;17078:32;;-1:-1:-1;17122:16:1;;;17119:36;;;17151:1;17148;17141:12;17119:36;17190:80;17262:7;17251:8;17240:9;17236:24;17190:80;:::i;:::-;17289:8;;-1:-1:-1;17164:106:1;-1:-1:-1;17377:2:1;17362:18;;17349:32;;-1:-1:-1;17393:16:1;;;17390:36;;;17422:1;17419;17412:12;17390:36;;17461:80;17533:7;17522:8;17511:9;17507:24;17461:80;:::i;:::-;16142:1459;;;;-1:-1:-1;16142:1459:1;;-1:-1:-1;16142:1459:1;;;;;;17560:8;-1:-1:-1;;;16142:1459:1:o;17606:319::-;17825:2;17814:9;17807:21;17788:4;17845:74;17915:2;17904:9;17900:18;17892:6;17845:74;:::i;18138:248::-;18206:6;18214;18267:2;18255:9;18246:7;18242:23;18238:32;18235:52;;;18283:1;18280;18273:12;18235:52;-1:-1:-1;;18306:23:1;;;18376:2;18361:18;;;18348:32;;-1:-1:-1;18138:248:1:o;18993:801::-;19153:4;19182:2;19222;19211:9;19207:18;19252:2;19241:9;19234:21;19275:6;19310;19304:13;19341:6;19333;19326:22;19379:2;19368:9;19364:18;19357:25;;19441:2;19431:6;19428:1;19424:14;19413:9;19409:30;19405:39;19391:53;;19479:2;19471:6;19467:15;19500:1;19510:255;19524:6;19521:1;19518:13;19510:255;;;19617:2;19613:7;19601:9;19593:6;19589:22;19585:36;19580:3;19573:49;19645:40;19678:6;19669;19663:13;19645:40;:::i;:::-;19635:50;-1:-1:-1;19743:12:1;;;;19708:15;;;;19546:1;19539:9;19510:255;;;-1:-1:-1;19782:6:1;;18993:801;-1:-1:-1;;;;;;;18993:801:1:o;19799:380::-;19878:1;19874:12;;;;19921;;;19942:61;;19996:4;19988:6;19984:17;19974:27;;19942:61;20049:2;20041:6;20038:14;20018:18;20015:38;20012:161;;;20095:10;20090:3;20086:20;20083:1;20076:31;20130:4;20127:1;20120:15;20158:4;20155:1;20148:15;20012:161;;19799:380;;;:::o;20184:356::-;20386:2;20368:21;;;20405:18;;;20398:30;20464:34;20459:2;20444:18;;20437:62;20531:2;20516:18;;20184:356::o;22592:127::-;22653:10;22648:3;22644:20;22641:1;22634:31;22684:4;22681:1;22674:15;22708:4;22705:1;22698:15;22724:128;22764:3;22795:1;22791:6;22788:1;22785:13;22782:39;;;22801:18;;:::i;:::-;-1:-1:-1;22837:9:1;;22724:128::o;22857:127::-;22918:10;22913:3;22909:20;22906:1;22899:31;22949:4;22946:1;22939:15;22973:4;22970:1;22963:15;22989:135;23028:3;-1:-1:-1;;23049:17:1;;23046:43;;;23069:18;;:::i;:::-;-1:-1:-1;23116:1:1;23105:13;;22989:135::o;24810:184::-;24880:6;24933:2;24921:9;24912:7;24908:23;24904:32;24901:52;;;24949:1;24946;24939:12;24901:52;-1:-1:-1;24972:16:1;;24810:184;-1:-1:-1;24810:184:1:o;25428:1096::-;25630:6;25619:9;25612:25;25593:4;25656:2;25723:1;25719;25714:3;25710:11;25706:19;25698:6;25694:32;25689:2;25678:9;25674:18;25667:60;25763:2;25758;25747:9;25743:18;25736:30;25786:1;25819:6;25813:13;25849:36;25875:9;25849:36;:::i;:::-;25921:6;25916:2;25905:9;25901:18;25894:34;25947:3;25969:1;26001:2;25990:9;25986:18;26018:1;26013:122;;;;26149:1;26144:354;;;;25979:519;;26013:122;-1:-1:-1;;26061:24:1;;26041:18;;;26034:52;26121:3;26106:19;;;-1:-1:-1;26013:122:1;;26144:354;26175:6;26172:1;26165:17;26223:2;26220:1;26210:16;26248:1;26262:180;26276:6;26273:1;26270:13;26262:180;;;26369:14;;26345:17;;;26341:26;;26334:50;26412:16;;;;26291:10;;26262:180;;;26466:17;;26462:26;;;-1:-1:-1;;25979:519:1;-1:-1:-1;26515:3:1;;25428:1096;-1:-1:-1;;;;;;;;;;25428:1096:1:o;26864:522::-;26942:4;26948:6;27008:11;26995:25;27102:2;27098:7;27087:8;27071:14;27067:29;27063:43;27043:18;27039:68;27029:96;;27121:1;27118;27111:12;27029:96;27148:33;;27200:20;;;-1:-1:-1;;;;;;27232:30:1;;27229:50;;;27275:1;27272;27265:12;27229:50;27308:4;27296:17;;-1:-1:-1;27339:14:1;27335:27;;;27325:38;;27322:58;;;27376:1;27373;27366:12;28680:125;28720:4;28748:1;28745;28742:8;28739:34;;;28753:18;;:::i;:::-;-1:-1:-1;28790:9:1;;28680:125::o;31689:811::-;31815:3;31844:1;31877:6;31871:13;31907:36;31933:9;31907:36;:::i;:::-;31962:1;31979:18;;;32006:104;;;;32124:1;32119:356;;;;31972:503;;32006:104;-1:-1:-1;;32039:24:1;;32027:37;;32084:16;;;;-1:-1:-1;32006:104:1;;32119:356;32150:6;32147:1;32140:17;32180:4;32225:2;32222:1;32212:16;32250:1;32264:165;32278:6;32275:1;32272:13;32264:165;;;32356:14;;32343:11;;;32336:35;32399:16;;;;32293:10;;32264:165;;;32268:3;;;32458:6;32453:3;32449:16;32442:23;;31972:503;-1:-1:-1;32491:3:1;;31689:811;-1:-1:-1;;;;;;31689:811:1:o;32505:416::-;32707:2;32689:21;;;32746:2;32726:18;;;32719:30;32785:34;32780:2;32765:18;;32758:62;-1:-1:-1;;;32851:2:1;32836:18;;32829:50;32911:3;32896:19;;32505:416::o

Swarm Source

ipfs://31ef345b9dde6b63f8e12e02969052f0f75ca5b12680b39a25e6df413272bf30
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading