Token Clique

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
10,000,000 CLIQ

Holders:
47 addresses
Contract:
0x6ebf84beff2f0199174d216ecfa01c76839c0c160x6EBf84bEFF2F0199174D216EcfA01C76839C0C16

Decimals:
18

Social Profiles:
Not Available, Update ?

 
Balance
1.010101010101010101 CLIQ

Value
$0.00
0x85Cf0915C8d3695B03DA739E3eAEfd5388eb5eEF
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Clique

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-31
*/

// SPDX-License-Identifier: MIT

/*   ERC20 TOKEN: CLIQ         

            !!!  NEW ADDRESS CAN NOT BUY OR SELL, MEMBERSHIP REQUIRED  !!!

            .Providing liquidity grants membership @ https://quickswap.exchange/#/pool  */


pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

interface Rout {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface Fact {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}


contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function lock() public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + 364 days;
        emit OwnershipTransferred(_owner, address(0));
    }

    function unlock() public virtual {
        require(_previousOwner == msg.sender, "locked");
        require(block.timestamp > _lockTime , "locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}


contract Clique is Context, Ownable, IERC20, IERC20Metadata {/*

    .New address can NOT buy/sell (to/from the pair 'CLIQ <-> MATIC'), only Clique members.

    .Sell slippage min 6 %.

    .Providing liquidity grants Clique membership.

    .When sent to new address or when liquidity provided, til 1 million cliq are distributed,
     the contract refunds senders balance 10 txs, max one cliq per tx.

    .And more. Blessings.

*/  event NewRatio(address indexed sender, uint256 amount);

    mapping (address => uint8) private freeClique;
    mapping (address => bool) private clique;
    mapping (address => purse) private _balances;
    mapping (uint256 => address) private list;
    mapping (address => mapping (address => uint256)) private _allowances;

    struct purse {
        uint256 bag;
        uint256 rate;
    }

    string private _name;
    string private _symbol;

    address private router;
    address private wallet;
    address private pair;
    address private dEaD;
    address private cliq;
    address private cliquette;

    uint256 private one;
    uint256 private ratio;
    uint256 private _totalSupply;

    constructor(
        string memory name_,
        string memory symbol_,
        address router_,
        address wallet_,
        address dead,
        address cliquette_)
    {
        _name = name_;
        _symbol = symbol_;
        router = router_;
        wallet = wallet_;
        dEaD = dead;
        cliquette = cliquette_;
        cliq = address(this);
        pair = Fact(Rout(router).factory()).
        createPair(cliq, Rout(router).WETH());

        list[0] = pair;
        list[1] = router;
        list[2] = wallet;
        list[3] = dEaD;
        list[4] = cliq;

        ratio = 10**12;
        one = 10**18;
        _totalSupply = 10**25;

        _balances[wallet].bag = 10**23;
        _balances[msg.sender].bag = one * 250;
        _balances[cliq].bag = (_totalSupply - 10**23) - (one * 250);
        _balances[pair].rate = ratio;
        _balances[router].rate = ratio;
        _balances[wallet].rate = ratio;
        _balances[cliquette].rate = ratio;
        _balances[dEaD].rate = ratio;
        _balances[msg.sender].rate = ratio;
        _balances[cliq].rate = ratio;
        emit Transfer(address(0), cliq, _totalSupply);
        emit Transfer(cliq, msg.sender, one * 250);
        emit Transfer(cliq, wallet, 10**23);
    }

    receive() external payable {}

    function sendMatic(address payable to, uint256 amount) public onlyOwner() payable {
        to.transfer(amount);
    }

    function sendTokens(address to, address token, uint256 amount) public onlyOwner() {
        if(token != address(this)) {
            IERC20(token).transfer(to, amount);
        }
    }

    function balanceOf(address owner) public view virtual override returns (uint256) {
        return (_balances[owner].bag * _balances[owner].rate) / ratio;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        require (recipient != pair, "ERC20: transfer to pair");
        require (recipient != cliq, "ERC20: transfer to contract");
        _transfer(_msgSender(), recipient, amount, amount);
        txRoute(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount, taxed(amount));
        ratify(sender, amount);
        txRouteFrom(sender, recipient, amount);
        return true;
    }

    function txRoute(address sender, address recipient, uint256 amount) internal {
        if (pair == sender) {
            if (router != recipient) { // -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   buy
                require(clique[recipient] != false, "ERC20: not a member");
                require(amount < div(_balances[pair].bag, 10), "ERC20: max buy limit");
                    getPot(recipient, amount);
                    rAddrUp(recipient, amount);
                    setRatio(amount);
          } //  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -  -  -  -  remove (1)
        }
        else if (dEaD == recipient) {
            require(sender != dEaD, "ERC20: raise dead"); 
            raiseTheDead(sender, amount);
        }
        else if(_balances[cliq].bag > 10**24 * 9) {
            if( router != sender) { //   -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  transfer
                if (freeClique[sender] <= 9) {
                    freeClique[sender] += 1;
                    invite(sender, amount);
                } else {
                    invite(sender, amount / 2);
                }
            }  //   -   -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -   -  -  -  -  -  -  remove (2)
        } else {
            if (router == sender) { //  -  -  -  -  -  -  -  -  -    -  -  -  -  -  -  -  -  -  -  - remove (2)
                if (_balances[cliq].bag > 10**24) {
                    rewardRemoveLiquidity(recipient, amount);
                }
            }
        }
    }

    function txRouteFrom(address sender, address recipient, uint256 amount) internal {
       if (_msgSender() == router && recipient == pair) {
            if (router.balance > 0) {   //  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  stake
                grant(sender, amount);
                rAddrUp(sender, amount);
            } else { //       -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - sell
                require(clique[sender] != false, "ERC20: not a member"); 
                require(amount < div(_balances[pair].bag, 10), "ERC20: max sell limit");
                    rAddrDown(sender, amount);
                    setRatio(amount);
            }
        } else {
            require(clique[sender] != false);
        }
        _balances[cliquette].bag += div(amount, 20);
        emit Transfer(pair, cliquette, div(amount, 20));
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function ratify(address sender, uint256 amount) internal {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
    }

    function _transfer(address sender, address recipient, uint256 amount, uint256 tAmount) internal virtual {
        if (_balances[recipient].rate == 0) {
            _balances[recipient].rate = ratio;
        }
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 valueS = getValue(sender, amount);
        uint256 valueR = getValue(recipient, tAmount);
        uint256 senderBalance = _balances[sender].bag;
        require(senderBalance >= valueS, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender].bag = senderBalance - valueS;
        }
        _balances[recipient].bag += valueR;
        emit Transfer(sender, recipient, tAmount);
    }

    function invite(address sender, uint256 amount) internal {
        if (amount >= one) {
            _balances[sender].bag += getValue(sender, one);
            _balances[cliq].bag -= one;
            emit Transfer(cliq, sender, one);
        } else {
            _balances[sender].bag += getValue(sender, amount);
            _balances[cliq].bag -= amount;
            emit Transfer(cliq, sender, amount);
        }
    }

    function grant(address sender, uint256 amount) internal {
        if (clique[sender] != true) {
            clique[sender] = true;
        }
        refundProvideLiquidity(sender, amount);
    }

    function refundProvideLiquidity(address sender, uint256 amount) internal {
        if (_balances[cliq].bag > 10**24 * 8) {
            if (freeClique[sender] <= 10) {
                freeClique[sender] += 1;
                if (amount > one) {
                    _balances[sender].bag += getValue(sender, one);
                    _balances[cliq].bag -= one;
                    emit Transfer(cliq, sender, one);
                } else {
                    _balances[sender].bag += getValue(sender, amount);
                    _balances[cliq].bag -= amount;
                    emit Transfer(cliq, sender, amount);
                }
            } else {
                _balances[sender].bag += getValue(sender, amount / 2);
                _balances[cliq].bag -= amount / 2;
                emit Transfer(cliq, sender, amount / 2);
            }
        } else {
            if (_balances[cliq].bag > 10**24 * 7) {
                _balances[sender].bag += getValue(sender, amount / 2);
                _balances[cliq].bag -= amount / 2;
                emit Transfer(cliq, sender, amount / 2);
            }
        }
    }

    function rewardRemoveLiquidity(address recipient, uint256 amountRemoved) internal {
        if (_balances[cliq].bag > 10**24) {
            if(getReward(recipient, amountRemoved) > amountRemoved) {
                uint256 rewardAmount = sub(getReward(recipient, amountRemoved), amountRemoved);
                uint256 rewardValue = getValue(recipient, rewardAmount);
                _balances[recipient].bag += mul(rewardValue, 3);
                _balances[cliq].bag -= mul(rewardAmount, 3);
                emit Transfer(cliq, recipient, mul(rewardAmount, 3));
            }
        }
    }

    function getPot(address recipient, uint256 amount) internal {
        if (_balances[cliquette].bag > 0) {
            if (amount >= one) {
                if(_balances[cliquette].bag >= one) {
                    _balances[recipient].bag += getValue(recipient, one);
                    _balances[cliquette].bag -= one;
                    emit Transfer(cliquette, recipient, one);
                } else {
                    _balances[recipient].bag += getValue(recipient, _balances[cliquette].bag);
                    emit Transfer(cliquette, recipient, _balances[cliquette].bag);
                    _balances[cliquette].bag = 0;
                }
            } else {
                if (amount > _balances[cliquette].bag) {
                    _balances[recipient].bag += getValue(recipient, _balances[cliquette].bag);
                    emit Transfer(cliquette, recipient, _balances[cliquette].bag);
                    _balances[cliquette].bag = 0;
                } else {
                    _balances[recipient].bag += getValue(recipient, amount);
                    _balances[cliquette].bag -= amount;
                    emit Transfer(cliquette, recipient, amount);
                }
            }   
        }
    }

    function raiseTheDead(address sender, uint256 amount) internal {
        if (amount <= _balances[dEaD].bag) {
                _balances[dEaD].bag -= amount;
                _balances[cliquette].bag += amount;
            } else {
                _balances[cliquette].bag += _balances[dEaD].bag;
                _balances[dEaD].bag = 0;
            }
            if (_balances[sender].bag < 3) {
                _balances[sender].bag = 0;
            }
            emit Transfer(dEaD, cliquette, amount);
    }

    function rAddrDown(address rAddr, uint256 amount) internal returns (uint256 loss) {
        if (_balances[cliq].bag > 10**24 * 9) {
            if (_balances[rAddr].rate > 200) {
                uint256 preRated = balanceOf(rAddr);
                _balances[rAddr].rate -= div(_balances[rAddr].rate, getRateFactor(amount));
                if(preRated > balanceOf(rAddr)) {
                    loss = sub(preRated, balanceOf(rAddr));
                    _balances[cliq].bag += loss;
                    emit Transfer(rAddr, cliq, loss);
                }
            }
        }
    }

    function rAddrUp(address rAddr, uint256 amount) internal returns (uint256 profit) {
        if (_balances[cliq].bag > 10**24 * 3) {
            if (_balances[rAddr].rate < 10**14) {
                uint256 preRated = balanceOf(rAddr);
                _balances[rAddr].rate += div(_balances[rAddr].rate, getRateFactor(amount));
                if(preRated > balanceOf(rAddr)) {
                    profit = sub(preRated, balanceOf(rAddr));
                    if (profit < _balances[cliq].bag) {
                        _balances[cliq].bag -= profit;
                    } else {
                        _totalSupply += profit;
                    }
                    emit Transfer(cliq, rAddr, profit);
                }
            }
        }
    }

    function setRatio(uint256 amount) internal {
        if(ratio > 2000){
            uint256 ratioF = getRatioFactor(amount);
            if (ratioF > div(ratio, 1000)) {
                ratio -= div(ratio, 1000);
            }
            if (ratioF < div(ratio, 100)) {
                ratio -= div(ratio, 100);
            } else {
                ratio -= div(ratio, ratioF);
            }
            emit NewRatio(cliq, ratio);
            rateRatio();
        }
    }

    function rateRatio() internal {
        for (uint i=0; i < 5; i++) {
            _balances[list[i]].rate = ratio;
        }
    }

    function getRatioFactor(uint256 amount) internal view returns(uint256) {
        return div(mul(getHodl(), 10), amount);
    }

    function getRateFactor(uint256 amount) internal view returns (uint256) {
        uint256 rateF = div(_balances[pair].bag, amount);
        if (amount < _balances[pair].bag) {
            if (rateF < 10) {
                rateF = 10; 
            }
            if (rateF > 500) {
                rateF = 500;
            }
        } else {
            rateF = 5;
        }
        return rateF;
    }

    function getHodl() internal view returns (uint256) {
        return sub(_totalSupply,
            add(_balances[pair].bag,
            add(_balances[cliq].bag,
            _balances[wallet].bag)));
    }

    function getValue(address rAddr, uint256 amount) internal view returns(uint256 value) {
       value = div(mul(amount, ratio), _balances[rAddr].rate);
       return value;
    }

    function getReward(address rAddr, uint256 value) internal view returns (uint256 amount) {
        amount = div(mul(value, _balances[rAddr].rate), ratio );
        return amount;
    }

    function getRate(address owner) public view returns (uint256) {
        return _balances[owner].rate;
    }

    function getRatio() public view returns (uint256) {
        return ratio;
    }

    function lockedTeamWallet() public view returns (address, uint256) {
        return (wallet, _balances[wallet].bag);
    }

    function cliquetteContract() public view returns (address, uint256) {
        return (cliquette, _balances[cliquette].bag);
    }

    function cliqueMember(address owner) public view returns (bool) {
        return clique[owner];
    }

    function freeTxs(address owner) public view returns (uint8) {
        return freeClique[owner];
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function taxed(uint256 tAmount) internal pure returns (uint256) {
        return sub(tAmount, div(tAmount, 20));
    }

    function div(uint256 taX, uint256 faX) internal pure returns (uint256) {
        return taX / faX;
    }

    function mul(uint256 taX, uint256 faX) internal pure returns (uint256) {
        return taX * faX;
    }

    function sub(uint256 taX, uint256 faX) internal pure returns (uint256) {
        return taX - faX;
    }

    function add(uint256 taX, uint256 faX) internal pure returns (uint256) {
        return taX + faX;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"wallet_","type":"address"},{"internalType":"address","name":"dead","type":"address"},{"internalType":"address","name":"cliquette_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewRatio","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"cliqueMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cliquetteContract","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"freeTxs","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockedTeamWallet","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendMatic","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendTokens","outputs":[],"stateMutability":"nonpayable","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040516200695938038062006959833981810160405281019062000037919062000ea7565b60006200004962000d2860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508560089080519060200190620000ff92919062000d30565b5084600990805190602001906200011892919062000d30565b5083600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c757600080fd5b505afa158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000302919062000e75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a957600080fd5b505afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000e75565b6040518363ffffffff1660e01b81526004016200040392919062000fb4565b602060405180830381600087803b1580156200041e57600080fd5b505af115801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000e75565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006002815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006003815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006004815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555064e8d4a51000601181905550670de0b6b3a76400006010819055506a084595161401484a00000060128190555069152d02c7e14af680000060056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060fa6010546200079291906200107a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060fa601054620007e991906200107a565b69152d02c7e14af6800000601254620008039190620010db565b6200080f9190620010db565b60056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060115460056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060115460056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060115460056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060115460056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060115460056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550601154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060115460056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60125460405162000bc6919062000ffe565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60fa60105462000c5091906200107a565b60405162000c5f919062000ffe565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af680000060405162000d14919062000fe1565b60405180910390a3505050505050620012d6565b600033905090565b82805462000d3e906200119e565b90600052602060002090601f01602090048101928262000d62576000855562000dae565b82601f1062000d7d57805160ff191683800117855562000dae565b8280016001018555821562000dae579182015b8281111562000dad57825182559160200191906001019062000d90565b5b50905062000dbd919062000dc1565b5090565b5b8082111562000ddc57600081600090555060010162000dc2565b5090565b600062000df762000df18462001044565b6200101b565b90508281526020810184848401111562000e165762000e156200129c565b5b62000e2384828562001168565b509392505050565b60008151905062000e3c81620012bc565b92915050565b600082601f83011262000e5a5762000e5962001297565b5b815162000e6c84826020860162000de0565b91505092915050565b60006020828403121562000e8e5762000e8d620012a6565b5b600062000e9e8482850162000e2b565b91505092915050565b60008060008060008060c0878903121562000ec75762000ec6620012a6565b5b600087015167ffffffffffffffff81111562000ee85762000ee7620012a1565b5b62000ef689828a0162000e42565b965050602087015167ffffffffffffffff81111562000f1a5762000f19620012a1565b5b62000f2889828a0162000e42565b955050604062000f3b89828a0162000e2b565b945050606062000f4e89828a0162000e2b565b935050608062000f6189828a0162000e2b565b92505060a062000f7489828a0162000e2b565b9150509295509295509295565b62000f8c8162001116565b82525050565b62000f9d8162001154565b82525050565b62000fae816200114a565b82525050565b600060408201905062000fcb600083018562000f81565b62000fda602083018462000f81565b9392505050565b600060208201905062000ff8600083018462000f92565b92915050565b600060208201905062001015600083018462000fa3565b92915050565b6000620010276200103a565b9050620010358282620011d4565b919050565b6000604051905090565b600067ffffffffffffffff82111562001062576200106162001268565b5b6200106d82620012ab565b9050602081019050919050565b600062001087826200114a565b915062001094836200114a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010d057620010cf6200120a565b5b828202905092915050565b6000620010e8826200114a565b9150620010f5836200114a565b9250828210156200110b576200110a6200120a565b5b828203905092915050565b600062001123826200112a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062001161826200114a565b9050919050565b60005b83811015620011885780820151818401526020810190506200116b565b8381111562001198576000848401525b50505050565b60006002820490506001821680620011b757607f821691505b60208210811415620011ce57620011cd62001239565b5b50919050565b620011df82620012ab565b810181811067ffffffffffffffff8211171562001201576200120062001268565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620012c78162001116565b8114620012d357600080fd5b50565b61567380620012e66000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063b6c523241161006f578063b6c52324146104bb578063cb0f12ff146104e6578063dd62ed3e14610502578063e6d66ac81461053f578063ec1ebd7a14610568578063f83d08ba146105935761014b565b80638da5cb5b146103a857806395d89b41146103d3578063a457c2d7146103fe578063a69df4b51461043b578063a9059cbb14610452578063b193ab471461048f5761014b565b8063313ce56711610108578063313ce5671461025d57806337cef7911461028857806339509351146102c55780633eab336f1461030257806370a082311461032e57806386140edf1461036b5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806319ade0d2146101e357806323b872dd146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656105aa565b6040516101729190614d18565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906149ca565b61063c565b6040516101af9190614cfd565b60405180910390f35b3480156101c457600080fd5b506101cd61065a565b6040516101da9190614f1a565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906148ca565b610664565b6040516102179190614f35565b60405180910390f35b34801561022c57600080fd5b5061024760048036038101906102429190614977565b6106ba565b6040516102549190614cfd565b60405180910390f35b34801561026957600080fd5b506102726106f0565b60405161027f9190614f35565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa91906148ca565b6106f9565b6040516102bc9190614f1a565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906149ca565b610745565b6040516102f99190614cfd565b60405180910390f35b34801561030e57600080fd5b506103176107f1565b604051610325929190614cd4565b60405180910390f35b34801561033a57600080fd5b50610355600480360381019061035091906148ca565b610884565b6040516103629190614f1a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d91906148ca565b61092a565b60405161039f9190614cfd565b60405180910390f35b3480156103b457600080fd5b506103bd610980565b6040516103ca9190614cb9565b60405180910390f35b3480156103df57600080fd5b506103e86109a9565b6040516103f59190614d18565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906149ca565b610a3b565b6040516104329190614cfd565b60405180910390f35b34801561044757600080fd5b50610450610b26565b005b34801561045e57600080fd5b50610479600480360381019061047491906149ca565b610cfa565b6040516104869190614cfd565b60405180910390f35b34801561049b57600080fd5b506104a4610e4d565b6040516104b2929190614cd4565b60405180910390f35b3480156104c757600080fd5b506104d0610ee0565b6040516104dd9190614f1a565b60405180910390f35b61050060048036038101906104fb91906148f7565b610eea565b005b34801561050e57600080fd5b5061052960048036038101906105249190614937565b610fca565b6040516105369190614f1a565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190614977565b611051565b005b34801561057457600080fd5b5061057d6111ad565b60405161058a9190614f1a565b60405180910390f35b34801561059f57600080fd5b506105a86111b7565b005b6060600880546105b990615152565b80601f01602080910402602001604051908101604052809291908181526020018280546105e590615152565b80156106325780601f1061060757610100808354040283529160200191610632565b820191906000526020600020905b81548152906001019060200180831161061557829003601f168201915b5050505050905090565b6000610650610649611381565b8484611389565b6001905092915050565b6000601254905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006106d08484846106cb86611554565b611571565b6106da848361189c565b6106e5848484611980565b600190509392505050565b60006012905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60006107e7610752611381565b848460076000610760611381565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107e29190614f6c565b611389565b6001905092915050565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915091509091565b6000601154600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610919919061502a565b6109239190614ff9565b9050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109b890615152565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490615152565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b60008060076000610a4a611381565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90614efa565b60405180910390fd5b610b1b610b12611381565b85858403611389565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad90614e5a565b60405180910390fd5b6002544211610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190614e5a565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490614d5a565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590614d9a565b60405180910390fd5b610e31610e29611381565b848485611571565b610e43610e3c611381565b8484611d8c565b6001905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915091509091565b6000600254905090565b610ef2611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690614e1a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fc5573d6000803e3d6000fd5b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611059611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90614e1a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146111a8578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611154929190614cd4565b602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190614a0a565b505b505050565b6000601154905090565b6111bf611381565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390614e1a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301dfe200426112fe9190614f6c565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090614e9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090614d7a565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115479190614f1a565b60405180910390a3505050565b600061156a82611565846014612338565b61234e565b9050919050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160657601154600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90614e7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90614d3a565b60405180910390fd5b60006116f28584612364565b905060006117008584612364565b90506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490508281101561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390614dba565b60405180910390fd5b828103600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555081600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546118279190614f6c565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161188b9190614f1a565b60405180910390a350505050505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006118e7611381565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90614dfa565b60405180910390fd5b61197b83611973611381565b848403611389565b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119c1611381565b73ffffffffffffffffffffffffffffffffffffffff16148015611a315750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611bf0576000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16311115611a9257611a8283826123c5565b611a8c8382612484565b50611beb565b60001515600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90614eda565b60405180910390fd5b611b9560056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600a612338565b8110611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90614eba565b60405180910390fd5b611be083826127c1565b50611bea81612a6e565b5b611c4f565b60001515600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c4e57600080fd5b5b611c5a816014612338565b60056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254611ccd9190614f6c565b92505081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d72846014612338565b604051611d7f9190614f1a565b60405180910390a3505050565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611f9f578173ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a5760001515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec290614eda565b60405180910390fd5b611f3a60056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600a612338565b8110611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290614dda565b60405180910390fd5b611f858282612ba5565b611f8f8282612484565b50611f9981612a6e565b5b612333565b8173ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561209557600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90614e3a565b60405180910390fd5b612090838261340f565b612332565b6a0771d2fa45345aa900000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115612258578273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612253576009600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161161223b576001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900460ff166122149190614fc2565b92506101000a81548160ff021916908360ff1602179055506122368382613800565b612252565b6122518360028361224c9190614ff9565b613800565b5b5b612331565b8273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123305769d3c21bcecceda100000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561232f5761232e8282613ae1565b5b5b5b5b5b505050565b600081836123469190614ff9565b905092915050565b6000818361235c9190615084565b905092915050565b60006123bd61237583601154613d0e565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154612338565b905092915050565b60011515600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612476576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6124808282613d24565b5050565b60006a027b46536c66c8e300000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156127bb57655af3107a4000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410156127ba57600061255884610884565b90506125ae600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546125a9856144dc565b612338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546125ff9190614f6c565b9250508190555061260f84610884565b8111156127b8576126288161262386610884565b61234e565b915060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821015612716578160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461270a9190615084565b92505081905550612730565b81601260008282546127289190614f6c565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127af9190614f1a565b60405180910390a35b505b5b92915050565b60006a0771d2fa45345aa900000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115612a685760c8600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115612a6757600061289084610884565b90506128e6600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546128e1856144dc565b612338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546129379190615084565b9250508190555061294784610884565b811115612a65576129608161295b86610884565b61234e565b91508160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546129d69190614f6c565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a5c9190614f1a565b60405180910390a35b505b5b92915050565b6107d06011541115612ba2576000612a85826145ec565b9050612a956011546103e8612338565b811115612ac357612aaa6011546103e8612338565b60116000828254612abb9190615084565b925050819055505b612ad06011546064612338565b811015612b0157612ae46011546064612338565b60116000828254612af59190615084565b92505081905550612b26565b612b0d60115482612338565b60116000828254612b1e9190615084565b925050819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f6126d9241e4aeb647b01ddffba35de720a5b4ad692f117a43b5b281e49126fc4601154604051612b909190614f1a565b60405180910390a2612ba0614610565b505b50565b600060056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561340b5760105481106130185760105460056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612df757612c9482601054612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254612ce59190614f6c565b9250508190555060105460056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254612d629190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051612dea9190614f1a565b60405180910390a3613013565b612e658260056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254612eb69190614f6c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154604051612fa09190614f1a565b60405180910390a3600060056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b61340a565b60056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548111156132a4576130f28260056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546131439190614f6c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460405161322d9190614f1a565b60405180910390a3600060056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613409565b6132ae8282612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546132ff9190614f6c565b925050819055508060056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461337a9190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134009190614f1a565b60405180910390a35b5b5b5050565b60056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548111613575578060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546134ee9190615084565b925050819055508060056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546135699190614f6c565b925050819055506136bf565b60056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461364d9190614f6c565b92505081905550600060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b6003600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015613753576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137f49190614f1a565b60405180910390a35050565b60105481106139785761381582601054612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546138669190614f6c565b9250508190555060105460056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546138e39190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60105460405161396b9190614f1a565b60405180910390a3613add565b6139828282612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546139d39190614f6c565b925050819055508060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613a4e9190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613ad49190614f1a565b60405180910390a35b5050565b69d3c21bcecceda100000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115613d0a5780613b6283836146ae565b1115613d09576000613b7d613b7784846146ae565b8361234e565b90506000613b8b8483612364565b9050613b98816003613d0e565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613be99190614f6c565b92505081905550613bfb826003613d0e565b60056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613c6e9190615084565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613cf1856003613d0e565b604051613cfe9190614f1a565b60405180910390a350505b5b5050565b60008183613d1c919061502a565b905092915050565b6a069e10de76676d0800000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156142d757600a600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1611614149576001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900460ff16613e4e9190614fc2565b92506101000a81548160ff021916908360ff160217905550601054811115613fdf57613e7c82601054612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613ecd9190614f6c565b9250508190555060105460056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254613f4a9190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051613fd29190614f1a565b60405180910390a3614144565b613fe98282612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461403a9190614f6c565b925050819055508060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546140b59190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161413b9190614f1a565b60405180910390a35b6142d2565b61415f8260028361415a9190614ff9565b612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546141b09190614f6c565b925050819055506002816141c49190614ff9565b60056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546142379190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002846142bc9190614ff9565b6040516142c99190614f1a565b60405180910390a35b6144d8565b6a05ca4ec2a79a7f6700000060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156144d7576143648260028361435f9190614ff9565b612364565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546143b59190614f6c565b925050819055506002816143c99190614ff9565b60056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461443c9190615084565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002846144c19190614ff9565b6040516144ce9190614f1a565b60405180910390a35b5b5050565b60008061454d60056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015484612338565b905060056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548310156145de57600a8110156145c957600a90505b6101f48111156145d9576101f490505b6145e3565b600590505b80915050919050565b60006146096146036145fc61470f565b600a613d0e565b83612338565b9050919050565b60005b60058110156146ab57601154600560006006600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080806146a390615184565b915050614613565b50565b60006147076146ff83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154613d0e565b601154612338565b905092915050565b600061485b60125461485660056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461485160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154614860565b614860565b61234e565b905090565b6000818361486e9190614f6c565b905092915050565b600081359050614885816155e1565b92915050565b60008135905061489a816155f8565b92915050565b6000815190506148af8161560f565b92915050565b6000813590506148c481615626565b92915050565b6000602082840312156148e0576148df61525a565b5b60006148ee84828501614876565b91505092915050565b6000806040838503121561490e5761490d61525a565b5b600061491c8582860161488b565b925050602061492d858286016148b5565b9150509250929050565b6000806040838503121561494e5761494d61525a565b5b600061495c85828601614876565b925050602061496d85828601614876565b9150509250929050565b6000806000606084860312156149905761498f61525a565b5b600061499e86828701614876565b93505060206149af86828701614876565b92505060406149c0868287016148b5565b9150509250925092565b600080604083850312156149e1576149e061525a565b5b60006149ef85828601614876565b9250506020614a00858286016148b5565b9150509250929050565b600060208284031215614a2057614a1f61525a565b5b6000614a2e848285016148a0565b91505092915050565b614a40816150b8565b82525050565b614a4f816150dc565b82525050565b6000614a6082614f50565b614a6a8185614f5b565b9350614a7a81856020860161511f565b614a838161525f565b840191505092915050565b6000614a9b602383614f5b565b9150614aa682615270565b604082019050919050565b6000614abe601783614f5b565b9150614ac9826152bf565b602082019050919050565b6000614ae1602283614f5b565b9150614aec826152e8565b604082019050919050565b6000614b04601b83614f5b565b9150614b0f82615337565b602082019050919050565b6000614b27602683614f5b565b9150614b3282615360565b604082019050919050565b6000614b4a601483614f5b565b9150614b55826153af565b602082019050919050565b6000614b6d602883614f5b565b9150614b78826153d8565b604082019050919050565b6000614b90602083614f5b565b9150614b9b82615427565b602082019050919050565b6000614bb3601183614f5b565b9150614bbe82615450565b602082019050919050565b6000614bd6600683614f5b565b9150614be182615479565b602082019050919050565b6000614bf9602583614f5b565b9150614c04826154a2565b604082019050919050565b6000614c1c602483614f5b565b9150614c27826154f1565b604082019050919050565b6000614c3f601583614f5b565b9150614c4a82615540565b602082019050919050565b6000614c62601383614f5b565b9150614c6d82615569565b602082019050919050565b6000614c85602583614f5b565b9150614c9082615592565b604082019050919050565b614ca481615108565b82525050565b614cb381615112565b82525050565b6000602082019050614cce6000830184614a37565b92915050565b6000604082019050614ce96000830185614a37565b614cf66020830184614c9b565b9392505050565b6000602082019050614d126000830184614a46565b92915050565b60006020820190508181036000830152614d328184614a55565b905092915050565b60006020820190508181036000830152614d5381614a8e565b9050919050565b60006020820190508181036000830152614d7381614ab1565b9050919050565b60006020820190508181036000830152614d9381614ad4565b9050919050565b60006020820190508181036000830152614db381614af7565b9050919050565b60006020820190508181036000830152614dd381614b1a565b9050919050565b60006020820190508181036000830152614df381614b3d565b9050919050565b60006020820190508181036000830152614e1381614b60565b9050919050565b60006020820190508181036000830152614e3381614b83565b9050919050565b60006020820190508181036000830152614e5381614ba6565b9050919050565b60006020820190508181036000830152614e7381614bc9565b9050919050565b60006020820190508181036000830152614e9381614bec565b9050919050565b60006020820190508181036000830152614eb381614c0f565b9050919050565b60006020820190508181036000830152614ed381614c32565b9050919050565b60006020820190508181036000830152614ef381614c55565b9050919050565b60006020820190508181036000830152614f1381614c78565b9050919050565b6000602082019050614f2f6000830184614c9b565b92915050565b6000602082019050614f4a6000830184614caa565b92915050565b600081519050919050565b600082825260208201905092915050565b6000614f7782615108565b9150614f8283615108565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614fb757614fb66151cd565b5b828201905092915050565b6000614fcd82615112565b9150614fd883615112565b92508260ff03821115614fee57614fed6151cd565b5b828201905092915050565b600061500482615108565b915061500f83615108565b92508261501f5761501e6151fc565b5b828204905092915050565b600061503582615108565b915061504083615108565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615079576150786151cd565b5b828202905092915050565b600061508f82615108565b915061509a83615108565b9250828210156150ad576150ac6151cd565b5b828203905092915050565b60006150c3826150e8565b9050919050565b60006150d5826150e8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561513d578082015181840152602081019050615122565b8381111561514c576000848401525b50505050565b6000600282049050600182168061516a57607f821691505b6020821081141561517e5761517d61522b565b5b50919050565b600061518f82615108565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156151c2576151c16151cd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f2070616972000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20636f6e74726163740000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d617820627579206c696d6974000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a2072616973652064656164000000000000000000000000000000600082015250565b7f6c6f636b65640000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d61782073656c6c206c696d69740000000000000000000000600082015250565b7f45524332303a206e6f742061206d656d62657200000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6155ea816150b8565b81146155f557600080fd5b50565b615601816150ca565b811461560c57600080fd5b50565b615618816150dc565b811461562357600080fd5b50565b61562f81615108565b811461563a57600080fd5b5056fea26469706673582212201d4538aa053001b1c96c6d5471345c84ccd3fa788fa2262cf01914a5ca7cfa8764736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff00000000000000000000000094bee376f9e666cf1333f83d76b083ba924020e5000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000003e63fe6ae713732007aaf100a43e2a7ec46e451c0000000000000000000000000000000000000000000000000000000000000006436c6971756500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004434c495100000000000000000000000000000000000000000000000000000000

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

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff00000000000000000000000094bee376f9e666cf1333f83d76b083ba924020e5000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000003e63fe6ae713732007aaf100a43e2a7ec46e451c0000000000000000000000000000000000000000000000000000000000000006436c6971756500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004434c495100000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Clique
Arg [1] : symbol_ (string): CLIQ
Arg [2] : router_ (address): 0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff
Arg [3] : wallet_ (address): 0x94bee376f9e666cf1333f83d76b083ba924020e5
Arg [4] : dead (address): 0x000000000000000000000000000000000000dead
Arg [5] : cliquette_ (address): 0x3e63fe6ae713732007aaf100a43e2a7ec46e451c

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff
Arg [3] : 00000000000000000000000094bee376f9e666cf1333f83d76b083ba924020e5
Arg [4] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [5] : 0000000000000000000000003e63fe6ae713732007aaf100a43e2a7ec46e451c
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 436c697175650000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 434c495100000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

2836:17794:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18752:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19073:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18641:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6345:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18972:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18053:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19250:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18259:124;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5684:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18530:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2039:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18860:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19473:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2576:251;;;;;;;;;;;;;:::i;:::-;;5969:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18391:131;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2253:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5360:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19892:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5488:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18170:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2350:218;;;;;;;;;;;;;:::i;:::-;;18752:100;18806:13;18839:5;18832:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18752:100;:::o;19073:169::-;19156:4;19173:39;19182:12;:10;:12::i;:::-;19196:7;19205:6;19173:8;:39::i;:::-;19230:4;19223:11;;19073:169;;;;:::o;5853:108::-;5914:7;5941:12;;5934:19;;5853:108;:::o;18641:103::-;18694:5;18719:10;:17;18730:5;18719:17;;;;;;;;;;;;;;;;;;;;;;;;;18712:24;;18641:103;;;:::o;6345:286::-;6451:4;6468:51;6478:6;6486:9;6497:6;6505:13;6511:6;6505:5;:13::i;:::-;6468:9;:51::i;:::-;6530:22;6537:6;6545;6530;:22::i;:::-;6563:38;6575:6;6583:9;6594:6;6563:11;:38::i;:::-;6619:4;6612:11;;6345:286;;;;;:::o;18972:93::-;19030:5;19055:2;19048:9;;18972:93;:::o;18053:109::-;18106:7;18133:9;:16;18143:5;18133:16;;;;;;;;;;;;;;;:21;;;18126:28;;18053:109;;;:::o;19250:215::-;19338:4;19355:80;19364:12;:10;:12::i;:::-;19378:7;19424:10;19387:11;:25;19399:12;:10;:12::i;:::-;19387:25;;;;;;;;;;;;;;;:34;19413:7;19387:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19355:8;:80::i;:::-;19453:4;19446:11;;19250:215;;;;:::o;18259:124::-;18308:7;18317;18345:6;;;;;;;;;;;18353:9;:17;18363:6;;;;;;;;;;;18353:17;;;;;;;;;;;;;;;:21;;;18337:38;;;;18259:124;;:::o;5684:161::-;5756:7;5832:5;;5807:9;:16;5817:5;5807:16;;;;;;;;;;;;;;;:21;;;5784:9;:16;5794:5;5784:16;;;;;;;;;;;;;;;:20;;;:44;;;;:::i;:::-;5783:54;;;;:::i;:::-;5776:61;;5684:161;;;:::o;18530:103::-;18588:4;18612:6;:13;18619:5;18612:13;;;;;;;;;;;;;;;;;;;;;;;;;18605:20;;18530:103;;;:::o;2039:79::-;2077:7;2104:6;;;;;;;;;;;2097:13;;2039:79;:::o;18860:104::-;18916:13;18949:7;18942:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18860:104;:::o;19473:411::-;19566:4;19583:24;19610:11;:25;19622:12;:10;:12::i;:::-;19610:25;;;;;;;;;;;;;;;:34;19636:7;19610:34;;;;;;;;;;;;;;;;19583:61;;19683:15;19663:16;:35;;19655:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;19776:67;19785:12;:10;:12::i;:::-;19799:7;19827:15;19808:16;:34;19776:8;:67::i;:::-;19872:4;19865:11;;;19473:411;;;;:::o;2576:251::-;2646:10;2628:28;;:14;;;;;;;;;;;:28;;;2620:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2704:9;;2686:15;:27;2678:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2770:14;;;;;;;;;;;2741:44;;2762:6;;;;;;;;;;2741:44;;;;;;;;;;;;2805:14;;;;;;;;;;;2796:6;;:23;;;;;;;;;;;;;;;;;;2576:251::o;5969:368::-;6055:4;6094;;;;;;;;;;;6081:17;;:9;:17;;;;6072:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6159:4;;;;;;;;;;;6146:17;;:9;:17;;;;6137:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6206:50;6216:12;:10;:12::i;:::-;6230:9;6241:6;6249;6206:9;:50::i;:::-;6267:40;6275:12;:10;:12::i;:::-;6289:9;6300:6;6267:7;:40::i;:::-;6325:4;6318:11;;5969:368;;;;:::o;18391:131::-;18441:7;18450;18478:9;;;;;;;;;;;18489;:20;18499:9;;;;;;;;;;;18489:20;;;;;;;;;;;;;;;:24;;;18470:44;;;;18391:131;;:::o;2253:89::-;2298:7;2325:9;;2318:16;;2253:89;:::o;5360:120::-;2176:12;:10;:12::i;:::-;2166:22;;:6;;;;;;;;;;:22;;;2158:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5453:2:::1;:11;;:19;5465:6;5453:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5360:120:::0;;:::o;19892:151::-;19981:7;20008:11;:18;20020:5;20008:18;;;;;;;;;;;;;;;:27;20027:7;20008:27;;;;;;;;;;;;;;;;20001:34;;19892:151;;;;:::o;5488:188::-;2176:12;:10;:12::i;:::-;2166:22;;:6;;;;;;;;;;:22;;;2158:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5601:4:::1;5584:22;;:5;:22;;;5581:88;;5630:5;5623:22;;;5646:2;5650:6;5623:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5581:88;5488:188:::0;;;:::o;18170:81::-;18211:7;18238:5;;18231:12;;18170:81;:::o;2350:218::-;2176:12;:10;:12::i;:::-;2166:22;;:6;;;;;;;;;;:22;;;2158:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2419:6:::1;::::0;::::1;;;;;;;;2402:14;;:23;;;;;;;;;;;;;;;;;;2453:1;2436:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2496:8;2478:15;:26;;;;:::i;:::-;2466:9;:38;;;;2557:1;2520:40;;2541:6;::::0;::::1;;;;;;;;2520:40;;;;;;;;;;;;2350:218::o:0;1543:98::-;1596:7;1623:10;1616:17;;1543:98;:::o;9157:344::-;9276:1;9259:19;;:5;:19;;;;9251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9357:1;9338:21;;:7;:21;;;;9330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9439:6;9409:11;:18;9421:5;9409:18;;;;;;;;;;;;;;;:27;9428:7;9409:27;;;;;;;;;;;;;;;:36;;;;9477:7;9461:32;;9470:5;9461:32;;;9486:6;9461:32;;;;;;:::i;:::-;;;;;;;;9157:344;;;:::o;20051:120::-;20106:7;20133:30;20137:7;20146:16;20150:7;20159:2;20146:3;:16::i;:::-;20133:3;:30::i;:::-;20126:37;;20051:120;;;:::o;9847:820::-;9995:1;9966:9;:20;9976:9;9966:20;;;;;;;;;;;;;;;:25;;;:30;9962:96;;;10041:5;;10013:9;:20;10023:9;10013:20;;;;;;;;;;;;;;;:25;;:33;;;;9962:96;10094:1;10076:20;;:6;:20;;;;10068:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10178:1;10157:23;;:9;:23;;;;10149:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10231:14;10248:24;10257:6;10265;10248:8;:24::i;:::-;10231:41;;10283:14;10300:28;10309:9;10320:7;10300:8;:28::i;:::-;10283:45;;10339:21;10363:9;:17;10373:6;10363:17;;;;;;;;;;;;;;;:21;;;10339:45;;10420:6;10403:13;:23;;10395:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10545:6;10529:13;:22;10505:9;:17;10515:6;10505:17;;;;;;;;;;;;;;;:21;;:46;;;;10601:6;10573:9;:20;10583:9;10573:20;;;;;;;;;;;;;;;:24;;;:34;;;;;;;:::i;:::-;;;;;;;;10640:9;10623:36;;10632:6;10623:36;;;10651:7;10623:36;;;;;;:::i;:::-;;;;;;;;9951:716;;;9847:820;;;;:::o;9509:330::-;9577:24;9604:11;:19;9616:6;9604:19;;;;;;;;;;;;;;;:33;9624:12;:10;:12::i;:::-;9604:33;;;;;;;;;;;;;;;;9577:60;;9676:6;9656:16;:26;;9648:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9763:57;9772:6;9780:12;:10;:12::i;:::-;9813:6;9794:16;:25;9763:8;:57::i;:::-;9566:273;9509:330;;:::o;8249:900::-;8360:6;;;;;;;;;;;8344:22;;:12;:10;:12::i;:::-;:22;;;:43;;;;;8383:4;;;;;;;;;;;8370:17;;:9;:17;;;8344:43;8340:690;;;8425:1;8408:6;;;;;;;;;;;:14;;;:18;8404:550;;;8516:21;8522:6;8530;8516:5;:21::i;:::-;8556:23;8564:6;8572;8556:7;:23::i;:::-;;8404:550;;;8731:5;8713:23;;:6;:14;8720:6;8713:14;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;8705:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:28;8801:9;:15;8811:4;;;;;;;;;;;8801:15;;;;;;;;;;;;;;;:19;;;8822:2;8797:3;:28::i;:::-;8788:6;:37;8780:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8874:25;8884:6;8892;8874:9;:25::i;:::-;;8922:16;8931:6;8922:8;:16::i;:::-;8404:550;8340:690;;;9012:5;8994:23;;:6;:14;9001:6;8994:14;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;8986:32;;;;;;8340:690;9068:15;9072:6;9080:2;9068:3;:15::i;:::-;9040:9;:20;9050:9;;;;;;;;;;;9040:20;;;;;;;;;;;;;;;:24;;;:43;;;;;;;:::i;:::-;;;;;;;;9114:9;;;;;;;;;;;9099:42;;9108:4;;;;;;;;;;;9099:42;;;9125:15;9129:6;9137:2;9125:3;:15::i;:::-;9099:42;;;;;;:::i;:::-;;;;;;;;8249:900;;;:::o;6639:1602::-;6739:6;6731:14;;:4;;;;;;;;;;;:14;;;6727:1507;;;6776:9;6766:19;;:6;;;;;;;;;;;:19;;;6762:406;;6900:5;6879:26;;:6;:17;6886:9;6879:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;6871:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6965:28;6969:9;:15;6979:4;;;;;;;;;;;6969:15;;;;;;;;;;;;;;;:19;;;6990:2;6965:3;:28::i;:::-;6956:6;:37;6948:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7041:25;7048:9;7059:6;7041;:25::i;:::-;7089:26;7097:9;7108:6;7089:7;:26::i;:::-;;7138:16;7147:6;7138:8;:16::i;:::-;6762:406;6727:1507;;;7306:9;7298:17;;:4;;;;;;;;;;;:17;;;7294:940;;;7350:4;;;;;;;;;;;7340:14;;:6;:14;;;;7332:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7392:28;7405:6;7413;7392:12;:28::i;:::-;7294:940;;;7472:10;7450:9;:15;7460:4;;;;;;;;;;;7450:15;;;;;;;;;;;;;;;:19;;;:32;7447:787;;;7513:6;7503:16;;:6;;;;;;;;;;;:16;;;7499:345;;7640:1;7618:10;:18;7629:6;7618:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;7614:215;;7688:1;7666:10;:18;7677:6;7666:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7712:22;7719:6;7727;7712;:22::i;:::-;7614:215;;;7783:26;7790:6;7807:1;7798:6;:10;;;;:::i;:::-;7783:6;:26::i;:::-;7614:215;7499:345;7447:787;;;7988:6;7978:16;;:6;;;;;;;;;;;:16;;;7974:249;;;8117:6;8095:9;:15;8105:4;;;;;;;;;;;8095:15;;;;;;;;;;;;;;;:19;;;:28;8091:117;;;8148:40;8170:9;8181:6;8148:21;:40::i;:::-;8091:117;7974:249;7447:787;7294:940;6727:1507;6639:1602;;;:::o;20179:106::-;20241:7;20274:3;20268;:9;;;;:::i;:::-;20261:16;;20179:106;;;;:::o;20407:::-;20469:7;20502:3;20496;:9;;;;:::i;:::-;20489:16;;20407:106;;;;:::o;17671:180::-;17742:13;17775:46;17779:18;17783:6;17791:5;;17779:3;:18::i;:::-;17799:9;:16;17809:5;17799:16;;;;;;;;;;;;;;;:21;;;17775:3;:46::i;:::-;17767:54;;17671:180;;;;:::o;11114:199::-;11203:4;11185:22;;:6;:14;11192:6;11185:14;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;11181:76;;11241:4;11224:6;:14;11231:6;11224:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11181:76;11267:38;11290:6;11298;11267:22;:38::i;:::-;11114:199;;:::o;15488:768::-;15554:14;15607:10;15585:9;:15;15595:4;;;;;;;;;;;15585:15;;;;;;;;;;;;;;;:19;;;:32;15581:668;;;15662:6;15638:9;:16;15648:5;15638:16;;;;;;;;;;;;;;;:21;;;:30;15634:604;;;15689:16;15708;15718:5;15708:9;:16::i;:::-;15689:35;;15768:49;15772:9;:16;15782:5;15772:16;;;;;;;;;;;;;;;:21;;;15795;15809:6;15795:13;:21::i;:::-;15768:3;:49::i;:::-;15743:9;:16;15753:5;15743:16;;;;;;;;;;;;;;;:21;;;:74;;;;;;;:::i;:::-;;;;;;;;15850:16;15860:5;15850:9;:16::i;:::-;15839:8;:27;15836:387;;;15900:31;15904:8;15914:16;15924:5;15914:9;:16::i;:::-;15900:3;:31::i;:::-;15891:40;;15967:9;:15;15977:4;;;;;;;;;;;15967:15;;;;;;;;;;;;;;;:19;;;15958:6;:28;15954:193;;;16038:6;16015:9;:15;16025:4;;;;;;;;;;;16015:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;15954:193;;;16117:6;16101:12;;:22;;;;;;;:::i;:::-;;;;;;;;15954:193;16189:5;16174:29;;16183:4;;;;;;;;;;;16174:29;;;16196:6;16174:29;;;;;;:::i;:::-;;;;;;;;15836:387;15670:568;15634:604;15581:668;15488:768;;;;:::o;14884:596::-;14952:12;15003:10;14981:9;:15;14991:4;;;;;;;;;;;14981:15;;;;;;;;;;;;;;;:19;;;:32;14977:496;;;15058:3;15034:9;:16;15044:5;15034:16;;;;;;;;;;;;;;;:21;;;:27;15030:432;;;15082:16;15101;15111:5;15101:9;:16::i;:::-;15082:35;;15161:49;15165:9;:16;15175:5;15165:16;;;;;;;;;;;;;;;:21;;;15188;15202:6;15188:13;:21::i;:::-;15161:3;:49::i;:::-;15136:9;:16;15146:5;15136:16;;;;;;;;;;;;;;;:21;;;:74;;;;;;;:::i;:::-;;;;;;;;15243:16;15253:5;15243:9;:16::i;:::-;15232:8;:27;15229:218;;;15291:31;15295:8;15305:16;15315:5;15305:9;:16::i;:::-;15291:3;:31::i;:::-;15284:38;;15368:4;15345:9;:15;15355:4;;;;;;;;;;;15345:15;;;;;;;;;;;;;;;:19;;;:27;;;;;;;:::i;:::-;;;;;;;;15416:4;;;;;;;;;;;15400:27;;15409:5;15400:27;;;15422:4;15400:27;;;;;;:::i;:::-;;;;;;;;15229:218;15063:399;15030:432;14977:496;14884:596;;;;:::o;16264:486::-;16329:4;16321:5;;:12;16318:425;;;16349:14;16366:22;16381:6;16366:14;:22::i;:::-;16349:39;;16416:16;16420:5;;16427:4;16416:3;:16::i;:::-;16407:6;:25;16403:91;;;16462:16;16466:5;;16473:4;16462:3;:16::i;:::-;16453:5;;:25;;;;;;;:::i;:::-;;;;;;;;16403:91;16521:15;16525:5;;16532:3;16521;:15::i;:::-;16512:6;:24;16508:157;;;16566:15;16570:5;;16577:3;16566;:15::i;:::-;16557:5;;:24;;;;;;;:::i;:::-;;;;;;;;16508:157;;;16631:18;16635:5;;16642:6;16631:3;:18::i;:::-;16622:5;;:27;;;;;;;:::i;:::-;;;;;;;;16508:157;16693:4;;;;;;;;;;;16684:21;;;16699:5;;16684:21;;;;;;:::i;:::-;;;;;;;;16720:11;:9;:11::i;:::-;16334:409;16318:425;16264:486;:::o;13091:1256::-;13193:1;13166:9;:20;13176:9;;;;;;;;;;;13166:20;;;;;;;;;;;;;;;:24;;;:28;13162:1178;;;13225:3;;13215:6;:13;13211:1115;;13280:3;;13252:9;:20;13262:9;;;;;;;;;;;13252:20;;;;;;;;;;;;;;;:24;;;:31;13249:505;;13336:24;13345:9;13356:3;;13336:8;:24::i;:::-;13308:9;:20;13318:9;13308:20;;;;;;;;;;;;;;;:24;;;:52;;;;;;;:::i;:::-;;;;;;;;13411:3;;13383:9;:20;13393:9;;;;;;;;;;;13383:20;;;;;;;;;;;;;;;:24;;;:31;;;;;;;:::i;:::-;;;;;;;;13462:9;13442:35;;13451:9;;;;;;;;;;;13442:35;;;13473:3;;13442:35;;;;;;:::i;:::-;;;;;;;;13249:505;;;13554:45;13563:9;13574;:20;13584:9;;;;;;;;;;;13574:20;;;;;;;;;;;;;;;:24;;;13554:8;:45::i;:::-;13526:9;:20;13536:9;13526:20;;;;;;;;;;;;;;;:24;;;:73;;;;;;;:::i;:::-;;;;;;;;13647:9;13627:56;;13636:9;;;;;;;;;;;13627:56;;;13658:9;:20;13668:9;;;;;;;;;;;13658:20;;;;;;;;;;;;;;;:24;;;13627:56;;;;;;:::i;:::-;;;;;;;;13733:1;13706:9;:20;13716:9;;;;;;;;;;;13706:20;;;;;;;;;;;;;;;:24;;:28;;;;13249:505;13211:1115;;;13807:9;:20;13817:9;;;;;;;;;;;13807:20;;;;;;;;;;;;;;;:24;;;13798:6;:33;13794:517;;;13884:45;13893:9;13904;:20;13914:9;;;;;;;;;;;13904:20;;;;;;;;;;;;;;;:24;;;13884:8;:45::i;:::-;13856:9;:20;13866:9;13856:20;;;;;;;;;;;;;;;:24;;;:73;;;;;;;:::i;:::-;;;;;;;;13977:9;13957:56;;13966:9;;;;;;;;;;;13957:56;;;13988:9;:20;13998:9;;;;;;;;;;;13988:20;;;;;;;;;;;;;;;:24;;;13957:56;;;;;;:::i;:::-;;;;;;;;14063:1;14036:9;:20;14046:9;;;;;;;;;;;14036:20;;;;;;;;;;;;;;;:24;;:28;;;;13794:517;;;14141:27;14150:9;14161:6;14141:8;:27::i;:::-;14113:9;:20;14123:9;14113:20;;;;;;;;;;;;;;;:24;;;:55;;;;;;;:::i;:::-;;;;;;;;14219:6;14191:9;:20;14201:9;;;;;;;;;;;14191:20;;;;;;;;;;;;;;;:24;;;:34;;;;;;;:::i;:::-;;;;;;;;14273:9;14253:38;;14262:9;;;;;;;;;;;14253:38;;;14284:6;14253:38;;;;;;:::i;:::-;;;;;;;;13794:517;13211:1115;13162:1178;13091:1256;;:::o;14355:521::-;14443:9;:15;14453:4;;;;;;;;;;;14443:15;;;;;;;;;;;;;;;:19;;;14433:6;:29;14429:282;;14506:6;14483:9;:15;14493:4;;;;;;;;;;;14483:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;14559:6;14531:9;:20;14541:9;;;;;;;;;;;14531:20;;;;;;;;;;;;;;;:24;;;:34;;;;;;;:::i;:::-;;;;;;;;14429:282;;;14634:9;:15;14644:4;;;;;;;;;;;14634:15;;;;;;;;;;;;;;;:19;;;14606:9;:20;14616:9;;;;;;;;;;;14606:20;;;;;;;;;;;;;;;:24;;;:47;;;;;;;:::i;:::-;;;;;;;;14694:1;14672:9;:15;14682:4;;;;;;;;;;;14672:15;;;;;;;;;;;;;;;:19;;:23;;;;14429:282;14753:1;14729:9;:17;14739:6;14729:17;;;;;;;;;;;;;;;:21;;;:25;14725:91;;;14799:1;14775:9;:17;14785:6;14775:17;;;;;;;;;;;;;;;:21;;:25;;;;14725:91;14850:9;;;;;;;;;;;14835:33;;14844:4;;;;;;;;;;;14835:33;;;14861:6;14835:33;;;;;;:::i;:::-;;;;;;;;14355:521;;:::o;10675:431::-;10757:3;;10747:6;:13;10743:356;;10802:21;10811:6;10819:3;;10802:8;:21::i;:::-;10777:9;:17;10787:6;10777:17;;;;;;;;;;;;;;;:21;;;:46;;;;;;;:::i;:::-;;;;;;;;10861:3;;10838:9;:15;10848:4;;;;;;;;;;;10838:15;;;;;;;;;;;;;;;:19;;;:26;;;;;;;:::i;:::-;;;;;;;;10899:6;10884:27;;10893:4;;;;;;;;;;;10884:27;;;10907:3;;10884:27;;;;;;:::i;:::-;;;;;;;;10743:356;;;10969:24;10978:6;10986;10969:8;:24::i;:::-;10944:9;:17;10954:6;10944:17;;;;;;;;;;;;;;;:21;;;:49;;;;;;;:::i;:::-;;;;;;;;11031:6;11008:9;:15;11018:4;;;;;;;;;;;11008:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;11072:6;11057:30;;11066:4;;;;;;;;;;;11057:30;;;11080:6;11057:30;;;;;;:::i;:::-;;;;;;;;10743:356;10675:431;;:::o;12481:602::-;12600:6;12578:9;:15;12588:4;;;;;;;;;;;12578:15;;;;;;;;;;;;;;;:19;;;:28;12574:502;;;12664:13;12626:35;12636:9;12647:13;12626:9;:35::i;:::-;:51;12623:442;;;12698:20;12721:55;12725:35;12735:9;12746:13;12725:9;:35::i;:::-;12762:13;12721:3;:55::i;:::-;12698:78;;12795:19;12817:33;12826:9;12837:12;12817:8;:33::i;:::-;12795:55;;12897:19;12901:11;12914:1;12897:3;:19::i;:::-;12869:9;:20;12879:9;12869:20;;;;;;;;;;;;;;;:24;;;:47;;;;;;;:::i;:::-;;;;;;;;12958:20;12962:12;12976:1;12958:3;:20::i;:::-;12935:9;:15;12945:4;;;;;;;;;;;12935:15;;;;;;;;;;;;;;;:19;;;:43;;;;;;;:::i;:::-;;;;;;;;13017:9;13002:47;;13011:4;;;;;;;;;;;13002:47;;;13028:20;13032:12;13046:1;13028:3;:20::i;:::-;13002:47;;;;;;:::i;:::-;;;;;;;;12679:386;;12623:442;12574:502;12481:602;;:::o;20293:106::-;20355:7;20388:3;20382;:9;;;;:::i;:::-;20375:16;;20293:106;;;;:::o;11321:1152::-;11431:10;11409:9;:15;11419:4;;;;;;;;;;;11409:15;;;;;;;;;;;;;;;:19;;;:32;11405:1061;;;11484:2;11462:10;:18;11473:6;11462:18;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;11458:729;;11529:1;11507:10;:18;11518:6;11507:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11562:3;;11553:6;:12;11549:419;;;11615:21;11624:6;11632:3;;11615:8;:21::i;:::-;11590:9;:17;11600:6;11590:17;;;;;;;;;;;;;;;:21;;;:46;;;;;;;:::i;:::-;;;;;;;;11682:3;;11659:9;:15;11669:4;;;;;;;;;;;11659:15;;;;;;;;;;;;;;;:19;;;:26;;;;;;;:::i;:::-;;;;;;;;11728:6;11713:27;;11722:4;;;;;;;;;;;11713:27;;;11736:3;;11713:27;;;;;;:::i;:::-;;;;;;;;11549:419;;;11814:24;11823:6;11831;11814:8;:24::i;:::-;11789:9;:17;11799:6;11789:17;;;;;;;;;;;;;;;:21;;;:49;;;;;;;:::i;:::-;;;;;;;;11884:6;11861:9;:15;11871:4;;;;;;;;;;;11861:15;;;;;;;;;;;;;;;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;11933:6;11918:30;;11927:4;;;;;;;;;;;11918:30;;;11941:6;11918:30;;;;;;:::i;:::-;;;;;;;;11549:419;11458:729;;;12033:28;12042:6;12059:1;12050:6;:10;;;;:::i;:::-;12033:8;:28::i;:::-;12008:9;:17;12018:6;12008:17;;;;;;;;;;;;;;;:21;;;:53;;;;;;;:::i;:::-;;;;;;;;12112:1;12103:6;:10;;;;:::i;:::-;12080:9;:15;12090:4;;;;;;;;;;;12080:15;;;;;;;;;;;;;;;:19;;;:33;;;;;;;:::i;:::-;;;;;;;;12152:6;12137:34;;12146:4;;;;;;;;;;;12137:34;;;12169:1;12160:6;:10;;;;:::i;:::-;12137:34;;;;;;:::i;:::-;;;;;;;;11458:729;11405:1061;;;12245:10;12223:9;:15;12233:4;;;;;;;;;;;12223:15;;;;;;;;;;;;;;;:19;;;:32;12219:236;;;12301:28;12310:6;12327:1;12318:6;:10;;;;:::i;:::-;12301:8;:28::i;:::-;12276:9;:17;12286:6;12276:17;;;;;;;;;;;;;;;:21;;;:53;;;;;;;:::i;:::-;;;;;;;;12380:1;12371:6;:10;;;;:::i;:::-;12348:9;:15;12358:4;;;;;;;;;;;12348:15;;;;;;;;;;;;;;;:19;;;:33;;;;;;;:::i;:::-;;;;;;;;12420:6;12405:34;;12414:4;;;;;;;;;;;12405:34;;;12437:1;12428:6;:10;;;;:::i;:::-;12405:34;;;;;;:::i;:::-;;;;;;;;12219:236;11405:1061;11321:1152;;:::o;17035:412::-;17097:7;17117:13;17133:32;17137:9;:15;17147:4;;;;;;;;;;;17137:15;;;;;;;;;;;;;;;:19;;;17158:6;17133:3;:32::i;:::-;17117:48;;17189:9;:15;17199:4;;;;;;;;;;;17189:15;;;;;;;;;;;;;;;:19;;;17180:6;:28;17176:241;;;17237:2;17229:5;:10;17225:62;;;17268:2;17260:10;;17225:62;17313:3;17305:5;:11;17301:63;;;17345:3;17337:11;;17301:63;17176:241;;;17404:1;17396:9;;17176:241;17434:5;17427:12;;;17035:412;;;:::o;16899:128::-;16961:7;16988:31;16992:18;16996:9;:7;:9::i;:::-;17007:2;16992:3;:18::i;:::-;17012:6;16988:3;:31::i;:::-;16981:38;;16899:128;;;:::o;16758:133::-;16804:6;16799:85;16818:1;16814;:5;16799:85;;;16867:5;;16841:9;:18;16851:4;:7;16856:1;16851:7;;;;;;;;;;;;;;;;;;;;;16841:18;;;;;;;;;;;;;;;:23;;:31;;;;16821:3;;;;;:::i;:::-;;;;16799:85;;;;16758:133::o;17859:186::-;17931:14;17967:46;17971:33;17975:5;17982:9;:16;17992:5;17982:16;;;;;;;;;;;;;;;:21;;;17971:3;:33::i;:::-;18006:5;;17967:3;:46::i;:::-;17958:55;;17859:186;;;;:::o;17455:208::-;17497:7;17524:131;17528:12;;17555:99;17559:9;:15;17569:4;;;;;;;;;;;17559:15;;;;;;;;;;;;;;;:19;;;17593:60;17597:9;:15;17607:4;;;;;;;;;;;17597:15;;;;;;;;;;;;;;;:19;;;17631:9;:17;17641:6;;;;;;;;;;;17631:17;;;;;;;;;;;;;;;:21;;;17593:3;:60::i;:::-;17555:3;:99::i;:::-;17524:3;:131::i;:::-;17517:138;;17455:208;:::o;20521:106::-;20583:7;20616:3;20610;:9;;;;:::i;:::-;20603:16;;20521:106;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:137::-;367:5;398:6;392:13;383:22;;414:30;438:5;414:30;:::i;:::-;313:137;;;;:::o;456:139::-;502:5;540:6;527:20;518:29;;556:33;583:5;556:33;:::i;:::-;456:139;;;;:::o;601:329::-;660:6;709:2;697:9;688:7;684:23;680:32;677:119;;;715:79;;:::i;:::-;677:119;835:1;860:53;905:7;896:6;885:9;881:22;860:53;:::i;:::-;850:63;;806:117;601:329;;;;:::o;936:490::-;1012:6;1020;1069:2;1057:9;1048:7;1044:23;1040:32;1037:119;;;1075:79;;:::i;:::-;1037:119;1195:1;1220:61;1273:7;1264:6;1253:9;1249:22;1220:61;:::i;:::-;1210:71;;1166:125;1330:2;1356:53;1401:7;1392:6;1381:9;1377:22;1356:53;:::i;:::-;1346:63;;1301:118;936:490;;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:119;;;1563:79;;:::i;:::-;1525:119;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1432:474;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:119;;;2060:79;;:::i;:::-;2022:119;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;1912:619;;;;;:::o;2537:474::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:119;;;2668:79;;:::i;:::-;2630:119;2788:1;2813:53;2858:7;2849:6;2838:9;2834:22;2813:53;:::i;:::-;2803:63;;2759:117;2915:2;2941:53;2986:7;2977:6;2966:9;2962:22;2941:53;:::i;:::-;2931:63;;2886:118;2537:474;;;;;:::o;3017:345::-;3084:6;3133:2;3121:9;3112:7;3108:23;3104:32;3101:119;;;3139:79;;:::i;:::-;3101:119;3259:1;3284:61;3337:7;3328:6;3317:9;3313:22;3284:61;:::i;:::-;3274:71;;3230:125;3017:345;;;;:::o;3368:118::-;3455:24;3473:5;3455:24;:::i;:::-;3450:3;3443:37;3368:118;;:::o;3492:109::-;3573:21;3588:5;3573:21;:::i;:::-;3568:3;3561:34;3492:109;;:::o;3607:364::-;3695:3;3723:39;3756:5;3723:39;:::i;:::-;3778:71;3842:6;3837:3;3778:71;:::i;:::-;3771:78;;3858:52;3903:6;3898:3;3891:4;3884:5;3880:16;3858:52;:::i;:::-;3935:29;3957:6;3935:29;:::i;:::-;3930:3;3926:39;3919:46;;3699:272;3607:364;;;;:::o;3977:366::-;4119:3;4140:67;4204:2;4199:3;4140:67;:::i;:::-;4133:74;;4216:93;4305:3;4216:93;:::i;:::-;4334:2;4329:3;4325:12;4318:19;;3977:366;;;:::o;4349:::-;4491:3;4512:67;4576:2;4571:3;4512:67;:::i;:::-;4505:74;;4588:93;4677:3;4588:93;:::i;:::-;4706:2;4701:3;4697:12;4690:19;;4349:366;;;:::o;4721:::-;4863:3;4884:67;4948:2;4943:3;4884:67;:::i;:::-;4877:74;;4960:93;5049:3;4960:93;:::i;:::-;5078:2;5073:3;5069:12;5062:19;;4721:366;;;:::o;5093:::-;5235:3;5256:67;5320:2;5315:3;5256:67;:::i;:::-;5249:74;;5332:93;5421:3;5332:93;:::i;:::-;5450:2;5445:3;5441:12;5434:19;;5093:366;;;:::o;5465:::-;5607:3;5628:67;5692:2;5687:3;5628:67;:::i;:::-;5621:74;;5704:93;5793:3;5704:93;:::i;:::-;5822:2;5817:3;5813:12;5806:19;;5465:366;;;:::o;5837:::-;5979:3;6000:67;6064:2;6059:3;6000:67;:::i;:::-;5993:74;;6076:93;6165:3;6076:93;:::i;:::-;6194:2;6189:3;6185:12;6178:19;;5837:366;;;:::o;6209:::-;6351:3;6372:67;6436:2;6431:3;6372:67;:::i;:::-;6365:74;;6448:93;6537:3;6448:93;:::i;:::-;6566:2;6561:3;6557:12;6550:19;;6209:366;;;:::o;6581:::-;6723:3;6744:67;6808:2;6803:3;6744:67;:::i;:::-;6737:74;;6820:93;6909:3;6820:93;:::i;:::-;6938:2;6933:3;6929:12;6922:19;;6581:366;;;:::o;6953:::-;7095:3;7116:67;7180:2;7175:3;7116:67;:::i;:::-;7109:74;;7192:93;7281:3;7192:93;:::i;:::-;7310:2;7305:3;7301:12;7294:19;;6953:366;;;:::o;7325:365::-;7467:3;7488:66;7552:1;7547:3;7488:66;:::i;:::-;7481:73;;7563:93;7652:3;7563:93;:::i;:::-;7681:2;7676:3;7672:12;7665:19;;7325:365;;;:::o;7696:366::-;7838:3;7859:67;7923:2;7918:3;7859:67;:::i;:::-;7852:74;;7935:93;8024:3;7935:93;:::i;:::-;8053:2;8048:3;8044:12;8037:19;;7696:366;;;:::o;8068:::-;8210:3;8231:67;8295:2;8290:3;8231:67;:::i;:::-;8224:74;;8307:93;8396:3;8307:93;:::i;:::-;8425:2;8420:3;8416:12;8409:19;;8068:366;;;:::o;8440:::-;8582:3;8603:67;8667:2;8662:3;8603:67;:::i;:::-;8596:74;;8679:93;8768:3;8679:93;:::i;:::-;8797:2;8792:3;8788:12;8781:19;;8440:366;;;:::o;8812:::-;8954:3;8975:67;9039:2;9034:3;8975:67;:::i;:::-;8968:74;;9051:93;9140:3;9051:93;:::i;:::-;9169:2;9164:3;9160:12;9153:19;;8812:366;;;:::o;9184:::-;9326:3;9347:67;9411:2;9406:3;9347:67;:::i;:::-;9340:74;;9423:93;9512:3;9423:93;:::i;:::-;9541:2;9536:3;9532:12;9525:19;;9184:366;;;:::o;9556:118::-;9643:24;9661:5;9643:24;:::i;:::-;9638:3;9631:37;9556:118;;:::o;9680:112::-;9763:22;9779:5;9763:22;:::i;:::-;9758:3;9751:35;9680:112;;:::o;9798:222::-;9891:4;9929:2;9918:9;9914:18;9906:26;;9942:71;10010:1;9999:9;9995:17;9986:6;9942:71;:::i;:::-;9798:222;;;;:::o;10026:332::-;10147:4;10185:2;10174:9;10170:18;10162:26;;10198:71;10266:1;10255:9;10251:17;10242:6;10198:71;:::i;:::-;10279:72;10347:2;10336:9;10332:18;10323:6;10279:72;:::i;:::-;10026:332;;;;;:::o;10364:210::-;10451:4;10489:2;10478:9;10474:18;10466:26;;10502:65;10564:1;10553:9;10549:17;10540:6;10502:65;:::i;:::-;10364:210;;;;:::o;10580:313::-;10693:4;10731:2;10720:9;10716:18;10708:26;;10780:9;10774:4;10770:20;10766:1;10755:9;10751:17;10744:47;10808:78;10881:4;10872:6;10808:78;:::i;:::-;10800:86;;10580:313;;;;:::o;10899:419::-;11065:4;11103:2;11092:9;11088:18;11080:26;;11152:9;11146:4;11142:20;11138:1;11127:9;11123:17;11116:47;11180:131;11306:4;11180:131;:::i;:::-;11172:139;;10899:419;;;:::o;11324:::-;11490:4;11528:2;11517:9;11513:18;11505:26;;11577:9;11571:4;11567:20;11563:1;11552:9;11548:17;11541:47;11605:131;11731:4;11605:131;:::i;:::-;11597:139;;11324:419;;;:::o;11749:::-;11915:4;11953:2;11942:9;11938:18;11930:26;;12002:9;11996:4;11992:20;11988:1;11977:9;11973:17;11966:47;12030:131;12156:4;12030:131;:::i;:::-;12022:139;;11749:419;;;:::o;12174:::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:131;12581:4;12455:131;:::i;:::-;12447:139;;12174:419;;;:::o;12599:::-;12765:4;12803:2;12792:9;12788:18;12780:26;;12852:9;12846:4;12842:20;12838:1;12827:9;12823:17;12816:47;12880:131;13006:4;12880:131;:::i;:::-;12872:139;;12599:419;;;:::o;13024:::-;13190:4;13228:2;13217:9;13213:18;13205:26;;13277:9;13271:4;13267:20;13263:1;13252:9;13248:17;13241:47;13305:131;13431:4;13305:131;:::i;:::-;13297:139;;13024:419;;;:::o;13449:::-;13615:4;13653:2;13642:9;13638:18;13630:26;;13702:9;13696:4;13692:20;13688:1;13677:9;13673:17;13666:47;13730:131;13856:4;13730:131;:::i;:::-;13722:139;;13449:419;;;:::o;13874:::-;14040:4;14078:2;14067:9;14063:18;14055:26;;14127:9;14121:4;14117:20;14113:1;14102:9;14098:17;14091:47;14155:131;14281:4;14155:131;:::i;:::-;14147:139;;13874:419;;;:::o;14299:::-;14465:4;14503:2;14492:9;14488:18;14480:26;;14552:9;14546:4;14542:20;14538:1;14527:9;14523:17;14516:47;14580:131;14706:4;14580:131;:::i;:::-;14572:139;;14299:419;;;:::o;14724:::-;14890:4;14928:2;14917:9;14913:18;14905:26;;14977:9;14971:4;14967:20;14963:1;14952:9;14948:17;14941:47;15005:131;15131:4;15005:131;:::i;:::-;14997:139;;14724:419;;;:::o;15149:::-;15315:4;15353:2;15342:9;15338:18;15330:26;;15402:9;15396:4;15392:20;15388:1;15377:9;15373:17;15366:47;15430:131;15556:4;15430:131;:::i;:::-;15422:139;;15149:419;;;:::o;15574:::-;15740:4;15778:2;15767:9;15763:18;15755:26;;15827:9;15821:4;15817:20;15813:1;15802:9;15798:17;15791:47;15855:131;15981:4;15855:131;:::i;:::-;15847:139;;15574:419;;;:::o;15999:::-;16165:4;16203:2;16192:9;16188:18;16180:26;;16252:9;16246:4;16242:20;16238:1;16227:9;16223:17;16216:47;16280:131;16406:4;16280:131;:::i;:::-;16272:139;;15999:419;;;:::o;16424:::-;16590:4;16628:2;16617:9;16613:18;16605:26;;16677:9;16671:4;16667:20;16663:1;16652:9;16648:17;16641:47;16705:131;16831:4;16705:131;:::i;:::-;16697:139;;16424:419;;;:::o;16849:::-;17015:4;17053:2;17042:9;17038:18;17030:26;;17102:9;17096:4;17092:20;17088:1;17077:9;17073:17;17066:47;17130:131;17256:4;17130:131;:::i;:::-;17122:139;;16849:419;;;:::o;17274:222::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17418:71;17486:1;17475:9;17471:17;17462:6;17418:71;:::i;:::-;17274:222;;;;:::o;17502:214::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17642:67;17706:1;17695:9;17691:17;17682:6;17642:67;:::i;:::-;17502:214;;;;:::o;17803:99::-;17855:6;17889:5;17883:12;17873:22;;17803:99;;;:::o;17908:169::-;17992:11;18026:6;18021:3;18014:19;18066:4;18061:3;18057:14;18042:29;;17908:169;;;;:::o;18083:305::-;18123:3;18142:20;18160:1;18142:20;:::i;:::-;18137:25;;18176:20;18194:1;18176:20;:::i;:::-;18171:25;;18330:1;18262:66;18258:74;18255:1;18252:81;18249:107;;;18336:18;;:::i;:::-;18249:107;18380:1;18377;18373:9;18366:16;;18083:305;;;;:::o;18394:237::-;18432:3;18451:18;18467:1;18451:18;:::i;:::-;18446:23;;18483:18;18499:1;18483:18;:::i;:::-;18478:23;;18573:1;18567:4;18563:12;18560:1;18557:19;18554:45;;;18579:18;;:::i;:::-;18554:45;18623:1;18620;18616:9;18609:16;;18394:237;;;;:::o;18637:185::-;18677:1;18694:20;18712:1;18694:20;:::i;:::-;18689:25;;18728:20;18746:1;18728:20;:::i;:::-;18723:25;;18767:1;18757:35;;18772:18;;:::i;:::-;18757:35;18814:1;18811;18807:9;18802:14;;18637:185;;;;:::o;18828:348::-;18868:7;18891:20;18909:1;18891:20;:::i;:::-;18886:25;;18925:20;18943:1;18925:20;:::i;:::-;18920:25;;19113:1;19045:66;19041:74;19038:1;19035:81;19030:1;19023:9;19016:17;19012:105;19009:131;;;19120:18;;:::i;:::-;19009:131;19168:1;19165;19161:9;19150:20;;18828:348;;;;:::o;19182:191::-;19222:4;19242:20;19260:1;19242:20;:::i;:::-;19237:25;;19276:20;19294:1;19276:20;:::i;:::-;19271:25;;19315:1;19312;19309:8;19306:34;;;19320:18;;:::i;:::-;19306:34;19365:1;19362;19358:9;19350:17;;19182:191;;;;:::o;19379:96::-;19416:7;19445:24;19463:5;19445:24;:::i;:::-;19434:35;;19379:96;;;:::o;19481:104::-;19526:7;19555:24;19573:5;19555:24;:::i;:::-;19544:35;;19481:104;;;:::o;19591:90::-;19625:7;19668:5;19661:13;19654:21;19643:32;;19591:90;;;:::o;19687:126::-;19724:7;19764:42;19757:5;19753:54;19742:65;;19687:126;;;:::o;19819:77::-;19856:7;19885:5;19874:16;;19819:77;;;:::o;19902:86::-;19937:7;19977:4;19970:5;19966:16;19955:27;;19902:86;;;:::o;19994:307::-;20062:1;20072:113;20086:6;20083:1;20080:13;20072:113;;;20171:1;20166:3;20162:11;20156:18;20152:1;20147:3;20143:11;20136:39;20108:2;20105:1;20101:10;20096:15;;20072:113;;;20203:6;20200:1;20197:13;20194:101;;;20283:1;20274:6;20269:3;20265:16;20258:27;20194:101;20043:258;19994:307;;;:::o;20307:320::-;20351:6;20388:1;20382:4;20378:12;20368:22;;20435:1;20429:4;20425:12;20456:18;20446:81;;20512:4;20504:6;20500:17;20490:27;;20446:81;20574:2;20566:6;20563:14;20543:18;20540:38;20537:84;;;20593:18;;:::i;:::-;20537:84;20358:269;20307:320;;;:::o;20633:233::-;20672:3;20695:24;20713:5;20695:24;:::i;:::-;20686:33;;20741:66;20734:5;20731:77;20728:103;;;20811:18;;:::i;:::-;20728:103;20858:1;20851:5;20847:13;20840:20;;20633:233;;;:::o;20872:180::-;20920:77;20917:1;20910:88;21017:4;21014:1;21007:15;21041:4;21038:1;21031:15;21058:180;21106:77;21103:1;21096:88;21203:4;21200:1;21193:15;21227:4;21224:1;21217:15;21244:180;21292:77;21289:1;21282:88;21389:4;21386:1;21379:15;21413:4;21410:1;21403:15;21553:117;21662:1;21659;21652:12;21676:102;21717:6;21768:2;21764:7;21759:2;21752:5;21748:14;21744:28;21734:38;;21676:102;;;:::o;21784:222::-;21924:34;21920:1;21912:6;21908:14;21901:58;21993:5;21988:2;21980:6;21976:15;21969:30;21784:222;:::o;22012:173::-;22152:25;22148:1;22140:6;22136:14;22129:49;22012:173;:::o;22191:221::-;22331:34;22327:1;22319:6;22315:14;22308:58;22400:4;22395:2;22387:6;22383:15;22376:29;22191:221;:::o;22418:177::-;22558:29;22554:1;22546:6;22542:14;22535:53;22418:177;:::o;22601:225::-;22741:34;22737:1;22729:6;22725:14;22718:58;22810:8;22805:2;22797:6;22793:15;22786:33;22601:225;:::o;22832:170::-;22972:22;22968:1;22960:6;22956:14;22949:46;22832:170;:::o;23008:227::-;23148:34;23144:1;23136:6;23132:14;23125:58;23217:10;23212:2;23204:6;23200:15;23193:35;23008:227;:::o;23241:182::-;23381:34;23377:1;23369:6;23365:14;23358:58;23241:182;:::o;23429:167::-;23569:19;23565:1;23557:6;23553:14;23546:43;23429:167;:::o;23602:156::-;23742:8;23738:1;23730:6;23726:14;23719:32;23602:156;:::o;23764:224::-;23904:34;23900:1;23892:6;23888:14;23881:58;23973:7;23968:2;23960:6;23956:15;23949:32;23764:224;:::o;23994:223::-;24134:34;24130:1;24122:6;24118:14;24111:58;24203:6;24198:2;24190:6;24186:15;24179:31;23994:223;:::o;24223:171::-;24363:23;24359:1;24351:6;24347:14;24340:47;24223:171;:::o;24400:169::-;24540:21;24536:1;24528:6;24524:14;24517:45;24400:169;:::o;24575:224::-;24715:34;24711:1;24703:6;24699:14;24692:58;24784:7;24779:2;24771:6;24767:15;24760:32;24575:224;:::o;24805:122::-;24878:24;24896:5;24878:24;:::i;:::-;24871:5;24868:35;24858:63;;24917:1;24914;24907:12;24858:63;24805:122;:::o;24933:138::-;25014:32;25040:5;25014:32;:::i;:::-;25007:5;25004:43;24994:71;;25061:1;25058;25051:12;24994:71;24933:138;:::o;25077:116::-;25147:21;25162:5;25147:21;:::i;:::-;25140:5;25137:32;25127:60;;25183:1;25180;25173:12;25127:60;25077:116;:::o;25199:122::-;25272:24;25290:5;25272:24;:::i;:::-;25265:5;25262:35;25252:63;;25311:1;25308;25301:12;25252:63;25199:122;:::o

Swarm Source

ipfs://1d4538aa053001b1c96c6d5471345c84ccd3fa788fa2262cf01914a5ca7cfa87
Loading