ETH Price: $1,898.03 (-1.77%)
 

Overview

Max Total Supply

10,923.469073317299633465 XPSHP

Holders

100

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
XPSHP

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at basescan.org on 2024-09-20
*/

//
// XPSHP
// Interface: https://payship.org
// Telegram: https://t.me/payship
// Contract: Payship Experience Points Contract
// Jun 2024
//

// /////////////////////////////// //
//                                 //
//  [][][]  []][]  [][]]   [][]]   //
//    []    []     []  []  []  []  //
//    []    []     []  []  [][]]   //
//                                 //
//  DYOR NFA YOLO        TRND.DEV  //
//                                 //
// /////////////////////////////// //

// File: contracts/ERC20Interface.sol

pragma solidity ^0.8.0;

interface ERC20Interface {
    function mint(address usr, uint wad) external;
    function burnFrom(address src, uint wad) external;
    function balanceOf(address usr) external returns (uint);
    function transferFrom(address src, address dst, uint wad) external returns (bool);
}

// Copyright (C) 2024 TRND.DEV

// SPDX-License-Identifier: NO LICENSE
// File: contracts/bPSHP.sol

pragma solidity ^0.8.0;

contract XPSHP {
    bool    public INIT                = false;
    bool    public LOCKED              = false;
    uint    public TIMELOCK;        // = 0;
    uint    public supply;          // = 0;
    uint    public staked;          // = 0;
    uint    public fees;            // = 0;
    uint    public bir                 = 2628000;   // Blocks in 1 Year
    uint    public constant decimals   = 18;
    uint    public constant MAX_INT    = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;

    ERC20Interface public   vsdc;
    address public         _vsdc;
    address public          chest;
    string  public constant name       = "Payship.org XP";
    string  public constant symbol     = "XPSHP";

    event  Lock(address indexed src);
    event  Grace(address indexed src);
    event  Unlock(address indexed src);

    event  Stake(address indexed src);
    event  Unstake(address indexed src);

    event  AddOwner(address indexed src, address indexed usr);
    event  RemoveOwner(address indexed src, address indexed usr);
    event  AddMinter(address indexed src, address indexed usr);
    event  RemoveMinter(address indexed src, address indexed usr);
    event  UpdateChest(address indexed src, address indexed usr);

    event  Approval(address indexed src, address indexed usr, uint wad);
    event  Transfer(address indexed src, address indexed dst, uint wad);

    mapping (address => bool)                       public  owners;
    mapping (address => uint)                       public  blocks;
    mapping (address => bool)                       public  minters;
    mapping (address => uint)                       public  stakers;
    mapping (address => uint)                       public  rewards;
    mapping (address => uint)                       public  bonuses;

    mapping (address => uint)                       public  balance;
    mapping (address => mapping (address => uint))  public  allowance;

    constructor() {
        chest = msg.sender;
        owners[msg.sender] = true;

        if (block.chainid == 1) { // Ethereum Mainnet
            bir = 2628000;
            _vsdc = 0x7a261DB2a61B96de85ac75223AC6D99DE2847edd;
        }
        else if (block.chainid == 11155111) { // Ethereum Sepolia
            bir = 2628000;
            _vsdc = 0xc3dD23A0a854b4f9aE80670f528094E9Eb607CCb;
        }
        else if (block.chainid == 8453) { // Base Mainnet
            bir = 15768000;
            _vsdc = 0xA707634fA35Ac39709A90D57583F5153AA859369;
        }
        else if (block.chainid == 84532) { // Base Sepolia
            bir = 15768000;
            _vsdc = 0xc3dD23A0a854b4f9aE80670f528094E9Eb607CCb;
        }

        vsdc = ERC20Interface(_vsdc);
    }

    function control() internal returns (bool) {
        require((msg.sender == tx.origin) || minters[msg.sender] == true, "Access denied");
        require((blocks[msg.sender] < block.number) || minters[msg.sender] == true, "Block used");

        blocks[msg.sender] = block.number;
        return true;
    }

    function airdrop(address usr, uint wad) private {
        supply += wad;
        balance[usr] += wad;
        
        emit Transfer(address(0), usr, wad);
    }

    function mint(address usr, uint wad) public {
        require(minters[msg.sender] == true);

        supply += wad;
        balance[usr] += wad;

        if (stakers[usr] > 0) {
            staked += wad;
        }
        
        emit Transfer(address(0), usr, wad);
    }

    function stake() public {
        require(control());
        require(stakers[msg.sender] == 0, "Staking already active.");
        stakers[msg.sender] = block.number;
        rewards[msg.sender] = fees;
        staked += balance[msg.sender];

        emit Stake(msg.sender);
    }

    function claimPending() public view returns (uint) {
        uint val = bonuses[msg.sender];
        if (staked > 0) {
            if (balance[msg.sender] < staked) {
              val += ((fees - rewards[msg.sender]) * balance[msg.sender] / staked);
            }
            else {
              val += (fees - rewards[msg.sender]);
            }
        }

        return val;
    }

    function claim() public {
        require(control());
        require(stakers[msg.sender] > 0, "Staking not active.");

        uint val = bonuses[msg.sender];
        if (staked > 0) {
            if (balance[msg.sender] < staked) {
              val += ((fees - rewards[msg.sender]) * balance[msg.sender] / staked);
            }
            else {
              val += (fees - rewards[msg.sender]);
            }
        }

        if (val > 0) {
            vsdc.mint(msg.sender, val);
            rewards[msg.sender] = fees;
            bonuses[msg.sender] = 0;
        }
    }

    function unstake() public {
        require(control());
        require(block.number - stakers[msg.sender] > (bir / 3), "Staking still active. Wait longer."); // 4 months

        claim();
        stakers[msg.sender] = 0;
        if (staked > balance[msg.sender]) {
          staked -= balance[msg.sender];
        }
        else {
          staked = 0;
        }

        emit Unstake(msg.sender);
    }

    function burnFrom(address src, uint wad) public {
        require(minters[msg.sender] == true);
        require(balance[src] >= wad, "No balance");

        if (src != msg.sender && allowance[src][msg.sender] != MAX_INT) {
            require(allowance[src][msg.sender] >= wad, "No allowance");
            allowance[src][msg.sender] -= wad;
        }

        supply -= wad;
        balance[src] -= wad;

        if (stakers[src] > 0) {
            if (staked > wad) {
              staked -= wad;
            }
            else {
              staked = 0;
            }
        }
        
        emit Transfer(src, address(0), wad);
    }

    function collect(uint wad, address ref) public {
        require(minters[msg.sender] == true);

        if (wad >= 4) {
            uint half = (wad / 2);
            uint quarter = (wad / 4);

            fees += half;

            if (ref != address(0) && ref != msg.sender) {
                bonuses[ref] += quarter;
                bonuses[chest] += quarter;
            }
            else {
                bonuses[chest] += half;
            }
        }
    }

    function collect(uint wad) public {
        collect(wad, address(0));
    }

    function rewardsOf(address usr) public view returns (uint) {
        return ((fees - rewards[usr]) * balance[usr] / supply) + bonuses[usr];
    }

    function totalSupply() public view returns (uint) {
        return supply;
    }

    function balanceOf(address usr) public view returns (uint) {
        return balance[usr];
    }

    function approve(address usr, uint wad) public returns (bool) {
        allowance[msg.sender][usr] = wad;

        emit Approval(msg.sender, usr, wad);
        return true;
    }

    function transfer(address dst, uint wad) public returns (bool) {
        require(stakers[msg.sender] == 0, "Staking active.");
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad) public returns (bool) {
        require(balance[src] >= wad, "No balance");
        require(stakers[src] == 0, "Staking active.");

        if (src != msg.sender && allowance[src][msg.sender] != MAX_INT) {
            require(allowance[src][msg.sender] >= wad, "No allowance");
            allowance[src][msg.sender] -= wad;
        }

        balance[src] -= wad;
        balance[dst] += wad;

        emit Transfer(src, dst, wad);
        return true;
    }

    function burn(uint wad) public {
        burnFrom(msg.sender, wad);
    }

    function lock() public {
        require(LOCKED == false, "Lock already active. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        LOCKED = true;
        TIMELOCK = 0;

        emit Lock(msg.sender);
    }
    
    function grace() public {
        require(LOCKED == true, "Lock must be active. Lock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        TIMELOCK = block.timestamp + 7 days;

        emit Grace(msg.sender);
    }

    function unlock() public {
        require(LOCKED == true, "Lock must be active. Lock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");
        require(TIMELOCK < block.timestamp, "Timelock still active. Wait longer.");

        LOCKED = false;

        emit Unlock(msg.sender);
    }
    

    function addOwner(address usr) public {
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        owners[usr] = true;

        emit AddOwner(msg.sender, usr);
    }

    function removeOwner(address usr) public {
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        owners[usr] = false;

        emit RemoveOwner(msg.sender, usr);
    }

    function addMinter(address usr) public {
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        minters[usr] = true;

        emit AddMinter(msg.sender, usr);
    }

    function removeMinter(address usr) public {
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        minters[usr] = false;

        emit RemoveMinter(msg.sender, usr);
    }

    function updateChest(address adr) public {
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        chest = adr;

        emit UpdateChest(msg.sender, adr);
    }

    function init() public {
        require(INIT == false, "Init already called.");
        require(LOCKED == false, "Lock must be inactive. Unlock first.");
        require(owners[msg.sender] == true, "Function available to owners only.");

        airdrop(0xF55d7A2F553Be0bEAEDcE903103a2a13e9b5508C,4526342034*1e12);
        airdrop(0xf0b699A8559A3fFAf72f1525aBe14CebcD1De5Ed,1266205493*1e12);
        airdrop(0xa2f632cc085C3604e080E09812658c5696b1A81f,1120021259*1e12);
        airdrop(0x1727bA5e37209CEE3793b87C49c6E89A6A63B695,826275236*1e12);
        airdrop(0x78B864A7bcE3888460Ae9793B827cE521AC0d7Bf,428599152*1e12);
        airdrop(0xC0a4Cc4fbF2E85963555B3b86ED96b9842c76523,362891926*1e12);
        airdrop(0x6B5e3557d0E06815cb2FDcC62888df896d2eF2f1,359084834*1e12);
        airdrop(0xe8E1696A764A0170aa6505D8c633a955aE32233B,300000000*1e12);
        airdrop(0x06bc3AFC4E030ebA27F6d538BD5d76500691184D,250561963*1e12);
        airdrop(0xfb6DF6Dc12D9006E276D63D6870321269Eff44b1,200000000*1e12);
        airdrop(0xCD4c331A1d29eC2c96Ca8E439005e80C0d15E6a3,197222687*1e12);
        airdrop(0xd05433Ec8910EE00b4FD5222499ee70A5763798C,187268816*1e12);
        airdrop(0x9Dfe88d246B6BD9BfC84Aeee7ba7938441D3f994,153381539*1e12);
        airdrop(0x049A2765b889E7d4529f2FEEE304171fF1BB0568,115554428*1e12);
        airdrop(0xc4f88C35Bd1485C846847C093B5a77a126cf1b05,108350262*1e12);
        airdrop(0x5f303E3d5c220a49FBa3f53E502Eb4abd0Be607A,71637258*1e12);
        airdrop(0x861FEF90b079d581002A73d6B4C2059a62b01711,68927647*1e12);
        airdrop(0xCD6622B78B16ab217809f6089c410442a84869E6,60420463*1e12);
        airdrop(0x59464d45D3dC988a390d4895f049a10CaB5EE7d3,57019567*1e12);
        airdrop(0x7dfF2584757ADd4150210295bD11dba7F72ED8B3,48494869*1e12);
        airdrop(0xd374893F994F81E0AA555b21CF703fF6d8b51B03,40656870*1e12);
        airdrop(0xD0357157fe04f7D6F6D75E45301dDd2264D3CaD6,40000000*1e12);
        airdrop(0x73024F4C577ded086CCf97921c51286F8ed1Ce86,14075717*1e12);
        airdrop(0x901f253Fc9FE429A3FbFb8a0A4a7280Fb2a78b4B,10768052*1e12);
        airdrop(0x8A2D26F44075a3B9f2aE0615a5bbbE6f4d0616cE,9688056*1e12);
        airdrop(0x448a6e3e4C02Df62fc8D9817F9817AdD26d706d0,7020873*1e12);
        airdrop(0x36c1F88c4C1B540A3b5a3f9e8A0cd6F4f134aE42,4720284*1e12);
        airdrop(0x34DB505B2E6D9a5195f0079aD2E36B6D9F5B267B,3298412*1e12);
        airdrop(0x52bbb9C9412bDBf23444498Badd15Bf76E531E66,3193262*1e12);
        airdrop(0xc0Effcf4c6fCf5F37f73F7A311391dd56AC7d9Fe,3162221*1e12);
        airdrop(0xa057d4aBad0cF826fA03f310155a77DCDFceFCf8,3000000*1e12);
        airdrop(0xe2a0FA6B74426DA3c3778AEFA0Ca4C9c8ca863aE,2502559*1e12);
        airdrop(0x95b78c3De524F050717338d6DC67f77f928Bfed1,2406708*1e12);
        airdrop(0x2C826f6D49d58EBFc5E45906be9Eae3Fc7cA71dc,2305291*1e12);
        airdrop(0x35F2E1D3a99C3fd78CD26DB53960833B994448ea,2000000*1e12);
        airdrop(0x2D407dDb06311396fE14D4b49da5F0471447d45C,2000000*1e12);
        airdrop(0x974896E96219Dd508100f2Ad58921290655072aD,2000000*1e12);
        airdrop(0x531D8846Ee2cFf18b98Ff0455ac5F7F28015538d,1850000*1e12);
        airdrop(0x9008D19f58AAbD9eD0D60971565AA8510560ab41,1752364*1e12);
        airdrop(0x5D6c311256c799cB634068DEFc56875cD0F065A7,1663026*1e12);
        airdrop(0x88f7091C4307C5d85E97b5a3f3113BE780093d77,1500000*1e12);
        airdrop(0x1A53a9e4C29FED9cFDb10a70B91B7aC34DEd6956,1146531*1e12);
        airdrop(0x9AAe0e6F5910D003e7cA56716684A400f5FB5a2E,1112953*1e12);
        airdrop(0x2F352Bbb6C074751d0F384Dd1Cc63AAC4aa81872,1015548*1e12);
        airdrop(0xC0BCD6D3ea3D2723c400D8F49788CFb8Eb565c1b,1000000*1e12);
        airdrop(0x95551cf63f5794287AB2aB4ffdb3b07b3Df31702,1000000*1e12);
        airdrop(0x2215AdFC818b090A69A84ae6C453Afa67264fB8d,1000000*1e12);
        airdrop(0x236E3f5d79a03e4a64ff639379Dc23739D140919,1000000*1e12);
        airdrop(0xe42Ff47Bf38701d966ae79Ad7dF1a8Ed6B97A441,985165*1e12);
        airdrop(0xA1ffC697E1916bAbC81Aa97a98a02a8A78735308,903812*1e12);
        airdrop(0x44c00DF0f0986083fd5e6D102A459F23f9da520f,893365*1e12);
        airdrop(0xD0da7989BAFcfEE74aEB400832e1ac45821eB197,768593*1e12);
        airdrop(0x49ED6b5343d7b88170e7Bc65EccC4AB5BA3B1774,553154*1e12);
        airdrop(0x0A0c806D932FAC1c4Bbb4A8A1EC8045E2Ff28545,500000*1e12);
        airdrop(0x4Fe82cF031905f07C9D95b3BF2Ff7675a4d00bd7,500000*1e12);
        airdrop(0xA572e779Bb62de2AFA116E8A4283aC84a3149bC9,500000*1e12);
        airdrop(0x23D3a224F4bc81e03aA5Ed54f240C6343C5Db8a3,474528*1e12);
        airdrop(0xc9C54c13b74dDccDd62052A1FD3CCf4f5B50539A,442408*1e12);
        airdrop(0x6AE33b1600c9Ed2254313f53F15566B7c53b5d1d,433860*1e12);
        airdrop(0x70279891dc0cAdC733413f3c104FB197DF55EdB9,430064*1e12);
        airdrop(0x0f07CAca710368e94dC5bb279210523C4ab16EB9,410000*1e12);
        airdrop(0x9466ebf24B2761FBa6CbFd7F93d306c017325dE7,408535*1e12);
        airdrop(0x4EE64F355b29C4578CBf70585E8e73e2b1eeAcC1,360809*1e12);
        airdrop(0xA5d31a3Ed981eC2fC2b10987Be0dD04Dfc6b8c38,355602*1e12);
        airdrop(0x6E82a63739B30Ec39ae5928FD7f2e3b292623726,345210*1e12);
        airdrop(0x9ad48187123ce43171b9D9DA2EeAB755A568fb0b,316500*1e12);
        airdrop(0xB8F0919480714a15356deF3F04F8E5a2D56498E7,300000*1e12);
        airdrop(0xD8d1d6f7Fad4eBCAEd2b2850dFC45DD93090eEb6,299430*1e12);
        airdrop(0xaD81C90131f4A10f5D324164f4406dC43c962d37,294295*1e12);
        airdrop(0xd834bBD00631460a6fE100574fdDb0628e463316,293301*1e12);
        airdrop(0x2781a0b97FdCc80E7b7CA9bE6eEAF6c4eeCFd13A,290153*1e12);
        airdrop(0x440DfDe237a0940DC3b85A230F2E03f70B463E65,221182*1e12);
        airdrop(0x3015a82638c8714F0C4D47FDD934839e2D1550DB,213670*1e12);
        airdrop(0x524F645F5dbDe7F60a4372B4c303d87917906810,202501*1e12);
        airdrop(0xa8dB9Ba6E8CA63d4D7DC035880e1E9Abde6051C4,200818*1e12);
        airdrop(0x11eDedebF63bef0ea2d2D071bdF88F71543ec6fB,179047*1e12);
        airdrop(0xc9540Ac5e0336910AECAF67Fe86482DD709f291e,177861*1e12);
        airdrop(0x77F83B95cB6081eACbBb3F479b4c206a102daec3,175575*1e12);
        airdrop(0x2e239C61D5a77e7152F26DC4f20D1c314CafABAa,132527*1e12);
        airdrop(0x1202c3892f29e74151448A63fd5d080910aC9a7C,124687*1e12);
        airdrop(0x00a7115685d9d7007360C562C01CE72a1EfB9a24,100000*1e12);
        airdrop(0x9C2514B7A19524e24e48459980aAFF485b3b920d,100000*1e12);
        airdrop(0xe6770b5C8b16cF777c17b0D4e064f11E1C378e30,64686*1e12);
        airdrop(0x8d7EC18D94e680Ec4D6F39d2c8Ef90447AE29cB8,40676*1e12);
        airdrop(0x73282A63F0e3D7e9604575420F777361ecA3C86A,17000*1e12);
        airdrop(0xF2D54033190bbc5a322cb93c7B36c65670D63264,12672*1e12);
        airdrop(0xF74Bf048138a2B8F825ECCaBed9e02E481A0F6C0,10000*1e12);
        airdrop(0x56D9f9113eC1B60DdAa9241d5aEC69587cCc729C,9638*1e12);
        airdrop(0xbA1c0d8447145B6B5367448fC65027898208607c,5903*1e12);
        airdrop(0x4Db4683485A116381E363a6DAf5427d70DAcb68b,2450*1e12);
        airdrop(0x53F4dc9c59443E77275D4e4529a653cEA3721A7d,1084*1e12);
        airdrop(0x9c73AB276E6588764ff185c4B34287205b32Ae6d,1000*1e12);
        airdrop(0x9C4B76B235a82EFd83C0d26D179afDfCeED9E0d7,852*1e12);
        airdrop(0x37866B41703aAd3D2536A2a17e2E520f2B28FDb7,729*1e12);
        airdrop(0xA1a41029ca71cbCf686975f89e773d0f796b2e64,598*1e12);
        airdrop(0x69368e32C148817aCd9FD7dbeBf0a0aF4Df20E51,508*1e12);
        airdrop(0xB086755a5B0b10BD53956936588555f586f5f49d,6*1e12);
        airdrop(0xA6D6A1320fE6e26474b74623d4cDC02BA56073b1,6*1e12);
        airdrop(0x4b14aa5c7b8bF64897902a8480e5A8A01982541d,1*1e12);

        INIT = true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"AddMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"AddOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"}],"name":"Grace","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"RemoveMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"RemoveOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"UpdateChest","type":"event"},{"inputs":[],"name":"INIT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCKED","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_INT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_vsdc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bir","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bonuses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chest","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimPending","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"},{"internalType":"address","name":"ref","type":"address"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"grace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"owners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rewardsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"updateChest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vsdc","outputs":[{"internalType":"contract ERC20Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040525f805461ffff19169055622819a0600555348015610020575f5ffd5b50600880546001600160a01b031916339081179091555f908152600960205260409020805460ff1916600190811790915546900361008a57622819a0600555600780546001600160a01b031916737a261db2a61b96de85ac75223ac6d99de2847edd179055610139565b4662aa36a7036100c657622819a0600555600780546001600160a01b03191673c3dd23a0a854b4f9ae80670f528094e9eb607ccb179055610139565b46612105036101015762f099c0600555600780546001600160a01b03191673a707634fa35ac39709a90d57583f5153aa859369179055610139565b4662014a34036101395762f099c0600555600780546001600160a01b03191673c3dd23a0a854b4f9ae80670f528094e9eb607ccb1790555b600754600680546001600160a01b0319166001600160a01b03909216919091179055612fa0806101685f395ff3fe608060405234801561000f575f5ffd5b50600436106102f9575f3560e01c80635dc78bdb11610192578063a1422f69116100e8578063e1c7392a11610093578063eca5d0ca1161006e578063eca5d0ca14610698578063f46eccc4146106ab578063f83d08ba146106cd575f5ffd5b8063e1c7392a14610665578063e3d670d71461066d578063ea6439141461068c575f5ffd5b8063ce3f865f116100c3578063ce3f865f14610615578063dd62ed3e14610628578063dfbca2c514610652575f5ffd5b8063a1422f69146105e9578063a69df4b5146105fa578063a9059cbb14610602575f5ffd5b80637aadef8b1161014857806395d89b411161012357806395d89b4114610591578063983b2d56146105cd5780639af1d35a146105e0575f5ffd5b80637aadef8b146105565780638d3c100a1461055f5780639168ae7214610572575f5ffd5b80637065cb48116101785780637065cb481461050857806370a082311461051b57806379cc679014610543575f5ffd5b80635dc78bdb146104ec57806364026ac0146104f5575f5ffd5b806318160ddd116102525780633a4b66f1116101fd5780634579985a116101d85780634579985a146104b2578063479ba7ae146104d15780634e71d92d146104e4575f5ffd5b80633a4b66f11461048457806340c10f191461048c57806342966c681461049f575f5ffd5b80632def66201161022d5780632def6620146104615780633092afd514610469578063313ce5671461047c575f5ffd5b806318160ddd1461043e5780631eefddb11461044657806323b872dd1461044e575f5ffd5b80630700037d116102b25780630b76619b1161028d5780630b76619b146103f5578063111ac6a5146103fe578063173825d914610429575f5ffd5b80630700037d146103bb578063095ea7b3146103da578063098d3228146103ed575f5ffd5b80630430fb4b116102e25780630430fb4b1461034a578063047fc9aa1461036957806306fdde0314610372575f5ffd5b8063022914a7146102fd57806303a9f06e14610334575b5f5ffd5b61031f61030b366004612d91565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61033c6106d5565b60405190815260200161032b565b61033c610358366004612d91565b600e6020525f908152604090205481565b61033c60025481565b6103ae6040518060400160405280600e81526020017f506179736869702e6f726720585000000000000000000000000000000000000081525081565b60405161032b9190612daa565b61033c6103c9366004612d91565b600d6020525f908152604090205481565b61031f6103e8366004612dfd565b610774565b61033c5f1981565b61033c60035481565b600754610411906001600160a01b031681565b6040516001600160a01b03909116815260200161032b565b61043c610437366004612d91565b6107df565b005b60025461033c565b61043c6108fe565b61031f61045c366004612e25565b610a04565b61043c610c6c565b61043c610477366004612d91565b610da2565b61033c601281565b61043c610ebc565b61043c61049a366004612dfd565b610f93565b61043c6104ad366004612e5f565b61106d565b61033c6104c0366004612d91565b600a6020525f908152604090205481565b61033c6104df366004612d91565b61107a565b61043c6110d7565b61033c60055481565b600854610411906001600160a01b031681565b61043c610516366004612d91565b61128b565b61033c610529366004612d91565b6001600160a01b03165f908152600f602052604090205490565b61043c610551366004612dfd565b6113a8565b61033c60015481565b61043c61056d366004612e76565b6115e0565b61033c610580366004612d91565b600c6020525f908152604090205481565b6103ae6040518060400160405280600581526020017f585053485000000000000000000000000000000000000000000000000000000081525081565b61043c6105db366004612d91565b6116f5565b61033c60045481565b5f5461031f90610100900460ff1681565b61043c611812565b61031f610610366004612dfd565b611987565b61043c610623366004612e5f565b6119f5565b61033c610636366004612ea0565b601060209081525f928352604080842090915290825290205481565b600654610411906001600160a01b031681565b61043c6119ff565b61033c61067b366004612d91565b600f6020525f908152604090205481565b5f5461031f9060ff1681565b61043c6106a6366004612d91565b6129e2565b61031f6106b9366004612d91565b600b6020525f908152604090205460ff1681565b61043c612b16565b335f908152600e60205260408120546003541561076f57600354335f908152600f6020526040902054101561075357600354335f908152600f6020908152604080832054600d9092529091205460045461072f9190612ef5565b6107399190612f08565b6107439190612f1f565b61074d9082612f57565b92915050565b335f908152600d60205260409020546004546107439190612ef5565b919050565b335f8181526010602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ce9086815260200190565b60405180910390a350600192915050565b5f54610100900460ff16156108475760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b60648201526084015b60405180910390fd5b335f9081526009602052604090205460ff1615156001146108b55760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f81815260096020526040808220805460ff191690555133917fca273b61904dd225d0c1e905343c24040cecad0b4491337492c990845edb525791a350565b5f5460ff61010090910416151560011461095a5760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161083e565b335f9081526009602052604090205460ff1615156001146109c85760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6109d54262093a80612f57565b60015560405133907fc5e07850c92de322c5d3837d34ebac0893a6a21c8846aabf645230ba969b0cd2905f90a2565b6001600160a01b0383165f908152600f6020526040812054821115610a6b5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384165f908152600c602052604090205415610ad05760405162461bcd60e51b815260206004820152600f60248201527f5374616b696e67206163746976652e0000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384163314801590610b0c57506001600160a01b0384165f9081526010602090815260408083203384529091529020545f1914155b15610bbb576001600160a01b0384165f908152601060209081526040808320338452909152902054821115610b835760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384165f90815260106020908152604080832033845290915281208054849290610bb5908490612ef5565b90915550505b6001600160a01b0384165f908152600f602052604081208054849290610be2908490612ef5565b90915550506001600160a01b0383165f908152600f602052604081208054849290610c0e908490612f57565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5a91815260200190565b60405180910390a35060019392505050565b610c74612c3e565b610c7c575f5ffd5b6003600554610c8b9190612f1f565b335f908152600c6020526040902054610ca49043612ef5565b11610d175760405162461bcd60e51b815260206004820152602260248201527f5374616b696e67207374696c6c206163746976652e2057616974206c6f6e676560448201527f722e000000000000000000000000000000000000000000000000000000000000606482015260840161083e565b610d1f6110d7565b335f908152600c60209081526040808320839055600f9091529020546003541115610d7157335f908152600f60205260408120546003805491929091610d66908490612ef5565b90915550610d769050565b5f6003555b60405133907fe5d648ba8f514a64a4104bf6922acc6e04ecab6464b46d696cf123c27079ddd7905f90a2565b5f54610100900460ff1615610e055760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114610e735760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f818152600b6020526040808220805460ff191690555133917fe4a9d76045628f9aac382acca48ced14781d1e98915453a55e277233a6ff7d7c91a350565b610ec4612c3e565b610ecc575f5ffd5b335f908152600c602052604090205415610f285760405162461bcd60e51b815260206004820152601760248201527f5374616b696e6720616c7265616479206163746976652e000000000000000000604482015260640161083e565b335f908152600c60209081526040808320439055600454600d835281842055600f9091528120546003805491929091610f62908490612f57565b909155505060405133907f8c000936ed6cc8b0c4218956860faac1c834b4ec96b46fa995aa58fc097fea16905f90a2565b335f908152600b602052604090205460ff161515600114610fb2575f5ffd5b8060025f828254610fc39190612f57565b90915550506001600160a01b0382165f908152600f602052604081208054839290610fef908490612f57565b90915550506001600160a01b0382165f908152600c602052604090205415611028578060035f8282546110229190612f57565b90915550505b6040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b61107733826113a8565b50565b6001600160a01b0381165f908152600e6020908152604080832054600254600f845282852054600d909452918420546004549193916110b99190612ef5565b6110c39190612f08565b6110cd9190612f1f565b61074d9190612f57565b6110df612c3e565b6110e7575f5ffd5b335f908152600c60205260409020546111425760405162461bcd60e51b815260206004820152601360248201527f5374616b696e67206e6f74206163746976652e00000000000000000000000000604482015260640161083e565b335f908152600e6020526040902054600354156111ea57600354335f908152600f602052604090205410156111c157600354335f908152600f6020908152604080832054600d9092529091205460045461119c9190612ef5565b6111a69190612f08565b6111b09190612f1f565b6111ba9082612f57565b90506111ea565b335f908152600d60205260409020546004546111dd9190612ef5565b6111e79082612f57565b90505b8015611077576006546040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015611252575f5ffd5b505af1158015611264573d5f5f3e3d5ffd5b5050600454335f908152600d6020908152604080832093909355600e905290812055505050565b5f54610100900460ff16156112ee5760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff16151560011461135c5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f81815260096020526040808220805460ff191660011790555133917f91a3131740191cd3eb4fc72bf2cbcd5ab483dcdf168f2307451becc3e5dae55691a350565b335f908152600b602052604090205460ff1615156001146113c7575f5ffd5b6001600160a01b0382165f908152600f602052604090205481111561142e5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b038216331480159061146a57506001600160a01b0382165f9081526010602090815260408083203384529091529020545f1914155b15611519576001600160a01b0382165f9081526010602090815260408083203384529091529020548111156114e15760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0382165f90815260106020908152604080832033845290915281208054839290611513908490612ef5565b90915550505b8060025f82825461152a9190612ef5565b90915550506001600160a01b0382165f908152600f602052604081208054839290611556908490612ef5565b90915550506001600160a01b0382165f908152600c6020526040902054156115a35780600354111561159e578060035f8282546115939190612ef5565b909155506115a39050565b5f6003555b6040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611061565b335f908152600b602052604090205460ff1615156001146115ff575f5ffd5b600482106116f1575f611613600284612f1f565b90505f611621600485612f1f565b90508160045f8282546116349190612f57565b90915550506001600160a01b0383161580159061165a57506001600160a01b0383163314155b156116bf576001600160a01b0383165f908152600e602052604081208054839290611686908490612f57565b90915550506008546001600160a01b03165f908152600e6020526040812080548392906116b4908490612f57565b909155506116ee9050565b6008546001600160a01b03165f908152600e6020526040812080548492906116e8908490612f57565b90915550505b50505b5050565b5f54610100900460ff16156117585760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff1615156001146117c65760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f818152600b6020526040808220805460ff191660011790555133917f6f839fba2116fdb1b5fd547165fb18d0065e3ac6ec8402eaf15cf1c1a61ec79291a350565b5f5460ff61010090910416151560011461186e5760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161083e565b335f9081526009602052604090205460ff1615156001146118dc5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b42600154106119535760405162461bcd60e51b815260206004820152602360248201527f54696d656c6f636b207374696c6c206163746976652e2057616974206c6f6e6760448201527f65722e0000000000000000000000000000000000000000000000000000000000606482015260840161083e565b5f805461ff001916815560405133917f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057291a2565b335f908152600c6020526040812054156119e35760405162461bcd60e51b815260206004820152600f60248201527f5374616b696e67206163746976652e0000000000000000000000000000000000604482015260640161083e565b6119ee338484610a04565b9392505050565b611077815f6115e0565b5f5460ff1615611a515760405162461bcd60e51b815260206004820152601460248201527f496e697420616c72656164792063616c6c65642e000000000000000000000000604482015260640161083e565b5f54610100900460ff1615611ab45760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114611b225760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b611b4973f55d7a2f553be0beaedce903103a2a13e9b5508c68f55f9d4255c9132000612d3e565b611b7073f0b699a8559a3ffaf72f1525abe14cebcd1de5ed6844a421933d415c5000612d3e565b611b9773a2f632cc085c3604e080e09812658c5696b1a81f683cb76ad8eefcc7b000612d3e565b611bbe731727ba5e37209cee3793b87c49c6e89a6a63b695682ccadf5559220e4000612d3e565b611be57378b864a7bce3888460ae9793b827ce521ac0d7bf68173c0211eda9a70000612d3e565b611c0c73c0a4cc4fbf2e85963555b3b86ed96b9842c765236813ac231c035f576000612d3e565b611c33736b5e3557d0e06815cb2fdcc62888df896d2ef2f16813774d9a02901c2000612d3e565b611c5a73e8e1696a764a0170aa6505d8c633a955ae32233b681043561a8829300000612d3e565b611c817306bc3afc4e030eba27f6d538bd5d76500691184d680d953ee9d07791b000612d3e565b611ca873fb6df6dc12d9006e276d63d6870321269eff44b1680ad78ebc5ac6200000612d3e565b611ccf73cd4c331a1d29ec2c96ca8e439005e80c0d15e6a3680ab103bce55b0cf000612d3e565b611cf673d05433ec8910ee00b4fd5222499ee70a5763798c680a26e07bf593fd0000612d3e565b611d1d739dfe88d246b6bd9bfc84aeee7ba7938441d3f99468085098b111fdb93000612d3e565b611d4473049a2765b889e7d4529f2feee304171ff1bb0568680643a3cc084b73c000612d3e565b611d6b73c4f88c35bd1485c846847c093b5a77a126cf1b056805dfa9753986816000612d3e565b611d92735f303e3d5c220a49fba3f53e502eb4abd0be607a6803e22aaa99bd02a000612d3e565b611db973861fef90b079d581002a73d6b4c2059a62b017116803bc9031c08e84f000612d3e565b611de073cd6622b78b16ab217809f6089c410442a84869e6680346809afa27a1f000612d3e565b611e077359464d45d3dc988a390d4895f049a10cab5ee7d36803174e32157995f000612d3e565b611e2e737dff2584757add4150210295bd11dba7f72ed8b36802a100626b2e1a5000612d3e565b611e5573d374893f994f81e0aa555b21cf703ff6d8b51b036802343a37db0d3c6000612d3e565b611e7c73d0357157fe04f7d6f6d75e45301ddd2264d3cad668022b1c8c1227a00000612d3e565b611ea27373024f4c577ded086ccf97921c51286f8ed1ce8667c356fe08ffed5000612d3e565b611ec873901f253fc9fe429a3fbfb8a0a4a7280fb2a78b4b67956fce3e0eef4000612d3e565b611eee738a2d26f44075a3b9f2ae0615a5bbbe6f4d0616ce678672e39a3c178000612d3e565b611f1473448a6e3e4c02df62fc8d9817f9817add26d706d067616f26cb9a219000612d3e565b611f3a7336c1f88c4c1b540a3b5a3f9e8a0cd6f4f134ae42674181d149f2f5c000612d3e565b611f607334db505b2e6d9a5195f0079ad2e36b6d9f5b267b672dc6503cfee2c000612d3e565b611f867352bbb9c9412bdbf23444498badd15bf76e531e66672c50beded0c0e000612d3e565b611fac73c0effcf4c6fcf5f37f73f7a311391dd56ac7d9fe672be2773ece47d000612d3e565b611fd273a057d4abad0cf826fa03f310155a77dcdfcefcf86729a2241af62c0000612d3e565b611ff873e2a0fa6b74426da3c3778aefa0ca4c9c8ca863ae6722bae026c074f000612d3e565b61201e7395b78c3de524f050717338d6dc67f77f928bfed1672166582cba174000612d3e565b612044732c826f6d49d58ebfc5e45906be9eae3fc7ca71dc671ffe09f356e7b000612d3e565b61206a7335f2e1d3a99c3fd78cd26db53960833b994448ea671bc16d674ec80000612d3e565b612090732d407ddb06311396fe14d4b49da5f0471447d45c671bc16d674ec80000612d3e565b6120b673974896e96219dd508100f2ad58921290655072ad671bc16d674ec80000612d3e565b6120dc73531d8846ee2cff18b98ff0455ac5f7f28015538d6719ac8532c2790000612d3e565b612102739008d19f58aabd9ed0d60971565aa8510560ab41671851a5c6092ec000612d3e565b612128735d6c311256c799cb634068defc56875cd0f065a76717144155fe3d2000612d3e565b61214e7388f7091c4307c5d85e97b5a3f3113be780093d776714d1120d7b160000612d3e565b612174731a53a9e4c29fed9cfdb10a70b91b7ac34ded6956670fe94bdeb2f93000612d3e565b61219a739aae0e6f5910d003e7ca56716684a400f5fb5a2e670f7200db58b49000612d3e565b6121c0732f352bbb6c074751d0f384dd1cc63aac4aa81872670e17f386805bc000612d3e565b6121e673c0bcd6d3ea3d2723c400d8f49788cfb8eb565c1b670de0b6b3a7640000612d3e565b61220c7395551cf63f5794287ab2ab4ffdb3b07b3df31702670de0b6b3a7640000612d3e565b612232732215adfc818b090a69a84ae6c453afa67264fb8d670de0b6b3a7640000612d3e565b61225873236e3f5d79a03e4a64ff639379dc23739d140919670de0b6b3a7640000612d3e565b61227e73e42ff47bf38701d966ae79ad7df1a8ed6b97a441670dac02590e25d000612d3e565b6122a473a1ffc697e1916babc81aa97a98a02a8a78735308670c8afc39b3bc4000612d3e565b6122ca7344c00df0f0986083fd5e6d102a459f23f9da520f670c65debbf7c45000612d3e565b6122f073d0da7989bafcfee74aeb400832e1ac45821eb197670aaa9742e5da1000612d3e565b6123167349ed6b5343d7b88170e7bc65eccc4ab5ba3b17746707ad32a1dc162000612d3e565b61233c730a0c806d932fac1c4bbb4a8a1ec8045e2ff285456706f05b59d3b20000612d3e565b612362734fe82cf031905f07c9d95b3bf2ff7675a4d00bd76706f05b59d3b20000612d3e565b61238873a572e779bb62de2afa116e8a4283ac84a3149bc96706f05b59d3b20000612d3e565b6123ae7323d3a224f4bc81e03aa5ed54f240c6343c5db8a3670695dcb3abfa0000612d3e565b6123d473c9c54c13b74ddccdd62052a1fd3ccf4f5b50539a670623bfbb65ca8000612d3e565b6123fa736ae33b1600c9ed2254313f53f15566b7c53b5d1d670605615f0e404000612d3e565b6124207370279891dc0cadc733413f3c104fb197df55edb96705f7e4edeeaf0000612d3e565b612446730f07caca710368e94dc5bb279210523c4ab16eb96705b09cd3e5e90000612d3e565b61246c739466ebf24b2761fba6cbfd7f93d306c017325de76705ab686b01507000612d3e565b612492734ee64f355b29c4578cbf70585e8e73e2b1eeacc1670501d9dfb4c39000612d3e565b6124b873a5d31a3ed981ec2fc2b10987be0dd04dfc6b8c386704ef5a228b6b2000612d3e565b6124de736e82a63739b30ec39ae5928fd7f2e3b2926237266704ca6eaa7ee9a000612d3e565b612504739ad48187123ce43171b9d9da2eeab755a568fb0b6704646f12b7694000612d3e565b61252a73b8f0919480714a15356def3f04f8e5a2d56498e7670429d069189e0000612d3e565b61255073d8d1d6f7fad4ebcaed2b2850dfc45dd93090eeb6670427c9ffa1186000612d3e565b61257673ad81c90131f4a10f5d324164f4406dc43c962d376704158bbe462c7000612d3e565b61259c73d834bbd00631460a6fe100574fddb0628e46331667041203b49d445000612d3e565b6125c2732781a0b97fdcc80e7b7ca9be6eeaf6c4eecfd13a670406d49dbf839000612d3e565b6125e873440dfde237a0940dc3b85a230f2e03f70b463e65670311cbdb6cb5e000612d3e565b61260e733015a82638c8714f0c4d47fdd934839e2d1550db6702f71bbba1286000612d3e565b61263473524f645f5dbde7f60a4372b4c303d879179068106702cf6d962ba95000612d3e565b61265a73a8db9ba6e8ca63d4d7dc035880e1e9abde6051c46702c972e832812000612d3e565b6126807311ededebf63bef0ea2d2d071bdf88f71543ec6fb67027c1a4c41197000612d3e565b6126a673c9540ac5e0336910aecaf67fe86482dd709f291e670277e3a31c655000612d3e565b6126cc7377f83b95cb6081eacbbb3f479b4c206a102daec367026fc48842707000612d3e565b6126f2732e239c61d5a77e7152f26dc4f20d1c314cafabaa6701d6d49ab625f000612d3e565b612718731202c3892f29e74151448a63fd5d080910ac9a7c6701bafa2a771bf000612d3e565b61273d72a7115685d9d7007360c562c01ce72a1efb9a2467016345785d8a0000612d3e565b612763739c2514b7a19524e24e48459980aaff485b3b920d67016345785d8a0000612d3e565b61278873e6770b5c8b16cf777c17b0d4e064f11e1c378e3066e5cf9303f0e000612d3e565b6127ad738d7ec18d94e680ec4d6f39d2c8ef90447ae29cb86690829b42e24000612d3e565b6127d27373282a63f0e3d7e9604575420f777361eca3c86a663c6568f12e8000612d3e565b6127f773f2d54033190bbc5a322cb93c7b36c65670d63264662d051dea980000612d3e565b61281c73f74bf048138a2b8f825eccabed9e02e481a0f6c0662386f26fc10000612d3e565b6128417356d9f9113ec1b60ddaa9241d5aec69587ccc729c66223db5be586000612d3e565b61286673ba1c0d8447145b6b5367448fc65027898208607c6614f8bf4a1bf000612d3e565b61288b734db4683485a116381e363a6daf5427d70dacb68b6608b44313b32000612d3e565b6128b07353f4dc9c59443e77275d4e4529a653cea3721a7d6603d9e46aefc000612d3e565b6128d5739c73ab276e6588764ff185c4b34287205b32ae6d66038d7ea4c68000612d3e565b6128fa739c4b76b235a82efd83c0d26d179afdfceed9e0d7660306e3b5594000612d3e565b61291f7337866b41703aad3d2536a2a17e2e520f2b28fdb7660297058a0a9000612d3e565b61294473a1a41029ca71cbcf686975f89e773d0f796b2e6466021fe0b9936000612d3e565b6129697369368e32c148817acd9fd7dbebf0a0af4df20e516601ce05f78bc000612d3e565b61298d73b086755a5b0b10bd53956936588555f586f5f49d650574fbde6000612d3e565b6129b173a6d6a1320fe6e26474b74623d4cdc02ba56073b1650574fbde6000612d3e565b6129d4734b14aa5c7b8bf64897902a8480e5a8a01982541d64e8d4a51000612d3e565b5f805460ff19166001179055565b5f54610100900460ff1615612a455760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114612ab35760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907f253acb687dee5b5bc82e325d0a17ae0cac7adae681636a357d3f307e9d4ae9d4905f90a350565b5f54610100900460ff1615612b935760405162461bcd60e51b815260206004820152602260248201527f4c6f636b20616c7265616479206163746976652e20556e6c6f636b206669727360448201527f742e000000000000000000000000000000000000000000000000000000000000606482015260840161083e565b335f9081526009602052604090205460ff161515600114612c015760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b5f805461ff001916610100178155600181905560405133917fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91391a2565b5f33321480612c605750335f908152600b602052604090205460ff1615156001145b612cac5760405162461bcd60e51b815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015260640161083e565b335f908152600a6020526040902054431180612cdb5750335f908152600b602052604090205460ff1615156001145b612d275760405162461bcd60e51b815260206004820152600a60248201527f426c6f636b207573656400000000000000000000000000000000000000000000604482015260640161083e565b50335f908152600a60205260409020439055600190565b8060025f828254612d4f9190612f57565b90915550506001600160a01b0382165f908152600f602052604081208054839290611022908490612f57565b80356001600160a01b038116811461076f575f5ffd5b5f60208284031215612da1575f5ffd5b6119ee82612d7b565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f5f60408385031215612e0e575f5ffd5b612e1783612d7b565b946020939093013593505050565b5f5f5f60608486031215612e37575f5ffd5b612e4084612d7b565b9250612e4e60208501612d7b565b929592945050506040919091013590565b5f60208284031215612e6f575f5ffd5b5035919050565b5f5f60408385031215612e87575f5ffd5b82359150612e9760208401612d7b565b90509250929050565b5f5f60408385031215612eb1575f5ffd5b612eba83612d7b565b9150612e9760208401612d7b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561074d5761074d612ec8565b808202811582820484141761074d5761074d612ec8565b5f82612f52577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8082018082111561074d5761074d612ec856fea264697066735822122015946aa6851483a9468df4c0e50bc935da466cbf703ded60bcd5354c76e5f3b164736f6c634300081b0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106102f9575f3560e01c80635dc78bdb11610192578063a1422f69116100e8578063e1c7392a11610093578063eca5d0ca1161006e578063eca5d0ca14610698578063f46eccc4146106ab578063f83d08ba146106cd575f5ffd5b8063e1c7392a14610665578063e3d670d71461066d578063ea6439141461068c575f5ffd5b8063ce3f865f116100c3578063ce3f865f14610615578063dd62ed3e14610628578063dfbca2c514610652575f5ffd5b8063a1422f69146105e9578063a69df4b5146105fa578063a9059cbb14610602575f5ffd5b80637aadef8b1161014857806395d89b411161012357806395d89b4114610591578063983b2d56146105cd5780639af1d35a146105e0575f5ffd5b80637aadef8b146105565780638d3c100a1461055f5780639168ae7214610572575f5ffd5b80637065cb48116101785780637065cb481461050857806370a082311461051b57806379cc679014610543575f5ffd5b80635dc78bdb146104ec57806364026ac0146104f5575f5ffd5b806318160ddd116102525780633a4b66f1116101fd5780634579985a116101d85780634579985a146104b2578063479ba7ae146104d15780634e71d92d146104e4575f5ffd5b80633a4b66f11461048457806340c10f191461048c57806342966c681461049f575f5ffd5b80632def66201161022d5780632def6620146104615780633092afd514610469578063313ce5671461047c575f5ffd5b806318160ddd1461043e5780631eefddb11461044657806323b872dd1461044e575f5ffd5b80630700037d116102b25780630b76619b1161028d5780630b76619b146103f5578063111ac6a5146103fe578063173825d914610429575f5ffd5b80630700037d146103bb578063095ea7b3146103da578063098d3228146103ed575f5ffd5b80630430fb4b116102e25780630430fb4b1461034a578063047fc9aa1461036957806306fdde0314610372575f5ffd5b8063022914a7146102fd57806303a9f06e14610334575b5f5ffd5b61031f61030b366004612d91565b60096020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61033c6106d5565b60405190815260200161032b565b61033c610358366004612d91565b600e6020525f908152604090205481565b61033c60025481565b6103ae6040518060400160405280600e81526020017f506179736869702e6f726720585000000000000000000000000000000000000081525081565b60405161032b9190612daa565b61033c6103c9366004612d91565b600d6020525f908152604090205481565b61031f6103e8366004612dfd565b610774565b61033c5f1981565b61033c60035481565b600754610411906001600160a01b031681565b6040516001600160a01b03909116815260200161032b565b61043c610437366004612d91565b6107df565b005b60025461033c565b61043c6108fe565b61031f61045c366004612e25565b610a04565b61043c610c6c565b61043c610477366004612d91565b610da2565b61033c601281565b61043c610ebc565b61043c61049a366004612dfd565b610f93565b61043c6104ad366004612e5f565b61106d565b61033c6104c0366004612d91565b600a6020525f908152604090205481565b61033c6104df366004612d91565b61107a565b61043c6110d7565b61033c60055481565b600854610411906001600160a01b031681565b61043c610516366004612d91565b61128b565b61033c610529366004612d91565b6001600160a01b03165f908152600f602052604090205490565b61043c610551366004612dfd565b6113a8565b61033c60015481565b61043c61056d366004612e76565b6115e0565b61033c610580366004612d91565b600c6020525f908152604090205481565b6103ae6040518060400160405280600581526020017f585053485000000000000000000000000000000000000000000000000000000081525081565b61043c6105db366004612d91565b6116f5565b61033c60045481565b5f5461031f90610100900460ff1681565b61043c611812565b61031f610610366004612dfd565b611987565b61043c610623366004612e5f565b6119f5565b61033c610636366004612ea0565b601060209081525f928352604080842090915290825290205481565b600654610411906001600160a01b031681565b61043c6119ff565b61033c61067b366004612d91565b600f6020525f908152604090205481565b5f5461031f9060ff1681565b61043c6106a6366004612d91565b6129e2565b61031f6106b9366004612d91565b600b6020525f908152604090205460ff1681565b61043c612b16565b335f908152600e60205260408120546003541561076f57600354335f908152600f6020526040902054101561075357600354335f908152600f6020908152604080832054600d9092529091205460045461072f9190612ef5565b6107399190612f08565b6107439190612f1f565b61074d9082612f57565b92915050565b335f908152600d60205260409020546004546107439190612ef5565b919050565b335f8181526010602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ce9086815260200190565b60405180910390a350600192915050565b5f54610100900460ff16156108475760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b60648201526084015b60405180910390fd5b335f9081526009602052604090205460ff1615156001146108b55760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f81815260096020526040808220805460ff191690555133917fca273b61904dd225d0c1e905343c24040cecad0b4491337492c990845edb525791a350565b5f5460ff61010090910416151560011461095a5760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161083e565b335f9081526009602052604090205460ff1615156001146109c85760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6109d54262093a80612f57565b60015560405133907fc5e07850c92de322c5d3837d34ebac0893a6a21c8846aabf645230ba969b0cd2905f90a2565b6001600160a01b0383165f908152600f6020526040812054821115610a6b5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384165f908152600c602052604090205415610ad05760405162461bcd60e51b815260206004820152600f60248201527f5374616b696e67206163746976652e0000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384163314801590610b0c57506001600160a01b0384165f9081526010602090815260408083203384529091529020545f1914155b15610bbb576001600160a01b0384165f908152601060209081526040808320338452909152902054821115610b835760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0384165f90815260106020908152604080832033845290915281208054849290610bb5908490612ef5565b90915550505b6001600160a01b0384165f908152600f602052604081208054849290610be2908490612ef5565b90915550506001600160a01b0383165f908152600f602052604081208054849290610c0e908490612f57565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5a91815260200190565b60405180910390a35060019392505050565b610c74612c3e565b610c7c575f5ffd5b6003600554610c8b9190612f1f565b335f908152600c6020526040902054610ca49043612ef5565b11610d175760405162461bcd60e51b815260206004820152602260248201527f5374616b696e67207374696c6c206163746976652e2057616974206c6f6e676560448201527f722e000000000000000000000000000000000000000000000000000000000000606482015260840161083e565b610d1f6110d7565b335f908152600c60209081526040808320839055600f9091529020546003541115610d7157335f908152600f60205260408120546003805491929091610d66908490612ef5565b90915550610d769050565b5f6003555b60405133907fe5d648ba8f514a64a4104bf6922acc6e04ecab6464b46d696cf123c27079ddd7905f90a2565b5f54610100900460ff1615610e055760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114610e735760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f818152600b6020526040808220805460ff191690555133917fe4a9d76045628f9aac382acca48ced14781d1e98915453a55e277233a6ff7d7c91a350565b610ec4612c3e565b610ecc575f5ffd5b335f908152600c602052604090205415610f285760405162461bcd60e51b815260206004820152601760248201527f5374616b696e6720616c7265616479206163746976652e000000000000000000604482015260640161083e565b335f908152600c60209081526040808320439055600454600d835281842055600f9091528120546003805491929091610f62908490612f57565b909155505060405133907f8c000936ed6cc8b0c4218956860faac1c834b4ec96b46fa995aa58fc097fea16905f90a2565b335f908152600b602052604090205460ff161515600114610fb2575f5ffd5b8060025f828254610fc39190612f57565b90915550506001600160a01b0382165f908152600f602052604081208054839290610fef908490612f57565b90915550506001600160a01b0382165f908152600c602052604090205415611028578060035f8282546110229190612f57565b90915550505b6040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b61107733826113a8565b50565b6001600160a01b0381165f908152600e6020908152604080832054600254600f845282852054600d909452918420546004549193916110b99190612ef5565b6110c39190612f08565b6110cd9190612f1f565b61074d9190612f57565b6110df612c3e565b6110e7575f5ffd5b335f908152600c60205260409020546111425760405162461bcd60e51b815260206004820152601360248201527f5374616b696e67206e6f74206163746976652e00000000000000000000000000604482015260640161083e565b335f908152600e6020526040902054600354156111ea57600354335f908152600f602052604090205410156111c157600354335f908152600f6020908152604080832054600d9092529091205460045461119c9190612ef5565b6111a69190612f08565b6111b09190612f1f565b6111ba9082612f57565b90506111ea565b335f908152600d60205260409020546004546111dd9190612ef5565b6111e79082612f57565b90505b8015611077576006546040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015611252575f5ffd5b505af1158015611264573d5f5f3e3d5ffd5b5050600454335f908152600d6020908152604080832093909355600e905290812055505050565b5f54610100900460ff16156112ee5760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff16151560011461135c5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f81815260096020526040808220805460ff191660011790555133917f91a3131740191cd3eb4fc72bf2cbcd5ab483dcdf168f2307451becc3e5dae55691a350565b335f908152600b602052604090205460ff1615156001146113c7575f5ffd5b6001600160a01b0382165f908152600f602052604090205481111561142e5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b038216331480159061146a57506001600160a01b0382165f9081526010602090815260408083203384529091529020545f1914155b15611519576001600160a01b0382165f9081526010602090815260408083203384529091529020548111156114e15760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161083e565b6001600160a01b0382165f90815260106020908152604080832033845290915281208054839290611513908490612ef5565b90915550505b8060025f82825461152a9190612ef5565b90915550506001600160a01b0382165f908152600f602052604081208054839290611556908490612ef5565b90915550506001600160a01b0382165f908152600c6020526040902054156115a35780600354111561159e578060035f8282546115939190612ef5565b909155506115a39050565b5f6003555b6040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611061565b335f908152600b602052604090205460ff1615156001146115ff575f5ffd5b600482106116f1575f611613600284612f1f565b90505f611621600485612f1f565b90508160045f8282546116349190612f57565b90915550506001600160a01b0383161580159061165a57506001600160a01b0383163314155b156116bf576001600160a01b0383165f908152600e602052604081208054839290611686908490612f57565b90915550506008546001600160a01b03165f908152600e6020526040812080548392906116b4908490612f57565b909155506116ee9050565b6008546001600160a01b03165f908152600e6020526040812080548492906116e8908490612f57565b90915550505b50505b5050565b5f54610100900460ff16156117585760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff1615156001146117c65760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b6001600160a01b0381165f818152600b6020526040808220805460ff191660011790555133917f6f839fba2116fdb1b5fd547165fb18d0065e3ac6ec8402eaf15cf1c1a61ec79291a350565b5f5460ff61010090910416151560011461186e5760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161083e565b335f9081526009602052604090205460ff1615156001146118dc5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b42600154106119535760405162461bcd60e51b815260206004820152602360248201527f54696d656c6f636b207374696c6c206163746976652e2057616974206c6f6e6760448201527f65722e0000000000000000000000000000000000000000000000000000000000606482015260840161083e565b5f805461ff001916815560405133917f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057291a2565b335f908152600c6020526040812054156119e35760405162461bcd60e51b815260206004820152600f60248201527f5374616b696e67206163746976652e0000000000000000000000000000000000604482015260640161083e565b6119ee338484610a04565b9392505050565b611077815f6115e0565b5f5460ff1615611a515760405162461bcd60e51b815260206004820152601460248201527f496e697420616c72656164792063616c6c65642e000000000000000000000000604482015260640161083e565b5f54610100900460ff1615611ab45760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114611b225760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b611b4973f55d7a2f553be0beaedce903103a2a13e9b5508c68f55f9d4255c9132000612d3e565b611b7073f0b699a8559a3ffaf72f1525abe14cebcd1de5ed6844a421933d415c5000612d3e565b611b9773a2f632cc085c3604e080e09812658c5696b1a81f683cb76ad8eefcc7b000612d3e565b611bbe731727ba5e37209cee3793b87c49c6e89a6a63b695682ccadf5559220e4000612d3e565b611be57378b864a7bce3888460ae9793b827ce521ac0d7bf68173c0211eda9a70000612d3e565b611c0c73c0a4cc4fbf2e85963555b3b86ed96b9842c765236813ac231c035f576000612d3e565b611c33736b5e3557d0e06815cb2fdcc62888df896d2ef2f16813774d9a02901c2000612d3e565b611c5a73e8e1696a764a0170aa6505d8c633a955ae32233b681043561a8829300000612d3e565b611c817306bc3afc4e030eba27f6d538bd5d76500691184d680d953ee9d07791b000612d3e565b611ca873fb6df6dc12d9006e276d63d6870321269eff44b1680ad78ebc5ac6200000612d3e565b611ccf73cd4c331a1d29ec2c96ca8e439005e80c0d15e6a3680ab103bce55b0cf000612d3e565b611cf673d05433ec8910ee00b4fd5222499ee70a5763798c680a26e07bf593fd0000612d3e565b611d1d739dfe88d246b6bd9bfc84aeee7ba7938441d3f99468085098b111fdb93000612d3e565b611d4473049a2765b889e7d4529f2feee304171ff1bb0568680643a3cc084b73c000612d3e565b611d6b73c4f88c35bd1485c846847c093b5a77a126cf1b056805dfa9753986816000612d3e565b611d92735f303e3d5c220a49fba3f53e502eb4abd0be607a6803e22aaa99bd02a000612d3e565b611db973861fef90b079d581002a73d6b4c2059a62b017116803bc9031c08e84f000612d3e565b611de073cd6622b78b16ab217809f6089c410442a84869e6680346809afa27a1f000612d3e565b611e077359464d45d3dc988a390d4895f049a10cab5ee7d36803174e32157995f000612d3e565b611e2e737dff2584757add4150210295bd11dba7f72ed8b36802a100626b2e1a5000612d3e565b611e5573d374893f994f81e0aa555b21cf703ff6d8b51b036802343a37db0d3c6000612d3e565b611e7c73d0357157fe04f7d6f6d75e45301ddd2264d3cad668022b1c8c1227a00000612d3e565b611ea27373024f4c577ded086ccf97921c51286f8ed1ce8667c356fe08ffed5000612d3e565b611ec873901f253fc9fe429a3fbfb8a0a4a7280fb2a78b4b67956fce3e0eef4000612d3e565b611eee738a2d26f44075a3b9f2ae0615a5bbbe6f4d0616ce678672e39a3c178000612d3e565b611f1473448a6e3e4c02df62fc8d9817f9817add26d706d067616f26cb9a219000612d3e565b611f3a7336c1f88c4c1b540a3b5a3f9e8a0cd6f4f134ae42674181d149f2f5c000612d3e565b611f607334db505b2e6d9a5195f0079ad2e36b6d9f5b267b672dc6503cfee2c000612d3e565b611f867352bbb9c9412bdbf23444498badd15bf76e531e66672c50beded0c0e000612d3e565b611fac73c0effcf4c6fcf5f37f73f7a311391dd56ac7d9fe672be2773ece47d000612d3e565b611fd273a057d4abad0cf826fa03f310155a77dcdfcefcf86729a2241af62c0000612d3e565b611ff873e2a0fa6b74426da3c3778aefa0ca4c9c8ca863ae6722bae026c074f000612d3e565b61201e7395b78c3de524f050717338d6dc67f77f928bfed1672166582cba174000612d3e565b612044732c826f6d49d58ebfc5e45906be9eae3fc7ca71dc671ffe09f356e7b000612d3e565b61206a7335f2e1d3a99c3fd78cd26db53960833b994448ea671bc16d674ec80000612d3e565b612090732d407ddb06311396fe14d4b49da5f0471447d45c671bc16d674ec80000612d3e565b6120b673974896e96219dd508100f2ad58921290655072ad671bc16d674ec80000612d3e565b6120dc73531d8846ee2cff18b98ff0455ac5f7f28015538d6719ac8532c2790000612d3e565b612102739008d19f58aabd9ed0d60971565aa8510560ab41671851a5c6092ec000612d3e565b612128735d6c311256c799cb634068defc56875cd0f065a76717144155fe3d2000612d3e565b61214e7388f7091c4307c5d85e97b5a3f3113be780093d776714d1120d7b160000612d3e565b612174731a53a9e4c29fed9cfdb10a70b91b7ac34ded6956670fe94bdeb2f93000612d3e565b61219a739aae0e6f5910d003e7ca56716684a400f5fb5a2e670f7200db58b49000612d3e565b6121c0732f352bbb6c074751d0f384dd1cc63aac4aa81872670e17f386805bc000612d3e565b6121e673c0bcd6d3ea3d2723c400d8f49788cfb8eb565c1b670de0b6b3a7640000612d3e565b61220c7395551cf63f5794287ab2ab4ffdb3b07b3df31702670de0b6b3a7640000612d3e565b612232732215adfc818b090a69a84ae6c453afa67264fb8d670de0b6b3a7640000612d3e565b61225873236e3f5d79a03e4a64ff639379dc23739d140919670de0b6b3a7640000612d3e565b61227e73e42ff47bf38701d966ae79ad7df1a8ed6b97a441670dac02590e25d000612d3e565b6122a473a1ffc697e1916babc81aa97a98a02a8a78735308670c8afc39b3bc4000612d3e565b6122ca7344c00df0f0986083fd5e6d102a459f23f9da520f670c65debbf7c45000612d3e565b6122f073d0da7989bafcfee74aeb400832e1ac45821eb197670aaa9742e5da1000612d3e565b6123167349ed6b5343d7b88170e7bc65eccc4ab5ba3b17746707ad32a1dc162000612d3e565b61233c730a0c806d932fac1c4bbb4a8a1ec8045e2ff285456706f05b59d3b20000612d3e565b612362734fe82cf031905f07c9d95b3bf2ff7675a4d00bd76706f05b59d3b20000612d3e565b61238873a572e779bb62de2afa116e8a4283ac84a3149bc96706f05b59d3b20000612d3e565b6123ae7323d3a224f4bc81e03aa5ed54f240c6343c5db8a3670695dcb3abfa0000612d3e565b6123d473c9c54c13b74ddccdd62052a1fd3ccf4f5b50539a670623bfbb65ca8000612d3e565b6123fa736ae33b1600c9ed2254313f53f15566b7c53b5d1d670605615f0e404000612d3e565b6124207370279891dc0cadc733413f3c104fb197df55edb96705f7e4edeeaf0000612d3e565b612446730f07caca710368e94dc5bb279210523c4ab16eb96705b09cd3e5e90000612d3e565b61246c739466ebf24b2761fba6cbfd7f93d306c017325de76705ab686b01507000612d3e565b612492734ee64f355b29c4578cbf70585e8e73e2b1eeacc1670501d9dfb4c39000612d3e565b6124b873a5d31a3ed981ec2fc2b10987be0dd04dfc6b8c386704ef5a228b6b2000612d3e565b6124de736e82a63739b30ec39ae5928fd7f2e3b2926237266704ca6eaa7ee9a000612d3e565b612504739ad48187123ce43171b9d9da2eeab755a568fb0b6704646f12b7694000612d3e565b61252a73b8f0919480714a15356def3f04f8e5a2d56498e7670429d069189e0000612d3e565b61255073d8d1d6f7fad4ebcaed2b2850dfc45dd93090eeb6670427c9ffa1186000612d3e565b61257673ad81c90131f4a10f5d324164f4406dc43c962d376704158bbe462c7000612d3e565b61259c73d834bbd00631460a6fe100574fddb0628e46331667041203b49d445000612d3e565b6125c2732781a0b97fdcc80e7b7ca9be6eeaf6c4eecfd13a670406d49dbf839000612d3e565b6125e873440dfde237a0940dc3b85a230f2e03f70b463e65670311cbdb6cb5e000612d3e565b61260e733015a82638c8714f0c4d47fdd934839e2d1550db6702f71bbba1286000612d3e565b61263473524f645f5dbde7f60a4372b4c303d879179068106702cf6d962ba95000612d3e565b61265a73a8db9ba6e8ca63d4d7dc035880e1e9abde6051c46702c972e832812000612d3e565b6126807311ededebf63bef0ea2d2d071bdf88f71543ec6fb67027c1a4c41197000612d3e565b6126a673c9540ac5e0336910aecaf67fe86482dd709f291e670277e3a31c655000612d3e565b6126cc7377f83b95cb6081eacbbb3f479b4c206a102daec367026fc48842707000612d3e565b6126f2732e239c61d5a77e7152f26dc4f20d1c314cafabaa6701d6d49ab625f000612d3e565b612718731202c3892f29e74151448a63fd5d080910ac9a7c6701bafa2a771bf000612d3e565b61273d72a7115685d9d7007360c562c01ce72a1efb9a2467016345785d8a0000612d3e565b612763739c2514b7a19524e24e48459980aaff485b3b920d67016345785d8a0000612d3e565b61278873e6770b5c8b16cf777c17b0d4e064f11e1c378e3066e5cf9303f0e000612d3e565b6127ad738d7ec18d94e680ec4d6f39d2c8ef90447ae29cb86690829b42e24000612d3e565b6127d27373282a63f0e3d7e9604575420f777361eca3c86a663c6568f12e8000612d3e565b6127f773f2d54033190bbc5a322cb93c7b36c65670d63264662d051dea980000612d3e565b61281c73f74bf048138a2b8f825eccabed9e02e481a0f6c0662386f26fc10000612d3e565b6128417356d9f9113ec1b60ddaa9241d5aec69587ccc729c66223db5be586000612d3e565b61286673ba1c0d8447145b6b5367448fc65027898208607c6614f8bf4a1bf000612d3e565b61288b734db4683485a116381e363a6daf5427d70dacb68b6608b44313b32000612d3e565b6128b07353f4dc9c59443e77275d4e4529a653cea3721a7d6603d9e46aefc000612d3e565b6128d5739c73ab276e6588764ff185c4b34287205b32ae6d66038d7ea4c68000612d3e565b6128fa739c4b76b235a82efd83c0d26d179afdfceed9e0d7660306e3b5594000612d3e565b61291f7337866b41703aad3d2536a2a17e2e520f2b28fdb7660297058a0a9000612d3e565b61294473a1a41029ca71cbcf686975f89e773d0f796b2e6466021fe0b9936000612d3e565b6129697369368e32c148817acd9fd7dbebf0a0af4df20e516601ce05f78bc000612d3e565b61298d73b086755a5b0b10bd53956936588555f586f5f49d650574fbde6000612d3e565b6129b173a6d6a1320fe6e26474b74623d4cdc02ba56073b1650574fbde6000612d3e565b6129d4734b14aa5c7b8bf64897902a8480e5a8a01982541d64e8d4a51000612d3e565b5f805460ff19166001179055565b5f54610100900460ff1615612a455760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161083e565b335f9081526009602052604090205460ff161515600114612ab35760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907f253acb687dee5b5bc82e325d0a17ae0cac7adae681636a357d3f307e9d4ae9d4905f90a350565b5f54610100900460ff1615612b935760405162461bcd60e51b815260206004820152602260248201527f4c6f636b20616c7265616479206163746976652e20556e6c6f636b206669727360448201527f742e000000000000000000000000000000000000000000000000000000000000606482015260840161083e565b335f9081526009602052604090205460ff161515600114612c015760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161083e565b5f805461ff001916610100178155600181905560405133917fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91391a2565b5f33321480612c605750335f908152600b602052604090205460ff1615156001145b612cac5760405162461bcd60e51b815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015260640161083e565b335f908152600a6020526040902054431180612cdb5750335f908152600b602052604090205460ff1615156001145b612d275760405162461bcd60e51b815260206004820152600a60248201527f426c6f636b207573656400000000000000000000000000000000000000000000604482015260640161083e565b50335f908152600a60205260409020439055600190565b8060025f828254612d4f9190612f57565b90915550506001600160a01b0382165f908152600f602052604081208054839290611022908490612f57565b80356001600160a01b038116811461076f575f5ffd5b5f60208284031215612da1575f5ffd5b6119ee82612d7b565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f5f60408385031215612e0e575f5ffd5b612e1783612d7b565b946020939093013593505050565b5f5f5f60608486031215612e37575f5ffd5b612e4084612d7b565b9250612e4e60208501612d7b565b929592945050506040919091013590565b5f60208284031215612e6f575f5ffd5b5035919050565b5f5f60408385031215612e87575f5ffd5b82359150612e9760208401612d7b565b90509250929050565b5f5f60408385031215612eb1575f5ffd5b612eba83612d7b565b9150612e9760208401612d7b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561074d5761074d612ec8565b808202811582820484141761074d5761074d612ec8565b5f82612f52577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8082018082111561074d5761074d612ec856fea264697066735822122015946aa6851483a9468df4c0e50bc935da466cbf703ded60bcd5354c76e5f3b164736f6c634300081b0033

Deployed Bytecode Sourcemap

997:17940:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2436:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;571:14:1;;564:22;546:41;;534:2;519:18;2436:62:0;;;;;;;;4881:397;;;:::i;:::-;;;744:25:1;;;732:2;717:18;4881:397:0;598:177:1;2784:63:0;;;;;;:::i;:::-;;;;;;;;;;;;;;1162:21;;;;;;1634:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2714:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7917:183;;;;;;:::i;:::-;;:::i;1416:103::-;;-1:-1:-1;;1416:103:0;;1207:21;;;;;;1563:28;;;;;-1:-1:-1;;;;;1563:28:0;;;;;;-1:-1:-1;;;;;1731:55:1;;;1713:74;;1701:2;1686:18;1563:28:0;1567:226:1;10120:286:0;;;;;;:::i;:::-;;:::i;:::-;;7722:82;7790:6;;7722:82;;9207:269;;;:::i;8302:531::-;;;;;;:::i;:::-;;:::i;5895:418::-;;;:::i;10704:289::-;;;;;;:::i;:::-;;:::i;1370:39::-;;1407:2;1370:39;;4584:289;;;:::i;4291:285::-;;;;;;:::i;:::-;;:::i;8841:75::-;;;;;;:::i;:::-;;:::i;2505:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7567:147;;;;;;:::i;:::-;;:::i;5286:601::-;;;:::i;1297:44::-;;;;;;1598:29;;;;;-1:-1:-1;;;;;1598:29:0;;;9833:279;;;;;;:::i;:::-;;:::i;7812:97::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7889:12:0;7865:4;7889:12;;;:7;:12;;;;;;;7812:97;6321:663;;;;;;:::i;:::-;;:::i;1117:23::-;;;;;;6992:482;;;;;;:::i;:::-;;:::i;2644:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1694:44;;;;;;;;;;;;;;;;;;;;;10414:282;;;;;;:::i;:::-;;:::i;1252:19::-;;;;;;1068:42;;;;;;;;;;;;9484:335;;;:::i;8108:186::-;;;;;;:::i;:::-;;:::i;7482:77::-;;;;;;:::i;:::-;;:::i;2926:65::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1528:28;;;;;-1:-1:-1;;;;;1528:28:0;;;11287:7647;;;:::i;2856:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1019:42;;;;;;;;;11001:278;;;;;;:::i;:::-;;:::i;2574:63::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8924:271;;;:::i;4881:397::-;4962:10;4926:4;4954:19;;;:7;:19;;;;;;4988:6;;:10;4984:264;;5041:6;;5027:10;5019:19;;;;:7;:19;;;;;;:28;5015:222;;;5127:6;;5113:10;5105:19;;;;:7;:19;;;;;;;;;5082:7;:19;;;;;;;5075:4;;:26;;5082:19;5075:26;:::i;:::-;5074:50;;;;:::i;:::-;:59;;;;:::i;:::-;5066:68;;;;:::i;:::-;;5267:3;-1:-1:-1;;4881:397:0:o;5015:222::-;5209:10;5201:19;;;;:7;:19;;;;;;5194:4;;:26;;5201:19;5194:26;:::i;5015:222::-;5267:3;4881:397;-1:-1:-1;4881:397:0:o;7917:183::-;8000:10;7973:4;7990:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7990:26:0;;;;;;;;;;:32;;;8040:30;7973:4;;7990:26;;8040:30;;;;8019:3;744:25:1;;732:2;717:18;;598:177;8040:30:0;;;;;;;;-1:-1:-1;8088:4:0;7917:183;;;;:::o;10120:286::-;10180:6;;;;;;;:15;10172:64;;;;-1:-1:-1;;;10172:64:0;;4336:2:1;10172:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;10172:64:0;;;;;;;;;10262:10;10255:18;;;;:6;:18;;;;;;;;:26;;:18;:26;10247:73;;;;-1:-1:-1;;;10247:73:0;;4741:2:1;10247:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;10247:73:0;4539:398:1;10247:73:0;-1:-1:-1;;;;;10333:11:0;;10347:5;10333:11;;;:6;:11;;;;;;:19;;-1:-1:-1;;10333:19:0;;;10370:28;10382:10;;10370:28;;;10120:286;:::o;9207:269::-;9250:6;;;;;;;;:14;;:6;:14;9242:59;;;;-1:-1:-1;;;9242:59:0;;5144:2:1;9242:59:0;;;5126:21:1;;;5163:18;;;5156:30;5222:34;5202:18;;;5195:62;5274:18;;9242:59:0;4942:356:1;9242:59:0;9327:10;9320:18;;;;:6;:18;;;;;;;;:26;;:18;:26;9312:73;;;;-1:-1:-1;;;9312:73:0;;4741:2:1;9312:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;9312:73:0;4539:398:1;9312:73:0;9409:24;:15;9427:6;9409:24;:::i;:::-;9398:8;:35;9451:17;;9457:10;;9451:17;;;;;9207:269::o;8302:531::-;-1:-1:-1;;;;;8401:12:0;;8376:4;8401:12;;;:7;:12;;;;;;:19;-1:-1:-1;8401:19:0;8393:42;;;;-1:-1:-1;;;8393:42:0;;5505:2:1;8393:42:0;;;5487:21:1;5544:2;5524:18;;;5517:30;5583:12;5563:18;;;5556:40;5613:18;;8393:42:0;5303:334:1;8393:42:0;-1:-1:-1;;;;;8454:12:0;;;;;;:7;:12;;;;;;:17;8446:45;;;;-1:-1:-1;;;8446:45:0;;5844:2:1;8446:45:0;;;5826:21:1;5883:2;5863:18;;;5856:30;5922:17;5902:18;;;5895:45;5957:18;;8446:45:0;5642:339:1;8446:45:0;-1:-1:-1;;;;;8508:17:0;;8515:10;8508:17;;;;:58;;-1:-1:-1;;;;;;8529:14:0;;;;;;:9;:14;;;;;;;;8544:10;8529:26;;;;;;;;-1:-1:-1;;8529:37:0;;8508:58;8504:197;;;-1:-1:-1;;;;;8591:14:0;;;;;;:9;:14;;;;;;;;8606:10;8591:26;;;;;;;;:33;-1:-1:-1;8591:33:0;8583:58;;;;-1:-1:-1;;;8583:58:0;;6188:2:1;8583:58:0;;;6170:21:1;6227:2;6207:18;;;6200:30;6266:14;6246:18;;;6239:42;6298:18;;8583:58:0;5986:336:1;8583:58:0;-1:-1:-1;;;;;8656:14:0;;;;;;:9;:14;;;;;;;;8671:10;8656:26;;;;;;;:33;;8686:3;;8656:14;:33;;8686:3;;8656:33;:::i;:::-;;;;-1:-1:-1;;8504:197:0;-1:-1:-1;;;;;8713:12:0;;;;;;:7;:12;;;;;:19;;8729:3;;8713:12;:19;;8729:3;;8713:19;:::i;:::-;;;;-1:-1:-1;;;;;;;8743:12:0;;;;;;:7;:12;;;;;:19;;8759:3;;8743:12;:19;;8759:3;;8743:19;:::i;:::-;;;;;;;;8794:3;-1:-1:-1;;;;;8780:23:0;8789:3;-1:-1:-1;;;;;8780:23:0;;8799:3;8780:23;;;;744:25:1;;732:2;717:18;;598:177;8780:23:0;;;;;;;;-1:-1:-1;8821:4:0;8302:531;;;;;:::o;5895:418::-;5940:9;:7;:9::i;:::-;5932:18;;;;;;6013:1;6007:3;;:7;;;;:::i;:::-;5992:10;5984:19;;;;:7;:19;;;;;;5969:34;;:12;:34;:::i;:::-;:46;5961:93;;;;-1:-1:-1;;;5961:93:0;;6529:2:1;5961:93:0;;;6511:21:1;6568:2;6548:18;;;6541:30;6607:34;6587:18;;;6580:62;6678:4;6658:18;;;6651:32;6700:19;;5961:93:0;6327:398:1;5961:93:0;6079:7;:5;:7::i;:::-;6105:10;6119:1;6097:19;;;:7;:19;;;;;;;;:23;;;6144:7;:19;;;;;;6135:6;;:28;6131:138;;;6196:10;6188:19;;;;:7;:19;;;;;;6178:6;:29;;6188:19;;6178:6;;:29;;6188:19;;6178:29;:::i;:::-;;;;-1:-1:-1;6131:138:0;;-1:-1:-1;6131:138:0;;6256:1;6247:6;:10;6131:138;6286:19;;6294:10;;6286:19;;;;;5895:418::o;10704:289::-;10765:6;;;;;;;:15;10757:64;;;;-1:-1:-1;;;10757:64:0;;4336:2:1;10757:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;10757:64:0;4134:400:1;10757:64:0;10847:10;10840:18;;;;:6;:18;;;;;;;;:26;;:18;:26;10832:73;;;;-1:-1:-1;;;10832:73:0;;4741:2:1;10832:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;10832:73:0;4539:398:1;10832:73:0;-1:-1:-1;;;;;10918:12:0;;10933:5;10918:12;;;:7;:12;;;;;;:20;;-1:-1:-1;;10918:20:0;;;10956:29;10969:10;;10956:29;;;10704:289;:::o;4584:::-;4627:9;:7;:9::i;:::-;4619:18;;;;;;4664:10;4656:19;;;;:7;:19;;;;;;:24;4648:60;;;;-1:-1:-1;;;4648:60:0;;6932:2:1;4648:60:0;;;6914:21:1;6971:2;6951:18;;;6944:30;7010:25;6990:18;;;6983:53;7053:18;;4648:60:0;6730:347:1;4648:60:0;4727:10;4719:19;;;;:7;:19;;;;;;;;4741:12;4719:34;;4786:4;;4764:7;:19;;;;;:26;4811:7;:19;;;;;;4801:6;:29;;4811:19;;4801:6;;:29;;4811:19;;4801:29;:::i;:::-;;;;-1:-1:-1;;4848:17:0;;4854:10;;4848:17;;;;;4584:289::o;4291:285::-;4362:10;4354:19;;;;:7;:19;;;;;;;;:27;;:19;:27;4346:36;;;;;;4405:3;4395:6;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4419:12:0;;;;;;:7;:12;;;;;:19;;4435:3;;4419:12;:19;;4435:3;;4419:19;:::i;:::-;;;;-1:-1:-1;;;;;;;4455:12:0;;4470:1;4455:12;;;:7;:12;;;;;;:16;4451:62;;4498:3;4488:6;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;4451:62:0;4538:30;;744:25:1;;;-1:-1:-1;;;;;4538:30:0;;;4555:1;;4538:30;;732:2:1;717:18;4538:30:0;;;;;;;;4291:285;;:::o;8841:75::-;8883:25;8892:10;8904:3;8883:8;:25::i;:::-;8841:75;:::o;7567:147::-;-1:-1:-1;;;;;7694:12:0;;7620:4;7694:12;;;:7;:12;;;;;;;;;7684:6;;7669:7;:12;;;;;;7653:7;:12;;;;;;;7646:4;;7694:12;;7669;7646:19;;7653:12;7646:19;:::i;:::-;7645:36;;;;:::i;:::-;:45;;;;:::i;:::-;7644:62;;;;:::i;5286:601::-;5329:9;:7;:9::i;:::-;5321:18;;;;;;5366:10;5380:1;5358:19;;;:7;:19;;;;;;5350:55;;;;-1:-1:-1;;;5350:55:0;;7284:2:1;5350:55:0;;;7266:21:1;7323:2;7303:18;;;7296:30;7362:21;7342:18;;;7335:49;7401:18;;5350:55:0;7082:343:1;5350:55:0;5437:10;5418:8;5429:19;;;:7;:19;;;;;;5463:6;;:10;5459:264;;5516:6;;5502:10;5494:19;;;;:7;:19;;;;;;:28;5490:222;;;5602:6;;5588:10;5580:19;;;;:7;:19;;;;;;;;;5557:7;:19;;;;;;;5550:4;;:26;;5557:19;5550:26;:::i;:::-;5549:50;;;;:::i;:::-;:59;;;;:::i;:::-;5541:68;;;;:::i;:::-;;;5490:222;;;5684:10;5676:19;;;;:7;:19;;;;;;5669:4;;:26;;5676:19;5669:26;:::i;:::-;5661:35;;;;:::i;:::-;;;5490:222;5739:7;;5735:145;;5763:4;;:26;;;;;5773:10;5763:26;;;7604:74:1;7694:18;;;7687:34;;;-1:-1:-1;;;;;5763:4:0;;;;:9;;7577:18:1;;5763:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5826:4:0;;5812:10;5804:19;;;;:7;:19;;;;;;;;:26;;;;5845:7;:19;;;;;:23;-1:-1:-1;;5310:577:0;5286:601::o;9833:279::-;9890:6;;;;;;;:15;9882:64;;;;-1:-1:-1;;;9882:64:0;;4336:2:1;9882:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;9882:64:0;4134:400:1;9882:64:0;9972:10;9965:18;;;;:6;:18;;;;;;;;:26;;:18;:26;9957:73;;;;-1:-1:-1;;;9957:73:0;;4741:2:1;9957:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;9957:73:0;4539:398:1;9957:73:0;-1:-1:-1;;;;;10043:11:0;;;;;;:6;:11;;;;;;:18;;-1:-1:-1;;10043:18:0;10057:4;10043:18;;;10079:25;10088:10;;10079:25;;;9833:279;:::o;6321:663::-;6396:10;6388:19;;;;:7;:19;;;;;;;;:27;;:19;:27;6380:36;;;;;;-1:-1:-1;;;;;6435:12:0;;;;;;:7;:12;;;;;;:19;-1:-1:-1;6435:19:0;6427:42;;;;-1:-1:-1;;;6427:42:0;;5505:2:1;6427:42:0;;;5487:21:1;5544:2;5524:18;;;5517:30;5583:12;5563:18;;;5556:40;5613:18;;6427:42:0;5303:334:1;6427:42:0;-1:-1:-1;;;;;6486:17:0;;6493:10;6486:17;;;;:58;;-1:-1:-1;;;;;;6507:14:0;;;;;;:9;:14;;;;;;;;6522:10;6507:26;;;;;;;;-1:-1:-1;;6507:37:0;;6486:58;6482:197;;;-1:-1:-1;;;;;6569:14:0;;;;;;:9;:14;;;;;;;;6584:10;6569:26;;;;;;;;:33;-1:-1:-1;6569:33:0;6561:58;;;;-1:-1:-1;;;6561:58:0;;6188:2:1;6561:58:0;;;6170:21:1;6227:2;6207:18;;;6200:30;6266:14;6246:18;;;6239:42;6298:18;;6561:58:0;5986:336:1;6561:58:0;-1:-1:-1;;;;;6634:14:0;;;;;;:9;:14;;;;;;;;6649:10;6634:26;;;;;;;:33;;6664:3;;6634:14;:33;;6664:3;;6634:33;:::i;:::-;;;;-1:-1:-1;;6482:197:0;6701:3;6691:6;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6715:12:0;;;;;;:7;:12;;;;;:19;;6731:3;;6715:12;:19;;6731:3;;6715:19;:::i;:::-;;;;-1:-1:-1;;;;;;;6751:12:0;;6766:1;6751:12;;;:7;:12;;;;;;:16;6747:174;;6797:3;6788:6;;:12;6784:126;;;6829:3;6819:6;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;6784:126:0;;-1:-1:-1;6784:126:0;;6893:1;6884:6;:10;6784:126;6946:30;;744:25:1;;;6968:1:0;;-1:-1:-1;;;;;6946:30:0;;;;;732:2:1;717:18;6946:30:0;598:177:1;6992:482:0;7066:10;7058:19;;;;:7;:19;;;;;;;;:27;;:19;:27;7050:36;;;;;;7110:1;7103:3;:8;7099:368;;7128:9;7141:7;7147:1;7141:3;:7;:::i;:::-;7128:21;-1:-1:-1;7164:12:0;7180:7;7186:1;7180:3;:7;:::i;:::-;7164:24;;7213:4;7205;;:12;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7238:17:0;;;;;;:38;;-1:-1:-1;;;;;;7259:17:0;;7266:10;7259:17;;7238:38;7234:222;;;-1:-1:-1;;;;;7297:12:0;;;;;;:7;:12;;;;;:23;;7313:7;;7297:12;:23;;7313:7;;7297:23;:::i;:::-;;;;-1:-1:-1;;7347:5:0;;-1:-1:-1;;;;;7347:5:0;7339:14;;;;:7;:14;;;;;:25;;7357:7;;7339:14;:25;;7357:7;;7339:25;:::i;:::-;;;;-1:-1:-1;7234:222:0;;-1:-1:-1;7234:222:0;;7426:5;;-1:-1:-1;;;;;7426:5:0;7418:14;;;;:7;:14;;;;;:22;;7436:4;;7418:14;:22;;7436:4;;7418:22;:::i;:::-;;;;-1:-1:-1;;7234:222:0;7113:354;;7099:368;6992:482;;:::o;10414:282::-;10472:6;;;;;;;:15;10464:64;;;;-1:-1:-1;;;10464:64:0;;4336:2:1;10464:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;10464:64:0;4134:400:1;10464:64:0;10554:10;10547:18;;;;:6;:18;;;;;;;;:26;;:18;:26;10539:73;;;;-1:-1:-1;;;10539:73:0;;4741:2:1;10539:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;10539:73:0;4539:398:1;10539:73:0;-1:-1:-1;;;;;10625:12:0;;;;;;:7;:12;;;;;;:19;;-1:-1:-1;;10625:19:0;10640:4;10625:19;;;10662:26;10672:10;;10662:26;;;10414:282;:::o;9484:335::-;9528:6;;;;;;;;:14;;:6;:14;9520:59;;;;-1:-1:-1;;;9520:59:0;;5144:2:1;9520:59:0;;;5126:21:1;;;5163:18;;;5156:30;5222:34;5202:18;;;5195:62;5274:18;;9520:59:0;4942:356:1;9520:59:0;9605:10;9598:18;;;;:6;:18;;;;;;;;:26;;:18;:26;9590:73;;;;-1:-1:-1;;;9590:73:0;;4741:2:1;9590:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;9590:73:0;4539:398:1;9590:73:0;9693:15;9682:8;;:26;9674:74;;;;-1:-1:-1;;;9674:74:0;;7934:2:1;9674:74:0;;;7916:21:1;7973:2;7953:18;;;7946:30;8012:34;7992:18;;;7985:62;8083:5;8063:18;;;8056:33;8106:19;;9674:74:0;7732:399:1;9674:74:0;9770:5;9761:14;;-1:-1:-1;;9761:14:0;;;9793:18;;9800:10;;9793:18;;;9484:335::o;8108:186::-;8198:10;8165:4;8190:19;;;:7;:19;;;;;;:24;8182:52;;;;-1:-1:-1;;;8182:52:0;;5844:2:1;8182:52:0;;;5826:21:1;5883:2;5863:18;;;5856:30;5922:17;5902:18;;;5895:45;5957:18;;8182:52:0;5642:339:1;8182:52:0;8252:34;8265:10;8277:3;8282;8252:12;:34::i;:::-;8245:41;8108:186;-1:-1:-1;;;8108:186:0:o;7482:77::-;7527:24;7535:3;7548:1;7527:7;:24::i;11287:7647::-;11329:4;;;;:13;11321:46;;;;-1:-1:-1;;;11321:46:0;;8338:2:1;11321:46:0;;;8320:21:1;8377:2;8357:18;;;8350:30;8416:22;8396:18;;;8389:50;8456:18;;11321:46:0;8136:344:1;11321:46:0;11386:6;;;;;;;:15;11378:64;;;;-1:-1:-1;;;11378:64:0;;4336:2:1;11378:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;11378:64:0;4134:400:1;11378:64:0;11468:10;11461:18;;;;:6;:18;;;;;;;;:26;;:18;:26;11453:73;;;;-1:-1:-1;;;11453:73:0;;4741:2:1;11453:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;11453:73:0;4539:398:1;11453:73:0;11539:67;11547:42;11590:15;11539:7;:67::i;:::-;11617;11625:42;11668:15;11617:7;:67::i;:::-;11695;11703:42;11746:15;11695:7;:67::i;:::-;11773:66;11781:42;11824:14;11773:7;:66::i;:::-;11850;11858:42;11901:14;11850:7;:66::i;:::-;11927;11935:42;11978:14;11927:7;:66::i;:::-;12004;12012:42;12055:14;12004:7;:66::i;:::-;12081;12089:42;12132:14;12081:7;:66::i;:::-;12158;12166:42;12209:14;12158:7;:66::i;:::-;12235;12243:42;12286:14;12235:7;:66::i;:::-;12312;12320:42;12363:14;12312:7;:66::i;:::-;12389;12397:42;12440:14;12389:7;:66::i;:::-;12466;12474:42;12517:14;12466:7;:66::i;:::-;12543;12551:42;12594:14;12543:7;:66::i;:::-;12620;12628:42;12671:14;12620:7;:66::i;:::-;12697:65;12705:42;12748:13;12697:7;:65::i;:::-;12773;12781:42;12824:13;12773:7;:65::i;:::-;12849;12857:42;12900:13;12849:7;:65::i;:::-;12925;12933:42;12976:13;12925:7;:65::i;:::-;13001;13009:42;13052:13;13001:7;:65::i;:::-;13077;13085:42;13128:13;13077:7;:65::i;:::-;13153;13161:42;13204:13;13153:7;:65::i;:::-;13229;13237:42;13280:13;13229:7;:65::i;:::-;13305;13313:42;13356:13;13305:7;:65::i;:::-;13381:64;13389:42;13432:12;13381:7;:64::i;:::-;13456;13464:42;13507:12;13456:7;:64::i;:::-;13531;13539:42;13582:12;13531:7;:64::i;:::-;13606;13614:42;13657:12;13606:7;:64::i;:::-;13681;13689:42;13732:12;13681:7;:64::i;:::-;13756;13764:42;13807:12;13756:7;:64::i;:::-;13831;13839:42;13882:12;13831:7;:64::i;:::-;13906;13914:42;13957:12;13906:7;:64::i;:::-;13981;13989:42;14032:12;13981:7;:64::i;:::-;14056;14064:42;14107:12;14056:7;:64::i;:::-;14131;14139:42;14182:12;14131:7;:64::i;:::-;14206;14214:42;14257:12;14206:7;:64::i;:::-;14281;14289:42;14332:12;14281:7;:64::i;:::-;14356;14364:42;14407:12;14356:7;:64::i;:::-;14431;14439:42;14482:12;14431:7;:64::i;:::-;14506;14514:42;14557:12;14506:7;:64::i;:::-;14581;14589:42;14632:12;14581:7;:64::i;:::-;14656;14664:42;14707:12;14656:7;:64::i;:::-;14731;14739:42;14782:12;14731:7;:64::i;:::-;14806;14814:42;14857:12;14806:7;:64::i;:::-;14881;14889:42;14932:12;14881:7;:64::i;:::-;14956;14964:42;15007:12;14956:7;:64::i;:::-;15031;15039:42;15082:12;15031:7;:64::i;:::-;15106;15114:42;15157:12;15106:7;:64::i;:::-;15181:63;15189:42;15232:11;15181:7;:63::i;:::-;15255;15263:42;15306:11;15255:7;:63::i;:::-;15329;15337:42;15380:11;15329:7;:63::i;:::-;15403;15411:42;15454:11;15403:7;:63::i;:::-;15477;15485:42;15528:11;15477:7;:63::i;:::-;15551;15559:42;15602:11;15551:7;:63::i;:::-;15625;15633:42;15676:11;15625:7;:63::i;:::-;15699;15707:42;15750:11;15699:7;:63::i;:::-;15773;15781:42;15824:11;15773:7;:63::i;:::-;15847;15855:42;15898:11;15847:7;:63::i;:::-;15921;15929:42;15972:11;15921:7;:63::i;:::-;15995;16003:42;16046:11;15995:7;:63::i;:::-;16069;16077:42;16120:11;16069:7;:63::i;:::-;16143;16151:42;16194:11;16143:7;:63::i;:::-;16217;16225:42;16268:11;16217:7;:63::i;:::-;16291;16299:42;16342:11;16291:7;:63::i;:::-;16365;16373:42;16416:11;16365:7;:63::i;:::-;16439;16447:42;16490:11;16439:7;:63::i;:::-;16513;16521:42;16564:11;16513:7;:63::i;:::-;16587;16595:42;16638:11;16587:7;:63::i;:::-;16661;16669:42;16712:11;16661:7;:63::i;:::-;16735;16743:42;16786:11;16735:7;:63::i;:::-;16809;16817:42;16860:11;16809:7;:63::i;:::-;16883;16891:42;16934:11;16883:7;:63::i;:::-;16957;16965:42;17008:11;16957:7;:63::i;:::-;17031;17039:42;17082:11;17031:7;:63::i;:::-;17105;17113:42;17156:11;17105:7;:63::i;:::-;17179;17187:42;17230:11;17179:7;:63::i;:::-;17253;17261:42;17304:11;17253:7;:63::i;:::-;17327;17335:42;17378:11;17327:7;:63::i;:::-;17401;17409:42;17452:11;17401:7;:63::i;:::-;17475;17483:42;17526:11;17475:7;:63::i;:::-;17549;17557:42;17600:11;17549:7;:63::i;:::-;17623;17631:42;17674:11;17623:7;:63::i;:::-;17697:62;17705:42;17748:10;17697:7;:62::i;:::-;17770;17778:42;17821:10;17770:7;:62::i;:::-;17843;17851:42;17894:10;17843:7;:62::i;:::-;17916;17924:42;17967:10;17916:7;:62::i;:::-;17989;17997:42;18040:10;17989:7;:62::i;:::-;18062:61;18070:42;18113:9;18062:7;:61::i;:::-;18134;18142:42;18185:9;18134:7;:61::i;:::-;18206;18214:42;18257:9;18206:7;:61::i;:::-;18278;18286:42;18329:9;18278:7;:61::i;:::-;18350;18358:42;18401:9;18350:7;:61::i;:::-;18422:60;18430:42;18473:8;18422:7;:60::i;:::-;18493;18501:42;18544:8;18493:7;:60::i;:::-;18564;18572:42;18615:8;18564:7;:60::i;:::-;18635;18643:42;18686:8;18635:7;:60::i;:::-;18706:58;18714:42;18757:6;18706:7;:58::i;:::-;18775;18783:42;18826:6;18775:7;:58::i;:::-;18844;18852:42;18895:6;18844:7;:58::i;:::-;18915:4;:11;;-1:-1:-1;;18915:11:0;18922:4;18915:11;;;11287:7647::o;11001:278::-;11061:6;;;;;;;:15;11053:64;;;;-1:-1:-1;;;11053:64:0;;4336:2:1;11053:64:0;;;4318:21:1;4375:2;4355:18;;;4348:30;4414:34;4394:18;;;4387:62;-1:-1:-1;;;4465:18:1;;;4458:34;4509:19;;11053:64:0;4134:400:1;11053:64:0;11143:10;11136:18;;;;:6;:18;;;;;;;;:26;;:18;:26;11128:73;;;;-1:-1:-1;;;11128:73:0;;4741:2:1;11128:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;11128:73:0;4539:398:1;11128:73:0;11214:5;:11;;;;-1:-1:-1;;;;;11214:11:0;;;;;;;;11243:28;;11255:10;;11243:28;;-1:-1:-1;;11243:28:0;11001:278;:::o;8924:271::-;8966:6;;;;;;;:15;8958:62;;;;-1:-1:-1;;;8958:62:0;;8687:2:1;8958:62:0;;;8669:21:1;8726:2;8706:18;;;8699:30;8765:34;8745:18;;;8738:62;8836:4;8816:18;;;8809:32;8858:19;;8958:62:0;8485:398:1;8958:62:0;9046:10;9039:18;;;;:6;:18;;;;;;;;:26;;:18;:26;9031:73;;;;-1:-1:-1;;;9031:73:0;;4741:2:1;9031:73:0;;;4723:21:1;4780:2;4760:18;;;4753:30;4819:34;4799:18;;;4792:62;-1:-1:-1;;;4870:18:1;;;4863:32;4912:19;;9031:73:0;4539:398:1;9031:73:0;9117:6;:13;;-1:-1:-1;;9117:13:0;;;;;9126:4;9141:12;;;9171:16;;9176:10;;9171:16;;;8924:271::o;3797:312::-;3834:4;3860:10;3874:9;3860:23;;3859:56;;-1:-1:-1;3896:10:0;3888:19;;;;:7;:19;;;;;;;;:27;;:19;:27;3859:56;3851:82;;;;-1:-1:-1;;;3851:82:0;;9090:2:1;3851:82:0;;;9072:21:1;9129:2;9109:18;;;9102:30;9168:15;9148:18;;;9141:43;9201:18;;3851:82:0;8888:337:1;3851:82:0;3960:10;3953:18;;;;:6;:18;;;;;;3974:12;-1:-1:-1;3953:33:0;3952:66;;-1:-1:-1;3999:10:0;3991:19;;;;:7;:19;;;;;;;;:27;;:19;:27;3952:66;3944:89;;;;-1:-1:-1;;;3944:89:0;;9432:2:1;3944:89:0;;;9414:21:1;9471:2;9451:18;;;9444:30;9510:12;9490:18;;;9483:40;9540:18;;3944:89:0;9230:334:1;3944:89:0;-1:-1:-1;4053:10:0;4046:18;;;;:6;:18;;;;;4067:12;4046:33;;4097:4;;3797:312::o;4117:166::-;4186:3;4176:6;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4200:12:0;;;;;;:7;:12;;;;;:19;;4216:3;;4200:12;:19;;4216:3;;4200:19;:::i;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;215:186;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;780:477::-;929:2;918:9;911:21;892:4;961:6;955:13;1004:6;999:2;988:9;984:18;977:34;1063:6;1058:2;1050:6;1046:15;1041:2;1030:9;1026:18;1020:50;1119:1;1114:2;1105:6;1094:9;1090:22;1086:31;1079:42;1248:2;1178:66;1173:2;1165:6;1161:15;1157:88;1146:9;1142:104;1138:113;1130:121;;;780:477;;;;:::o;1262:300::-;1330:6;1338;1391:2;1379:9;1370:7;1366:23;1362:32;1359:52;;;1407:1;1404;1397:12;1359:52;1430:29;1449:9;1430:29;:::i;:::-;1420:39;1528:2;1513:18;;;;1500:32;;-1:-1:-1;;;1262:300:1:o;1798:374::-;1875:6;1883;1891;1944:2;1932:9;1923:7;1919:23;1915:32;1912:52;;;1960:1;1957;1950:12;1912:52;1983:29;2002:9;1983:29;:::i;:::-;1973:39;;2031:38;2065:2;2054:9;2050:18;2031:38;:::i;:::-;1798:374;;2021:48;;-1:-1:-1;;;2138:2:1;2123:18;;;;2110:32;;1798:374::o;2177:226::-;2236:6;2289:2;2277:9;2268:7;2264:23;2260:32;2257:52;;;2305:1;2302;2295:12;2257:52;-1:-1:-1;2350:23:1;;2177:226;-1:-1:-1;2177:226:1:o;2408:300::-;2476:6;2484;2537:2;2525:9;2516:7;2512:23;2508:32;2505:52;;;2553:1;2550;2543:12;2505:52;2598:23;;;-1:-1:-1;2664:38:1;2698:2;2683:18;;2664:38;:::i;:::-;2654:48;;2408:300;;;;;:::o;2713:260::-;2781:6;2789;2842:2;2830:9;2821:7;2817:23;2813:32;2810:52;;;2858:1;2855;2848:12;2810:52;2881:29;2900:9;2881:29;:::i;:::-;2871:39;;2929:38;2963:2;2952:9;2948:18;2929:38;:::i;3230:184::-;3282:77;3279:1;3272:88;3379:4;3376:1;3369:15;3403:4;3400:1;3393:15;3419:128;3486:9;;;3507:11;;;3504:37;;;3521:18;;:::i;3552:168::-;3625:9;;;3656;;3673:15;;;3667:22;;3653:37;3643:71;;3694:18;;:::i;3725:274::-;3765:1;3791;3781:189;;3826:77;3823:1;3816:88;3927:4;3924:1;3917:15;3955:4;3952:1;3945:15;3781:189;-1:-1:-1;3984:9:1;;3725:274::o;4004:125::-;4069:9;;;4090:10;;;4087:36;;;4103:18;;:::i

Swarm Source

ipfs://15946aa6851483a9468df4c0e50bc935da466cbf703ded60bcd5354c76e5f3b1
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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