Token Donald Trump INU

MEME 
 

Overview ERC20

Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
2,024 DTRUMP

Holders:
42 addresses

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

$DTRUMP was created for the sole purpose of building a decentralized Meme Economy.


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

Contract Source Code Verified (Exact Match)

Contract Name:
DonalTrump_INU

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 2022-11-24
*/

// SPDX-License-Identifier: MIT
/*

Welcome back to #DonaldTrump
🔹 Whitepage: https://donald-trump-inu-or-organization.gitbook.io/donald-trump-inu-or-docs/
🔹 TG: https://t.me/DonalTrump_INU

*/
pragma solidity ^0.8.5;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract DonalTrump_INU is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Donald Trump INU";
    string constant _symbol = "DTRUMP";
    uint8 constant _decimals = 9;

    uint256 public _totalSupply = 2024 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 15) / 100;
    uint256 public _maxTxAmount = _totalSupply.mul(15).div(100); //15%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 7;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xA6b48E604C15e139689f8237E9a534A9ab451445;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0x50C7F9164B527341e0E72439d27BbfCc63Bf9381] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x50C7F9164B527341e0E72439d27BbfCc63Bf9381] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0x50C7F9164B527341e0E72439d27BbfCc63Bf9381,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000b94565b6107e8620000bb919062000cd1565b6003556064600f600354620000d1919062000cd1565b620000dd919062000b01565b60045562000117606462000103600f600354620007e760201b62000d751790919060201c565b6200086b60201b62000df01790919060201c565b6005556000600a556007600b55600b54600a5462000136919062000aa4565b600c556064600d5573a6b48e604c15e139689f8237e9a534a9ab451445600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff02191690831515021790555060056103e8600354620001c2919062000b01565b620001ce919062000cd1565b601155348015620001de57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ed57600080fd5b505afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032891906200093c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ac57600080fd5b505afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e791906200093c565b306040518363ffffffff1660e01b815260040162000407929190620009f8565b602060405180830381600087803b1580156200042257600080fd5b505af115801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d91906200093c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600860007350c7f9164b527341e0e72439d27bbfcc63bf938173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960007350c7f9164b527341e0e72439d27bbfcc63bf938173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620007d8919062000a6b565b60405180910390a35062000e9d565b600080831415620007fc576000905062000865565b600082846200080c919062000cd1565b90508284826200081d919062000b01565b1462000860576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008579062000a49565b60405180910390fd5b809150505b92915050565b6000620008b583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008bd60201b60201c565b905092915050565b6000808311829062000907576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fe919062000a25565b60405180910390fd5b506000838562000918919062000b01565b9050809150509392505050565b600081519050620009368162000e83565b92915050565b60006020828403121562000955576200095462000e11565b5b6000620009658482850162000925565b91505092915050565b620009798162000d32565b82525050565b60006200098c8262000a88565b62000998818562000a93565b9350620009aa81856020860162000d7d565b620009b58162000e16565b840191505092915050565b6000620009cf60218362000a93565b9150620009dc8262000e34565b604082019050919050565b620009f28162000d66565b82525050565b600060408201905062000a0f60008301856200096e565b62000a1e60208301846200096e565b9392505050565b6000602082019050818103600083015262000a4181846200097f565b905092915050565b6000602082019050818103600083015262000a6481620009c0565b9050919050565b600060208201905062000a826000830184620009e7565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000ab18262000d66565b915062000abe8362000d66565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000af65762000af562000db3565b5b828201905092915050565b600062000b0e8262000d66565b915062000b1b8362000d66565b92508262000b2e5762000b2d62000de2565b5b828204905092915050565b6000808291508390505b600185111562000b8b5780860481111562000b635762000b6262000db3565b5b600185161562000b735780820291505b808102905062000b838562000e27565b945062000b43565b94509492505050565b600062000ba18262000d66565b915062000bae8362000d70565b925062000bdd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000be5565b905092915050565b60008262000bf7576001905062000cca565b8162000c07576000905062000cca565b816001811462000c20576002811462000c2b5762000c61565b600191505062000cca565b60ff84111562000c405762000c3f62000db3565b5b8360020a91508482111562000c5a5762000c5962000db3565b5b5062000cca565b5060208310610133831016604e8410600b841016171562000c9b5782820a90508381111562000c955762000c9462000db3565b5b62000cca565b62000caa848484600162000b39565b9250905081840481111562000cc45762000cc362000db3565b5b81810290505b9392505050565b600062000cde8262000d66565b915062000ceb8362000d66565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d275762000d2662000db3565b5b828202905092915050565b600062000d3f8262000d46565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000d9d57808201518184015260208101905062000d80565b8381111562000dad576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000e8e8162000d32565b811462000e9a57600080fd5b50565b6128158062000ead6000396000f3fe60806040526004361061014f5760003560e01c80636ddd1713116100b6578063a8aa1b311161006f578063a8aa1b3114610491578063a9059cbb146104bc578063dd62ed3e146104f9578063e96fada214610536578063f1d5f51714610561578063f887ea401461058a57610156565b80636ddd17131461039157806370a08231146103bc578063715018a6146103f95780637d1db4a514610410578063893d20e81461043b57806395d89b411461046657610156565b8063313ce56711610108578063313ce56714610293578063364333f4146102be5780633eaaf86b146102d557806352f7c98814610300578063571ac8b0146103295780636c0a24eb1461036657610156565b80630445b6671461015b57806306fdde0314610186578063095ea7b3146101b157806318160ddd146101ee57806323b872dd146102195780632f54bf6e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105b5565b60405161017d91906122c5565b60405180910390f35b34801561019257600080fd5b5061019b6105bb565b6040516101a89190612203565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d39190611e52565b6105f8565b6040516101e591906121cd565b60405180910390f35b3480156101fa57600080fd5b506102036106ea565b60405161021091906122c5565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611dff565b6106f4565b60405161024d91906121cd565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190611d65565b6108f4565b60405161028a91906121cd565b60405180910390f35b34801561029f57600080fd5b506102a861094d565b6040516102b59190612363565b60405180910390f35b3480156102ca57600080fd5b506102d3610956565b005b3480156102e157600080fd5b506102ea6109c1565b6040516102f791906122c5565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190611ebf565b6109c7565b005b34801561033557600080fd5b50610350600480360381019061034b9190611d65565b610a37565b60405161035d91906121cd565b60405180910390f35b34801561037257600080fd5b5061037b610a6a565b60405161038891906122c5565b60405180910390f35b34801561039d57600080fd5b506103a6610a70565b6040516103b391906121cd565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190611d65565b610a83565b6040516103f091906122c5565b60405180910390f35b34801561040557600080fd5b5061040e610acc565b005b34801561041c57600080fd5b50610425610b8f565b60405161043291906122c5565b60405180910390f35b34801561044757600080fd5b50610450610b95565b60405161045d9190612151565b60405180910390f35b34801561047257600080fd5b5061047b610bbe565b6040516104889190612203565b60405180910390f35b34801561049d57600080fd5b506104a6610bfb565b6040516104b39190612151565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190611e52565b610c21565b6040516104f091906121cd565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190611dbf565b610c36565b60405161052d91906122c5565b60405180910390f35b34801561054257600080fd5b5061054b610cbd565b6040516105589190612151565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190611e92565b610ce3565b005b34801561059657600080fd5b5061059f610d4f565b6040516105ac91906121e8565b60405180910390f35b60115481565b60606040518060400160405280601081526020017f446f6e616c64205472756d7020494e5500000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d891906122c5565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108e05761085f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e3a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108eb848484610e9e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109be573d6000803e3d6000fd5b50565b60035481565b6109d0336108f4565b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906122a5565b60405180910390fd5b81600a8190555080600b81905550600b54600a54610a2d91906123de565b600c819055505050565b6000610a63827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105f8565b9050919050565b60045481565b601060149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ad5336108f4565b610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906122a5565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b859190612151565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f445452554d500000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c2e338484610e9e565b905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cec336108f4565b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d22906122a5565b60405180910390fd5b6103e881600354610d3c9190612465565b610d469190612434565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415610d885760009050610dea565b60008284610d969190612465565b9050828482610da59190612434565b14610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612285565b60405180910390fd5b809150505b92915050565b6000610e3283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611267565b905092915050565b6000838311158290610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e799190612203565b60405180910390fd5b5060008385610e9191906124bf565b9050809150509392505050565b6000601260009054906101000a900460ff1615610ec757610ec08484846112ca565b9050611260565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f735750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561105c57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061101c575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101991906123de565b11155b61105b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105290612225565b60405180910390fd5b5b61106461149d565b1561107257611071611574565b5b6110fb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e3a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061114985611ace565b611153578261115e565b61115d8584611b25565b5b90506111b281600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6990919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161125291906122c5565b60405180910390a360019150505b9392505050565b600080831182906112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59190612203565b60405180910390fd5b50600083856112bd9190612434565b9050809150509392505050565b6000611355826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e3a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113ea82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161148a91906122c5565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561150a5750601260009054906101000a900460ff16155b80156115225750601060149054906101000a900460ff165b801561156f5750601154600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff0219169083151502179055506000601154905060006115d460026115c6600c546115b8600a5487610d7590919063ffffffff16565b610df090919063ffffffff16565b610df090919063ffffffff16565b905060006115eb8284611cc790919063ffffffff16565b90506000600267ffffffffffffffff81111561160a57611609612650565b5b6040519080825280602002602001820160405280156116385781602001602082028036833780820191505090505b50905030816000815181106116505761164f612621565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f257600080fd5b505afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190611d92565b8160018151811061173e5761173d612621565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016117e19594939291906122e0565b600060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b5050505060006118288247611cc790919063ffffffff16565b905060006118566118456002600a54610df090919063ffffffff16565b600c54611cc790919063ffffffff16565b90506000611894600261188684611878600a5488610d7590919063ffffffff16565b610df090919063ffffffff16565b610df090919063ffffffff16565b905060006118bf836118b1600b5487610d7590919063ffffffff16565b610df090919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161190d9061213c565b600060405180830381858888f193505050503d806000811461194b576040519150601f19603f3d011682016040523d82523d6000602084013e611950565b606091505b5050905080611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90612265565b60405180910390fd5b6000891115611aa757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c6000807350c7f9164b527341e0e72439d27bbfcc63bf9381426040518863ffffffff1660e01b8152600401611a189695949392919061216c565b6060604051808303818588803b158015611a3157600080fd5b505af1158015611a45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a6a9190611eff565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611a9e92919061233a565b60405180910390a15b505050505050505050506000601260006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611b51600d54611b43600c5486610d7590919063ffffffff16565b610df090919063ffffffff16565b9050611ba581600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4591906122c5565b60405180910390a3611c608184611cc790919063ffffffff16565b91505092915050565b6000808284611c7891906123de565b905083811015611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb490612245565b60405180910390fd5b8091505092915050565b6000611d0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e3a565b905092915050565b600081359050611d20816127b1565b92915050565b600081519050611d35816127b1565b92915050565b600081359050611d4a816127c8565b92915050565b600081519050611d5f816127c8565b92915050565b600060208284031215611d7b57611d7a61267f565b5b6000611d8984828501611d11565b91505092915050565b600060208284031215611da857611da761267f565b5b6000611db684828501611d26565b91505092915050565b60008060408385031215611dd657611dd561267f565b5b6000611de485828601611d11565b9250506020611df585828601611d11565b9150509250929050565b600080600060608486031215611e1857611e1761267f565b5b6000611e2686828701611d11565b9350506020611e3786828701611d11565b9250506040611e4886828701611d3b565b9150509250925092565b60008060408385031215611e6957611e6861267f565b5b6000611e7785828601611d11565b9250506020611e8885828601611d3b565b9150509250929050565b600060208284031215611ea857611ea761267f565b5b6000611eb684828501611d3b565b91505092915050565b60008060408385031215611ed657611ed561267f565b5b6000611ee485828601611d3b565b9250506020611ef585828601611d3b565b9150509250929050565b600080600060608486031215611f1857611f1761267f565b5b6000611f2686828701611d50565b9350506020611f3786828701611d50565b9250506040611f4886828701611d50565b9150509250925092565b6000611f5e8383611f6a565b60208301905092915050565b611f73816124f3565b82525050565b611f82816124f3565b82525050565b6000611f938261238e565b611f9d81856123b1565b9350611fa88361237e565b8060005b83811015611fd9578151611fc08882611f52565b9750611fcb836123a4565b925050600181019050611fac565b5085935050505092915050565b611fef81612505565b82525050565b611ffe81612548565b82525050565b61200d8161255a565b82525050565b600061201e82612399565b61202881856123cd565b9350612038818560208601612590565b61204181612684565b840191505092915050565b60006120596025836123cd565b915061206482612695565b604082019050919050565b600061207c601b836123cd565b9150612087826126e4565b602082019050919050565b600061209f601e836123cd565b91506120aa8261270d565b602082019050919050565b60006120c26021836123cd565b91506120cd82612736565b604082019050919050565b60006120e56006836123cd565b91506120f082612785565b602082019050919050565b60006121086000836123c2565b9150612113826127ae565b600082019050919050565b61212781612531565b82525050565b6121368161253b565b82525050565b6000612147826120fb565b9150819050919050565b60006020820190506121666000830184611f79565b92915050565b600060c0820190506121816000830189611f79565b61218e602083018861211e565b61219b6040830187612004565b6121a86060830186612004565b6121b56080830185611f79565b6121c260a083018461211e565b979650505050505050565b60006020820190506121e26000830184611fe6565b92915050565b60006020820190506121fd6000830184611ff5565b92915050565b6000602082019050818103600083015261221d8184612013565b905092915050565b6000602082019050818103600083015261223e8161204c565b9050919050565b6000602082019050818103600083015261225e8161206f565b9050919050565b6000602082019050818103600083015261227e81612092565b9050919050565b6000602082019050818103600083015261229e816120b5565b9050919050565b600060208201905081810360008301526122be816120d8565b9050919050565b60006020820190506122da600083018461211e565b92915050565b600060a0820190506122f5600083018861211e565b6123026020830187612004565b81810360408301526123148186611f88565b90506123236060830185611f79565b612330608083018461211e565b9695505050505050565b600060408201905061234f600083018561211e565b61235c602083018461211e565b9392505050565b6000602082019050612378600083018461212d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006123e982612531565b91506123f483612531565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612429576124286125c3565b5b828201905092915050565b600061243f82612531565b915061244a83612531565b92508261245a576124596125f2565b5b828204905092915050565b600061247082612531565b915061247b83612531565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124b4576124b36125c3565b5b828202905092915050565b60006124ca82612531565b91506124d583612531565b9250828210156124e8576124e76125c3565b5b828203905092915050565b60006124fe82612511565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006125538261256c565b9050919050565b600061256582612531565b9050919050565b60006125778261257e565b9050919050565b600061258982612511565b9050919050565b60005b838110156125ae578082015181840152602081019050612593565b838111156125bd576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b6127ba816124f3565b81146127c557600080fd5b50565b6127d181612531565b81146127dc57600080fd5b5056fea26469706673582212201fd3608bd1f1a40997e8b51787f3bd088b2f346f86f028404ec233f19f50774264736f6c63430008070033

Deployed ByteCode Sourcemap

4259:7833:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5354:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6439:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6861:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6169:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7379:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2497:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6263:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11521:118;;;;;;;;;;;;;:::i;:::-;;4606:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11797:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7085:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4667:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5317:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2606:131;;;;;;;;;;;;;:::i;:::-;;4733:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6525:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6349:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5289:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7215:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5169:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11647:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5258:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5354:54;;;;:::o;6439:80::-;6487:13;6511:5;;;;;;;;;;;;;;;;;6504:12;;6439:80;:::o;6861:216::-;6936:4;6988:6;6953:11;:23;6965:10;6953:23;;;;;;;;;;;;;;;:32;6977:7;6953:32;;;;;;;;;;;;;;;:41;;;;7031:7;7010:37;;7019:10;7010:37;;;7040:6;7010:37;;;;;;:::i;:::-;;;;;;;;7065:4;7058:11;;6861:216;;;;:::o;6169:88::-;6224:7;6242:12;;6235:19;;6169:88;:::o;7379:370::-;7479:4;7534:17;7499:11;:19;7511:6;7499:19;;;;;;;;;;;;;;;:31;7519:10;7499:31;;;;;;;;;;;;;;;;:52;7496:186;;7601:69;7637:6;7601:69;;;;;;;;;;;;;;;;;:11;:19;7613:6;7601:19;;;;;;;;;;;;;;;:31;7621:10;7601:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7567:11;:19;7579:6;7567:19;;;;;;;;;;;;;;;:31;7587:10;7567:31;;;;;;;;;;;;;;;:103;;;;7496:186;7701:40;7715:6;7723:9;7734:6;7701:13;:40::i;:::-;7694:47;;7379:370;;;;;:::o;2497:103::-;2552:4;2587:5;;;;;;;;;;;2576:16;;:7;:16;;;2569:23;;2497:103;;;:::o;6263:80::-;6315:5;4596:1;6324:16;;6263:80;:::o;11521:118::-;11578:20;;;;;;;;;;;11570:38;;:61;11609:21;11570:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11521:118::o;4606:54::-;;;;:::o;11797:220::-;2450:19;2458:10;2450:7;:19::i;:::-;2442:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11905:13:::1;11890:12;:28;;;;11946:13;11931:12;:28;;;;11997:12;;11982;;:27;;;;:::i;:::-;11971:8;:38;;;;11797:220:::0;;:::o;7085:122::-;7140:4;7164:35;7172:7;7181:17;7164:7;:35::i;:::-;7157:42;;7085:122;;;:::o;4667:59::-;;;;:::o;5317:30::-;;;;;;;;;;;;;:::o;6609:105::-;6675:7;6693:9;:18;6703:7;6693:18;;;;;;;;;;;;;;;;6686:25;;6609:105;;;:::o;2606:131::-;2450:19;2458:10;2450:7;:19::i;:::-;2442:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2679:1:::1;2663:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2697:32;2726:1;2697:32;;;;;;:::i;:::-;;;;;;;;2606:131::o:0;4733:59::-;;;;:::o;6525:78::-;6577:7;6595:5;;;;;;;;;;;6588:12;;6525:78;:::o;6349:84::-;6399:13;6423:7;;;;;;;;;;;;;;;;;6416:14;;6349:84;:::o;5289:19::-;;;;;;;;;;;;;:::o;7215:156::-;7295:4;7319:44;7333:10;7345:9;7356:6;7319:13;:44::i;:::-;7312:51;;7215:156;;;;:::o;6720:133::-;6804:7;6822:11;:19;6834:6;6822:19;;;;;;;;;;;;;;;:28;6842:7;6822:28;;;;;;;;;;;;;;;;6815:35;;6720:133;;;;:::o;5169:80::-;;;;;;;;;;;;;:::o;11647:142::-;2450:19;2458:10;2450:7;:19::i;:::-;2442:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11777:4:::1;11759:13;11744:12;;:28;;;;:::i;:::-;11743:38;;;;:::i;:::-;11724:16;:57;;;;11647:142:::0;:::o;5258:24::-;;;;;;;;;;;;;:::o;782:246::-;840:7;869:1;864;:6;860:47;;;894:1;887:8;;;;860:47;917:9;933:1;929;:5;;;;:::i;:::-;917:17;;962:1;957;953;:5;;;;:::i;:::-;:10;945:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1019:1;1012:8;;;782:246;;;;;:::o;1034:132::-;1092:7;1119:39;1123:1;1126;1119:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1112:46;;1034:132;;;;:::o;586:190::-;672:7;705:1;700;:6;;708:12;692:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;732:9;748:1;744;:5;;;;:::i;:::-;732:17;;767:1;760:8;;;586:190;;;;;:::o;7757:792::-;7849:4;7869:6;;;;;;;;;;;7866:63;;;7885:41;7900:6;7908:9;7919:6;7885:14;:41::i;:::-;7878:48;;;;7866:63;7966:4;;;;;;;;;;;7953:17;;:9;:17;;;;:38;;;;;7987:4;;;;;;;;;;;7974:17;;:9;:17;;;;7953:38;7949:200;;;8016:15;:26;8032:9;8016:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8079:16;;8069:6;8046:9;:20;8056:9;8046:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8016:79;8008:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7949:200;8172:16;:14;:16::i;:::-;8169:35;;;8191:10;:8;:10::i;:::-;8169:35;8237:53;8259:6;8237:53;;;;;;;;;;;;;;;;;:9;:17;8247:6;8237:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8217:9;:17;8227:6;8217:17;;;;;;;;;;;;;;;:73;;;;8303:22;8328:21;8342:6;8328:13;:21::i;:::-;:56;;8378:6;8328:56;;;8352:23;8360:6;8368;8352:7;:23::i;:::-;8328:56;8303:81;;8418:40;8443:14;8418:9;:20;8428:9;8418:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8395:9;:20;8405:9;8395:20;;;;;;;;;;;;;;;:63;;;;8493:9;8476:43;;8485:6;8476:43;;;8504:14;8476:43;;;;;;:::i;:::-;;;;;;;;8537:4;8530:11;;;7757:792;;;;;;:::o;1172:189::-;1258:7;1290:1;1286;:5;1293:12;1278:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1317:9;1333:1;1329;:5;;;;:::i;:::-;1317:17;;1352:1;1345:8;;;1172:189;;;;;:::o;8561:330::-;8654:4;8691:53;8713:6;8691:53;;;;;;;;;;;;;;;;;:9;:17;8701:6;8691:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8671:9;:17;8681:6;8671:17;;;;;;;;;;;;;;;:73;;;;8778:32;8803:6;8778:9;:20;8788:9;8778:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8755:9;:20;8765:9;8755:20;;;;;;;;;;;;;;;:55;;;;8843:9;8826:35;;8835:6;8826:35;;;8854:6;8826:35;;;;;;:::i;:::-;;;;;;;;8879:4;8872:11;;8561:330;;;;;:::o;9358:197::-;9407:4;9445;;;;;;;;;;;9431:18;;:10;:18;;;;:38;;;;;9463:6;;;;;;;;;;;9462:7;9431:38;:62;;;;;9482:11;;;;;;;;;;;9431:62;:116;;;;;9534:13;;9506:9;:24;9524:4;9506:24;;;;;;;;;;;;;;;;:41;;9431:116;9424:123;;9358:197;:::o;9563:1572::-;5472:4;5463:6;;:13;;;;;;;;;;;;;;;;;;9612:28:::1;9643:13;;9612:44;;9667:23;9693:59;9750:1;9693:52;9736:8;;9693:38;9718:12;;9693:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9667:85;;9763:20;9786:41;9811:15;9786:20;:24;;:41;;;;:::i;:::-;9763:64;;9840:21;9878:1;9864:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9840:40;;9909:4;9891;9896:1;9891:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9935:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9925:4;9930:1;9925:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9961:21;9985;9961:45;;10019:6;;;;;;;;;;;:57;;;10091:12;10118:1;10134:4;10161;10181:15;10019:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10218:17;10238:40;10264:13;10238:21;:25;;:40;;;;:::i;:::-;10218:60;;10289:19;10311:33;10324:19;10341:1;10324:12;;:16;;:19;;;;:::i;:::-;10311:8;;:12;;:33;;;;:::i;:::-;10289:55;;10355:26;10384:51;10433:1;10384:44;10416:11;10384:27;10398:12;;10384:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10355:80;;10446:26;10475:44;10507:11;10475:27;10489:12;;10475:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10446:73;;10535:21;10593:20;;;;;;;;;;;10585:34;;10627:18;10652:5;10585:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10534:128;;;10681:16;10673:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:1;10748:15;:19;10745:383;;;10783:6;;;;;;;;;;;:22;;;10813:18;10859:4;10883:15;10917:1;10937::::0;10957:42:::1;11018:15;10783:265;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11068:48;11080:18;11100:15;11068:48;;;;;;;:::i;:::-;;;;;;;;10745:383;9601:1534;;;;;;;;;;5490:5:::0;5481:6;;:14;;;;;;;;;;;;;;;;;;9563:1572::o;8899:114::-;8961:4;8986:11;:19;8998:6;8986:19;;;;;;;;;;;;;;;;;;;;;;;;;8985:20;8978:27;;8899:114;;;:::o;9021:329::-;9088:7;9108:17;9128:40;9153:14;;9128:20;9139:8;;9128:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9108:60;;9206:39;9235:9;9206;:24;9224:4;9206:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9179:9;:24;9197:4;9179:24;;;;;;;;;;;;;;;:66;;;;9286:4;9261:42;;9270:6;9261:42;;;9293:9;9261:42;;;;;;:::i;:::-;;;;;;;;9321:21;9332:9;9321:6;:10;;:21;;;;:::i;:::-;9314:28;;;9021:329;;;;:::o;259:179::-;317:7;337:9;353:1;349;:5;;;;:::i;:::-;337:17;;378:1;373;:6;;365:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;429:1;422:8;;;259:179;;;;:::o;444:136::-;502:7;529:43;533:1;536;529:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;522:50;;444:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;301:139;;;;:::o;446:143::-;503:5;534:6;528:13;519:22;;550:33;577:5;550:33;:::i;:::-;446:143;;;;:::o;595:329::-;654:6;703:2;691:9;682:7;678:23;674:32;671:119;;;709:79;;:::i;:::-;671:119;829:1;854:53;899:7;890:6;879:9;875:22;854:53;:::i;:::-;844:63;;800:117;595:329;;;;:::o;930:351::-;1000:6;1049:2;1037:9;1028:7;1024:23;1020:32;1017:119;;;1055:79;;:::i;:::-;1017:119;1175:1;1200:64;1256:7;1247:6;1236:9;1232:22;1200:64;:::i;:::-;1190:74;;1146:128;930:351;;;;:::o;1287:474::-;1355:6;1363;1412:2;1400:9;1391:7;1387:23;1383:32;1380:119;;;1418:79;;:::i;:::-;1380:119;1538:1;1563:53;1608:7;1599:6;1588:9;1584:22;1563:53;:::i;:::-;1553:63;;1509:117;1665:2;1691:53;1736:7;1727:6;1716:9;1712:22;1691:53;:::i;:::-;1681:63;;1636:118;1287:474;;;;;:::o;1767:619::-;1844:6;1852;1860;1909:2;1897:9;1888:7;1884:23;1880:32;1877:119;;;1915:79;;:::i;:::-;1877:119;2035:1;2060:53;2105:7;2096:6;2085:9;2081:22;2060:53;:::i;:::-;2050:63;;2006:117;2162:2;2188:53;2233:7;2224:6;2213:9;2209:22;2188:53;:::i;:::-;2178:63;;2133:118;2290:2;2316:53;2361:7;2352:6;2341:9;2337:22;2316:53;:::i;:::-;2306:63;;2261:118;1767:619;;;;;:::o;2392:474::-;2460:6;2468;2517:2;2505:9;2496:7;2492:23;2488:32;2485:119;;;2523:79;;:::i;:::-;2485:119;2643:1;2668:53;2713:7;2704:6;2693:9;2689:22;2668:53;:::i;:::-;2658:63;;2614:117;2770:2;2796:53;2841:7;2832:6;2821:9;2817:22;2796:53;:::i;:::-;2786:63;;2741:118;2392:474;;;;;:::o;2872:329::-;2931:6;2980:2;2968:9;2959:7;2955:23;2951:32;2948:119;;;2986:79;;:::i;:::-;2948:119;3106:1;3131:53;3176:7;3167:6;3156:9;3152:22;3131:53;:::i;:::-;3121:63;;3077:117;2872:329;;;;:::o;3207:474::-;3275:6;3283;3332:2;3320:9;3311:7;3307:23;3303:32;3300:119;;;3338:79;;:::i;:::-;3300:119;3458:1;3483:53;3528:7;3519:6;3508:9;3504:22;3483:53;:::i;:::-;3473:63;;3429:117;3585:2;3611:53;3656:7;3647:6;3636:9;3632:22;3611:53;:::i;:::-;3601:63;;3556:118;3207:474;;;;;:::o;3687:663::-;3775:6;3783;3791;3840:2;3828:9;3819:7;3815:23;3811:32;3808:119;;;3846:79;;:::i;:::-;3808:119;3966:1;3991:64;4047:7;4038:6;4027:9;4023:22;3991:64;:::i;:::-;3981:74;;3937:128;4104:2;4130:64;4186:7;4177:6;4166:9;4162:22;4130:64;:::i;:::-;4120:74;;4075:129;4243:2;4269:64;4325:7;4316:6;4305:9;4301:22;4269:64;:::i;:::-;4259:74;;4214:129;3687:663;;;;;:::o;4356:179::-;4425:10;4446:46;4488:3;4480:6;4446:46;:::i;:::-;4524:4;4519:3;4515:14;4501:28;;4356:179;;;;:::o;4541:108::-;4618:24;4636:5;4618:24;:::i;:::-;4613:3;4606:37;4541:108;;:::o;4655:118::-;4742:24;4760:5;4742:24;:::i;:::-;4737:3;4730:37;4655:118;;:::o;4809:732::-;4928:3;4957:54;5005:5;4957:54;:::i;:::-;5027:86;5106:6;5101:3;5027:86;:::i;:::-;5020:93;;5137:56;5187:5;5137:56;:::i;:::-;5216:7;5247:1;5232:284;5257:6;5254:1;5251:13;5232:284;;;5333:6;5327:13;5360:63;5419:3;5404:13;5360:63;:::i;:::-;5353:70;;5446:60;5499:6;5446:60;:::i;:::-;5436:70;;5292:224;5279:1;5276;5272:9;5267:14;;5232:284;;;5236:14;5532:3;5525:10;;4933:608;;;4809:732;;;;:::o;5547:109::-;5628:21;5643:5;5628:21;:::i;:::-;5623:3;5616:34;5547:109;;:::o;5662:167::-;5767:55;5816:5;5767:55;:::i;:::-;5762:3;5755:68;5662:167;;:::o;5835:147::-;5930:45;5969:5;5930:45;:::i;:::-;5925:3;5918:58;5835:147;;:::o;5988:364::-;6076:3;6104:39;6137:5;6104:39;:::i;:::-;6159:71;6223:6;6218:3;6159:71;:::i;:::-;6152:78;;6239:52;6284:6;6279:3;6272:4;6265:5;6261:16;6239:52;:::i;:::-;6316:29;6338:6;6316:29;:::i;:::-;6311:3;6307:39;6300:46;;6080:272;5988:364;;;;:::o;6358:366::-;6500:3;6521:67;6585:2;6580:3;6521:67;:::i;:::-;6514:74;;6597:93;6686:3;6597:93;:::i;:::-;6715:2;6710:3;6706:12;6699:19;;6358:366;;;:::o;6730:::-;6872:3;6893:67;6957:2;6952:3;6893:67;:::i;:::-;6886:74;;6969:93;7058:3;6969:93;:::i;:::-;7087:2;7082:3;7078:12;7071:19;;6730:366;;;:::o;7102:::-;7244:3;7265:67;7329:2;7324:3;7265:67;:::i;:::-;7258:74;;7341:93;7430:3;7341:93;:::i;:::-;7459:2;7454:3;7450:12;7443:19;;7102:366;;;:::o;7474:::-;7616:3;7637:67;7701:2;7696:3;7637:67;:::i;:::-;7630:74;;7713:93;7802:3;7713:93;:::i;:::-;7831:2;7826:3;7822:12;7815:19;;7474:366;;;:::o;7846:365::-;7988:3;8009:66;8073:1;8068:3;8009:66;:::i;:::-;8002:73;;8084:93;8173:3;8084:93;:::i;:::-;8202:2;8197:3;8193:12;8186:19;;7846:365;;;:::o;8217:398::-;8376:3;8397:83;8478:1;8473:3;8397:83;:::i;:::-;8390:90;;8489:93;8578:3;8489:93;:::i;:::-;8607:1;8602:3;8598:11;8591:18;;8217:398;;;:::o;8621:118::-;8708:24;8726:5;8708:24;:::i;:::-;8703:3;8696:37;8621:118;;:::o;8745:112::-;8828:22;8844:5;8828:22;:::i;:::-;8823:3;8816:35;8745:112;;:::o;8863:379::-;9047:3;9069:147;9212:3;9069:147;:::i;:::-;9062:154;;9233:3;9226:10;;8863:379;;;:::o;9248:222::-;9341:4;9379:2;9368:9;9364:18;9356:26;;9392:71;9460:1;9449:9;9445:17;9436:6;9392:71;:::i;:::-;9248:222;;;;:::o;9476:807::-;9725:4;9763:3;9752:9;9748:19;9740:27;;9777:71;9845:1;9834:9;9830:17;9821:6;9777:71;:::i;:::-;9858:72;9926:2;9915:9;9911:18;9902:6;9858:72;:::i;:::-;9940:80;10016:2;10005:9;10001:18;9992:6;9940:80;:::i;:::-;10030;10106:2;10095:9;10091:18;10082:6;10030:80;:::i;:::-;10120:73;10188:3;10177:9;10173:19;10164:6;10120:73;:::i;:::-;10203;10271:3;10260:9;10256:19;10247:6;10203:73;:::i;:::-;9476:807;;;;;;;;;:::o;10289:210::-;10376:4;10414:2;10403:9;10399:18;10391:26;;10427:65;10489:1;10478:9;10474:17;10465:6;10427:65;:::i;:::-;10289:210;;;;:::o;10505:258::-;10616:4;10654:2;10643:9;10639:18;10631:26;;10667:89;10753:1;10742:9;10738:17;10729:6;10667:89;:::i;:::-;10505:258;;;;:::o;10769:313::-;10882:4;10920:2;10909:9;10905:18;10897:26;;10969:9;10963:4;10959:20;10955:1;10944:9;10940:17;10933:47;10997:78;11070:4;11061:6;10997:78;:::i;:::-;10989:86;;10769:313;;;;:::o;11088:419::-;11254:4;11292:2;11281:9;11277:18;11269:26;;11341:9;11335:4;11331:20;11327:1;11316:9;11312:17;11305:47;11369:131;11495:4;11369:131;:::i;:::-;11361:139;;11088:419;;;:::o;11513:::-;11679:4;11717:2;11706:9;11702:18;11694:26;;11766:9;11760:4;11756:20;11752:1;11741:9;11737:17;11730:47;11794:131;11920:4;11794:131;:::i;:::-;11786:139;;11513:419;;;:::o;11938:::-;12104:4;12142:2;12131:9;12127:18;12119:26;;12191:9;12185:4;12181:20;12177:1;12166:9;12162:17;12155:47;12219:131;12345:4;12219:131;:::i;:::-;12211:139;;11938:419;;;:::o;12363:::-;12529:4;12567:2;12556:9;12552:18;12544:26;;12616:9;12610:4;12606:20;12602:1;12591:9;12587:17;12580:47;12644:131;12770:4;12644:131;:::i;:::-;12636:139;;12363:419;;;:::o;12788:::-;12954:4;12992:2;12981:9;12977:18;12969:26;;13041:9;13035:4;13031:20;13027:1;13016:9;13012:17;13005:47;13069:131;13195:4;13069:131;:::i;:::-;13061:139;;12788:419;;;:::o;13213:222::-;13306:4;13344:2;13333:9;13329:18;13321:26;;13357:71;13425:1;13414:9;13410:17;13401:6;13357:71;:::i;:::-;13213:222;;;;:::o;13441:831::-;13704:4;13742:3;13731:9;13727:19;13719:27;;13756:71;13824:1;13813:9;13809:17;13800:6;13756:71;:::i;:::-;13837:80;13913:2;13902:9;13898:18;13889:6;13837:80;:::i;:::-;13964:9;13958:4;13954:20;13949:2;13938:9;13934:18;13927:48;13992:108;14095:4;14086:6;13992:108;:::i;:::-;13984:116;;14110:72;14178:2;14167:9;14163:18;14154:6;14110:72;:::i;:::-;14192:73;14260:3;14249:9;14245:19;14236:6;14192:73;:::i;:::-;13441:831;;;;;;;;:::o;14278:332::-;14399:4;14437:2;14426:9;14422:18;14414:26;;14450:71;14518:1;14507:9;14503:17;14494:6;14450:71;:::i;:::-;14531:72;14599:2;14588:9;14584:18;14575:6;14531:72;:::i;:::-;14278:332;;;;;:::o;14616:214::-;14705:4;14743:2;14732:9;14728:18;14720:26;;14756:67;14820:1;14809:9;14805:17;14796:6;14756:67;:::i;:::-;14616:214;;;;:::o;14917:132::-;14984:4;15007:3;14999:11;;15037:4;15032:3;15028:14;15020:22;;14917:132;;;:::o;15055:114::-;15122:6;15156:5;15150:12;15140:22;;15055:114;;;:::o;15175:99::-;15227:6;15261:5;15255:12;15245:22;;15175:99;;;:::o;15280:113::-;15350:4;15382;15377:3;15373:14;15365:22;;15280:113;;;:::o;15399:184::-;15498:11;15532:6;15527:3;15520:19;15572:4;15567:3;15563:14;15548:29;;15399:184;;;;:::o;15589:147::-;15690:11;15727:3;15712:18;;15589:147;;;;:::o;15742:169::-;15826:11;15860:6;15855:3;15848:19;15900:4;15895:3;15891:14;15876:29;;15742:169;;;;:::o;15917:305::-;15957:3;15976:20;15994:1;15976:20;:::i;:::-;15971:25;;16010:20;16028:1;16010:20;:::i;:::-;16005:25;;16164:1;16096:66;16092:74;16089:1;16086:81;16083:107;;;16170:18;;:::i;:::-;16083:107;16214:1;16211;16207:9;16200:16;;15917:305;;;;:::o;16228:185::-;16268:1;16285:20;16303:1;16285:20;:::i;:::-;16280:25;;16319:20;16337:1;16319:20;:::i;:::-;16314:25;;16358:1;16348:35;;16363:18;;:::i;:::-;16348:35;16405:1;16402;16398:9;16393:14;;16228:185;;;;:::o;16419:348::-;16459:7;16482:20;16500:1;16482:20;:::i;:::-;16477:25;;16516:20;16534:1;16516:20;:::i;:::-;16511:25;;16704:1;16636:66;16632:74;16629:1;16626:81;16621:1;16614:9;16607:17;16603:105;16600:131;;;16711:18;;:::i;:::-;16600:131;16759:1;16756;16752:9;16741:20;;16419:348;;;;:::o;16773:191::-;16813:4;16833:20;16851:1;16833:20;:::i;:::-;16828:25;;16867:20;16885:1;16867:20;:::i;:::-;16862:25;;16906:1;16903;16900:8;16897:34;;;16911:18;;:::i;:::-;16897:34;16956:1;16953;16949:9;16941:17;;16773:191;;;;:::o;16970:96::-;17007:7;17036:24;17054:5;17036:24;:::i;:::-;17025:35;;16970:96;;;:::o;17072:90::-;17106:7;17149:5;17142:13;17135:21;17124:32;;17072:90;;;:::o;17168:126::-;17205:7;17245:42;17238:5;17234:54;17223:65;;17168:126;;;:::o;17300:77::-;17337:7;17366:5;17355:16;;17300:77;;;:::o;17383:86::-;17418:7;17458:4;17451:5;17447:16;17436:27;;17383:86;;;:::o;17475:144::-;17543:9;17576:37;17607:5;17576:37;:::i;:::-;17563:50;;17475:144;;;:::o;17625:121::-;17683:9;17716:24;17734:5;17716:24;:::i;:::-;17703:37;;17625:121;;;:::o;17752:126::-;17802:9;17835:37;17866:5;17835:37;:::i;:::-;17822:50;;17752:126;;;:::o;17884:113::-;17934:9;17967:24;17985:5;17967:24;:::i;:::-;17954:37;;17884:113;;;:::o;18003:307::-;18071:1;18081:113;18095:6;18092:1;18089:13;18081:113;;;18180:1;18175:3;18171:11;18165:18;18161:1;18156:3;18152:11;18145:39;18117:2;18114:1;18110:10;18105:15;;18081:113;;;18212:6;18209:1;18206:13;18203:101;;;18292:1;18283:6;18278:3;18274:16;18267:27;18203:101;18052:258;18003:307;;;:::o;18316:180::-;18364:77;18361:1;18354:88;18461:4;18458:1;18451:15;18485:4;18482:1;18475:15;18502:180;18550:77;18547:1;18540:88;18647:4;18644:1;18637:15;18671:4;18668:1;18661:15;18688:180;18736:77;18733:1;18726:88;18833:4;18830:1;18823:15;18857:4;18854:1;18847:15;18874:180;18922:77;18919:1;18912:88;19019:4;19016:1;19009:15;19043:4;19040:1;19033:15;19183:117;19292:1;19289;19282:12;19306:102;19347:6;19398:2;19394:7;19389:2;19382:5;19378:14;19374:28;19364:38;;19306:102;;;:::o;19414:224::-;19554:34;19550:1;19542:6;19538:14;19531:58;19623:7;19618:2;19610:6;19606:15;19599:32;19414:224;:::o;19644:177::-;19784:29;19780:1;19772:6;19768:14;19761:53;19644:177;:::o;19827:180::-;19967:32;19963:1;19955:6;19951:14;19944:56;19827:180;:::o;20013:220::-;20153:34;20149:1;20141:6;20137:14;20130:58;20222:3;20217:2;20209:6;20205:15;20198:28;20013:220;:::o;20239:156::-;20379:8;20375:1;20367:6;20363:14;20356:32;20239:156;:::o;20401:114::-;;:::o;20521:122::-;20594:24;20612:5;20594:24;:::i;:::-;20587:5;20584:35;20574:63;;20633:1;20630;20623:12;20574:63;20521:122;:::o;20649:::-;20722:24;20740:5;20722:24;:::i;:::-;20715:5;20712:35;20702:63;;20761:1;20758;20751:12;20702:63;20649:122;:::o

Metadata Hash

ipfs://1fd3608bd1f1a40997e8b51787f3bd088b2f346f86f028404ec233f19f507742
Loading