ETH Price: $3,783.82 (+0.04%)
Gas: 5 Gwei

Contract

0x6E85Fc8D079375ed0cfDE5FC0Fb7CDAE951f25D4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer122185272021-04-11 12:08:291146 days ago1618142909IN
0x6E85Fc8D...E951f25D4
0 ETH0.0013258331
Transfer116578192021-01-15 5:43:021233 days ago1610689382IN
0x6E85Fc8D...E951f25D4
0 ETH0.0034326659.46987987
Transfer116523092021-01-14 9:07:351234 days ago1610615255IN
0x6E85Fc8D...E951f25D4
0 ETH0.0056012697
Approve106510232020-08-13 10:11:521388 days ago1597313512IN
0x6E85Fc8D...E951f25D4
0 ETH0.01479489321
Transfer106505252020-08-13 8:22:431388 days ago1597306963IN
0x6E85Fc8D...E951f25D4
0 ETH0.01854384321
Transfer104409822020-07-11 22:36:351420 days ago1594506995IN
0x6E85Fc8D...E951f25D4
0 ETH0.0026862546.5
Transfer104297452020-07-10 4:55:551422 days ago1594356955IN
0x6E85Fc8D...E951f25D4
0 ETH0.0012827130
Transfer100185112020-05-07 10:25:061486 days ago1588847106IN
0x6E85Fc8D...E951f25D4
0 ETH0.0009238121.60000123
Transfer99773812020-05-01 1:36:181492 days ago1588296978IN
0x6E85Fc8D...E951f25D4
0 ETH0.0009533816.50000023
Transfer99742992020-04-30 13:52:551492 days ago1588254775IN
0x6E85Fc8D...E951f25D4
0 ETH0.001035324.20000023
Transfer99678162020-04-29 13:41:451493 days ago1588167705IN
0x6E85Fc8D...E951f25D4
0 ETH0.0004704511.00000023
Transfer99613062020-04-28 13:37:561494 days ago1588081076IN
0x6E85Fc8D...E951f25D4
0 ETH0.000520969.02000023
Transfer99044642020-04-19 18:28:221503 days ago1587320902IN
0x6E85Fc8D...E951f25D4
0 ETH0.0004275710
Transfer99043782020-04-19 18:08:001503 days ago1587319680IN
0x6E85Fc8D...E951f25D4
0 ETH0.0005775710
Transfer99043382020-04-19 17:57:321503 days ago1587319052IN
0x6E85Fc8D...E951f25D4
0 ETH0.0020052134.71806841
Transfer98829122020-04-16 10:12:561507 days ago1587031976IN
0x6E85Fc8D...E951f25D4
0 ETH0.0009533816.50000023
Transfer98043382020-04-04 8:08:401519 days ago1585987720IN
0x6E85Fc8D...E951f25D4
0 ETH0.000065861.54000023
Transfer98043182020-04-04 8:04:341519 days ago1585987474IN
0x6E85Fc8D...E951f25D4
0 ETH0.000141173.30000023
Transfer97865082020-04-01 14:14:561521 days ago1585750496IN
0x6E85Fc8D...E951f25D4
0 ETH0.000141173.30000023
Transfer97444752020-03-26 3:21:391528 days ago1585192899IN
0x6E85Fc8D...E951f25D4
0 ETH0.0002778110
Transfer97379382020-03-25 2:49:331529 days ago1585104573IN
0x6E85Fc8D...E951f25D4
0 ETH0.0004279310
Transfer97316912020-03-24 3:06:441530 days ago1585019204IN
0x6E85Fc8D...E951f25D4
0 ETH0.0004276910
Transfer97263832020-03-23 7:36:211531 days ago1584948981IN
0x6E85Fc8D...E951f25D4
0 ETH0.0004276910
Transfer97259402020-03-23 5:52:081531 days ago1584942728IN
0x6E85Fc8D...E951f25D4
0 ETH0.0005776910
Transfer97248562020-03-23 1:41:541531 days ago1584927714IN
0x6E85Fc8D...E951f25D4
0 ETH0.0005776910
View all transactions

Advanced mode:
Parent Transaction Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IbsToken

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-11-07
*/

pragma solidity ^0.5.1;

library SafeMath {
        function mul (uint256 a, uint256 b) internal pure returns (uint256) {
                if (a == 0) {
                        return 0;
                }
                uint256 c = a * b;
                assert(c / a == b);
                return c;
        }

        function div (uint256 a, uint256 b) internal pure returns (uint256) {
                return a / b;
        }

        function sub (uint256 a, uint256 b) internal pure returns (uint256) {
                assert(b <= a);
                return a - b;
        }

        function add (uint256 a, uint256 b) internal pure returns (uint256) {
                uint256 c = a + b;
                assert(c >= a);
                return c;
        }
}

contract ERCBasic {
        event Transfer(address indexed from, address indexed to, uint256 value);

        function totalSupply () public view returns (uint256);
        function balanceOf (address who) public view returns (uint256);
        function transfer (address to, uint256 value) public returns (bool);
}

contract ERC is ERCBasic {
        event Approval(address indexed owner, address indexed spender, uint256 value);

        function transferFrom (address from, address to, uint256 value) public returns (bool);
        function allowance (address owner, address spender) public view returns (uint256);
        function approve (address spender, uint256 value) public returns (bool);
}

contract Ownable {
        
        address payable internal owner;
        address internal foundationOwner;

        constructor () public {
                owner = msg.sender;
                foundationOwner = owner;
        }

        modifier onlyOwner () {
                require(msg.sender == owner);
                _;
        }

        modifier hasMintability () {
                require(msg.sender == owner || msg.sender == foundationOwner);
                _;
        }

      
}

contract Pausable is Ownable {
        event ContractPause();
        event ContractResume();
        event ContractPauseSchedule(uint256 from, uint256 to);

        uint256 internal pauseFrom;
        uint256 internal pauseTo;

        modifier whenRunning () {
                require(now < pauseFrom || now > pauseTo);
                _;
        }

        modifier whenPaused () {
                require(now >= pauseFrom && now <= pauseTo);
                _;
        }

        function pause () public onlyOwner {
                pauseFrom = now - 1;
                pauseTo = now + 30000 days;
                emit ContractPause();
        }

        function pause (uint256 from, uint256 to) public onlyOwner {
                require(to > from && to > now);
                pauseFrom = from;
                pauseTo = to;
                emit ContractPauseSchedule(from, to);
        }

        function resume () public onlyOwner {
                pauseFrom = now - 2;
                pauseTo = now - 1;
                emit ContractResume();
        }
}

contract TokenForge is Ownable {
        event ForgeStart();
        event ForgeStop();

        bool public forge_running = true;

        modifier canForge () {
                require(forge_running);
                _;
        }

        modifier cannotForge () {
                require(!forge_running);
                _;
        }

        function startForge () public onlyOwner cannotForge returns (bool) {
                forge_running = true;
                emit ForgeStart();
                return true;
        }

        function stopForge () public onlyOwner canForge returns (bool) {
                forge_running = false;
                emit ForgeStop();
                return true;
        }
}

contract CappedToken is Ownable {
        using SafeMath for uint256;

        uint256 public token_cap;
        uint256 public token_created;
        uint256 public token_foundation_cap;
        uint256 public token_foundation_created;


        constructor (uint256 _cap, uint256 _foundationCap) public {
                token_cap = _cap;
                token_foundation_cap = _foundationCap;
        }

        

        function canMint (uint256 amount) public view returns (bool) {
                return (token_cap == 0) || (token_created.add(amount) <= token_cap);
        }
        
        function canMintFoundation(uint256 amount) internal view returns(bool) {
                return(token_foundation_created.add(amount) <= token_foundation_cap);
        }
}

contract BasicToken is ERCBasic, Pausable {
        using SafeMath for uint256;

        mapping(address => uint256) public wallets;

        modifier canTransfer (address _from, address _to, uint256 amount) {
                require((_from != address(0)) && (_to != address(0)));
                require(_from != _to);
                require(amount > 0);
                _;
        }

        function balanceOf (address user) public view returns (uint256) {
                return wallets[user];
        }
}

contract DelegatableToken is ERC, BasicToken {
        using SafeMath for uint256;

        mapping(address => mapping(address => uint256)) public warrants;

        function allowance (address owner, address delegator) public view returns (uint256) {
                return warrants[owner][delegator];
        }

        function approve (address delegator, uint256 value) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }

        function increaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                uint256 value = warrants[msg.sender][delegator].add(delta);
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }

        function decreaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                uint256 value = warrants[msg.sender][delegator];
                if (value < delta) {
                        value = 0;
                }
                else {
                        value = value.sub(delta);
                }
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }
}

contract LockableProtocol is BasicToken {
        function invest (address investor, uint256 amount) public returns (bool);
        function getInvestedToken (address investor) public view returns (uint256);
        function getLockedToken (address investor) public view returns (uint256);
        function availableWallet (address user) public view returns (uint256) {
                return wallets[user].sub(getLockedToken(user));
        }
}

contract MintAndBurnToken is TokenForge, CappedToken, LockableProtocol {
        using SafeMath for uint256;
        
        event Mint(address indexed user, uint256 amount);
        event Burn(address indexed user, uint256 amount);

        constructor (uint256 _initial, uint256 _cap, uint256 _Cap) public CappedToken(_cap, _Cap) {
                token_created = _initial;
                wallets[msg.sender] = _initial;

        emit Mint(msg.sender, _initial);
        emit Transfer(address(0), msg.sender, _initial);
        }

        function totalSupply () public view returns (uint256) {
                return token_created;
        }

        function totalFountainSupply() public view returns(uint256) {
                return token_foundation_created;
        }

        function mint (address target, uint256 amount) public hasMintability whenRunning canForge returns (bool) {
                require(target != owner && target != foundationOwner);
                require(canMint(amount));

        if (msg.sender == foundationOwner) {
                require(canMintFoundation(amount));
                token_foundation_created = token_foundation_created.add(amount);
        }
        
        token_created = token_created.add(amount);
        wallets[target] = wallets[target].add(amount);

        emit Mint(target, amount);
        emit Transfer(address(0), target, amount);
        return true;
        }

        function burn (uint256 amount) public whenRunning canForge returns (bool) {
                uint256 balance = availableWallet(msg.sender);
                require(amount <= balance);

        token_created = token_created.sub(amount);
        wallets[msg.sender] = wallets[msg.sender].sub(amount);

        emit Burn(msg.sender, amount);
        emit Transfer(msg.sender, address(0), amount);

        return true;
        }
}

contract LockableToken is MintAndBurnToken, DelegatableToken {
        using SafeMath for uint256;

        struct LockBin {
                uint256 start;
                uint256 finish;
                uint256 duration;
                uint256 amount;
        }

        event InvestStart();
        event InvestStop();
        event NewInvest(uint256 release_start, uint256 release_duration);

        uint256 public releaseStart;
        uint256 public releaseDuration;
        bool public forceStopInvest;
        mapping(address => mapping(uint => LockBin)) public lockbins;

        modifier canInvest () {
                require(!forceStopInvest);
                _;
        }

        constructor (uint256 _initial, uint256 _cap, uint256 _Cap) public MintAndBurnToken(_initial, _cap, _Cap) {
                forceStopInvest = true;
        }

        function pauseInvest () public onlyOwner whenRunning returns (bool) {
                require(!forceStopInvest);
                forceStopInvest = true;
                emit InvestStop();
                return true;
        }

        function resumeInvest () public onlyOwner whenRunning returns (bool) {
                require(forceStopInvest);
                forceStopInvest = false;
                emit InvestStart();
                return true;
        }

        function setInvest (uint256 release_start, uint256 release_duration) public onlyOwner whenRunning returns (bool) {
                releaseStart = release_start;
                releaseDuration = release_duration;
                forceStopInvest = false;

        emit NewInvest(release_start, release_duration);
        return true;
        }

        function invest (address investor, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) {
                require(investor != address(0));
                require(investor != owner);
                require(investor != foundationOwner);
                require(amount > 0);
                require(canMint(amount));

        mapping(uint => LockBin) storage locks = lockbins[investor];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;

        token_created = token_created.add(amount);
        wallets[investor] = wallets[investor].add(amount);
        emit Mint(investor, amount);
        emit Transfer(address(0), investor, amount);

        return true;
        }

        function batchInvest (address[] memory investors, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) {
                require(amount > 0);

        uint investorsLength = investors.length;
        uint investorsCount = 0;
        uint i;
        address r;
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner || r == foundationOwner) continue;
                investorsCount ++;
        }
        require(investorsCount > 0);

        uint256 totalAmount = amount.mul(uint256(investorsCount));
        require(canMint(totalAmount));

        token_created = token_created.add(totalAmount);

        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner || r == foundationOwner) continue;

        mapping(uint => LockBin) storage locks = lockbins[r];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;

        wallets[r] = wallets[r].add(amount);
        emit Mint(r, amount);
        emit Transfer(address(0), r, amount);
        }

        return true;
        }

        function batchInvests (address[] memory investors, uint256[] memory amounts) public onlyOwner whenRunning canInvest returns (bool) {
                uint investorsLength = investors.length;
                require(investorsLength == amounts.length);

        uint investorsCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner) continue;
                investorsCount ++;
                totalAmount = totalAmount.add(amounts[i]);
        }
        require(totalAmount > 0);
        require(canMint(totalAmount));

        uint256 amount;
        token_created = token_created.add(totalAmount);
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                wallets[r] = wallets[r].add(amount);
                emit Mint(r, amount);
                emit Transfer(address(0), r, amount);

        mapping(uint => LockBin) storage locks = lockbins[r];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;
        }

        return true;
        }

        function getInvestedToken (address investor) public view returns (uint256) {
                require(investor != address(0) && investor != owner && investor != foundationOwner);

        mapping(uint => LockBin) storage locks = lockbins[investor];
        uint256 balance = 0;
        uint l = locks[0].amount;
        for (uint i = 1; i <= l; i ++) {
                LockBin memory bin = locks[i];
                balance = balance.add(bin.amount);
        }
        return balance;
        }

        function getLockedToken (address investor) public view returns (uint256) {
                require(investor != address(0) && investor != owner && investor != foundationOwner);

        mapping(uint => LockBin) storage locks = lockbins[investor];
        uint256 balance = 0;
        uint256 d = 1;
        uint l = locks[0].amount;
        for (uint i = 1; i <= l; i ++) {
                LockBin memory bin = locks[i];
                if (now <= bin.start) {
                        balance = balance.add(bin.amount);
                }
                else if (now < bin.finish) {
                        d = (now - bin.start) / (1 days);
                        balance = balance.add(bin.amount - bin.amount * d / bin.duration);
                }
        }
        return balance;
        }

        function canPay (address user, uint256 amount) internal view returns (bool) {
                uint256 balance = availableWallet(user);
                return amount <= balance;
        }

        function transfer (address target, uint256 value) public whenRunning canTransfer(msg.sender, target, value) returns (bool) {
                require(target != owner);
                require(canPay(msg.sender, value));

        wallets[msg.sender] = wallets[msg.sender].sub(value);
        wallets[target] = wallets[target].add(value);
        emit Transfer(msg.sender, target, value);
        return true;
        }


        function batchTransfer (address[] memory receivers, uint256 amount) public whenRunning returns (bool) {
                require(amount > 0);

        uint receiveLength = receivers.length;
        uint receiverCount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
        }
        require(receiverCount > 0);

        uint256 totalAmount = amount.mul(uint256(receiverCount));
        require(canPay(msg.sender, totalAmount));

        wallets[msg.sender] = wallets[msg.sender].sub(totalAmount);
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(msg.sender, r, amount);
        }
        return true;
        }

        function batchTransfers (address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) {
                uint receiveLength = receivers.length;
                require(receiveLength == amounts.length);

        uint receiverCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
                totalAmount = totalAmount.add(amounts[i]);
        }
        require(totalAmount > 0);
        require(canPay(msg.sender, totalAmount));

        wallets[msg.sender] = wallets[msg.sender].sub(totalAmount);
        uint256 amount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                if (amount == 0) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(msg.sender, r, amount);
        }
        return true;
        }

        function transferFrom (address from, address to, uint256 value) public whenRunning canTransfer(from, to, value) returns (bool) {
                require(from != owner);
                require(to != owner);
                require(canPay(from, value));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(value <= warrant);
                warrants[from][msg.sender] = warrant.sub(value);
        }

        wallets[from] = wallets[from].sub(value);
        wallets[to] = wallets[to].add(value);
        emit Transfer(from, to, value);
        return true;
        }

        function batchTransferFrom (address from, address[] memory  receivers, uint256 amount) public whenRunning returns (bool) {
                require(from != address(0) && from != owner);
                require(amount > 0);

        uint receiveLength = receivers.length;
        uint receiverCount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
        }
        require(receiverCount > 0);

        uint256 totalAmount = amount.mul(uint256(receiverCount));
        require(canPay(from, totalAmount));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(totalAmount <= warrant);
                warrants[from][msg.sender] = warrant.sub(totalAmount);
        }

        wallets[from] = wallets[from].sub(totalAmount);
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(from, r, amount);
        }
        return true;
        }

        function batchTransferFroms (address from, address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) {
                require(from != address(0) && from != owner);

        uint receiveLength = receivers.length;
        require(receiveLength == amounts.length);

        uint receiverCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
                totalAmount = totalAmount.add(amounts[i]);
        }
        require(totalAmount > 0);
        require(canPay(from, totalAmount));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(totalAmount <= warrant);
                warrants[from][msg.sender] = warrant.sub(totalAmount);
        }

        wallets[from] = wallets[from].sub(totalAmount);
        uint256 amount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                if (amount == 0) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(from, r, amount);
        }
        return true;
        }
}

contract IbsToken is LockableToken {
        string  public constant name     = "Insurance";
        string  public constant symbol   = "IBS";
        uint8   public constant decimals = 18;

        uint256 private constant TOKEN_CAP     = 1000000000 * 10 ** uint256(decimals);
        uint256 private constant TOKEN_FOUNDATION_CAP = 1000000000   * 10 ** uint256(decimals);
        uint256 private constant TOKEN_INITIAL = 0   * 10 ** uint256(decimals);

        constructor () public LockableToken(TOKEN_INITIAL, TOKEN_CAP, TOKEN_FOUNDATION_CAP) {
        }

        
 	    function suicideQent () public onlyOwner{
             selfdestruct(owner);
        }
        
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"}],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransfers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"release_start","type":"uint256"},{"internalType":"uint256","name":"release_duration","type":"uint256"}],"name":"setInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startForge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"forge_running","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockbins","outputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getLockedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFroms","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"canMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"delta","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchInvests","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wallets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suicideQent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalFountainSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"warrants","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"forceStopInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getInvestedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopForge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"investor","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"invest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchInvest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_created","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"availableWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"delta","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_created","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"InvestStart","type":"event"},{"anonymous":false,"inputs":[],"name":"InvestStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"release_start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"release_duration","type":"uint256"}],"name":"NewInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractPause","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractResume","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"from","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to","type":"uint256"}],"name":"ContractPauseSchedule","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStart","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStop","type":"event"},{"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

608060405260018060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b50601260ff16600a0a600002601260ff16600a0a633b9aca0002601260ff16600a0a633b9aca00028282828181336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816002819055508060048190555050508260038190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885846040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050506001600c60006101000a81548160ff02191690831515021790555050505061551a80620002396000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806376f660f61161015c578063a9059cbb116100ce578063d28cb7b511610087578063d28cb7b51461120f578063d73dd62314611267578063dd62ed3e146112cd578063de8ae5c014611345578063efc5d18314611363578063f9b41891146113815761027f565b8063a9059cbb1461100b578063b703aa3a14611071578063b9b8c24614611093578063bd632e10146110f9578063c04e7e17146111d3578063d26e1414146111f15761027f565b80639433a498116101205780639433a49814610e5657806395d89b4114610e745780639aa9897914610ef75780639b89010414610f6f5780639cf4836514610f91578063a4c673c514610fe95761027f565b806376f660f614610c1657806383f12fec14610d105780638456cb5914610dea57806389b08f1114610df45780638ce31b6314610e4c5761027f565b806348cc7b6e116101f557806359dd7ad4116101b957806359dd7ad41461080c5780635dd871a31461099057806366188463146109d65780636ad9531714610a3c57806370a0823114610ba0578063766e33f414610bf85761027f565b806348cc7b6e146106d757806348eac902146106f9578063491eeb3a1461071b5780634fcc1fc01461073d578063560ef1bf146107b45761027f565b80632d215518116102475780632d2155181461041b578063313ce567146104535780633badca251461047757806340c10f19146105db57806342966c681461064157806342bb66c4146106875761027f565b8063046f7da21461028457806306fdde031461028e578063095ea7b31461031157806318160ddd1461037757806323b872dd14610395575b600080fd5b61028c61139f565b005b61029661143a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b61037f6115bd565b6040518082815260200191505060405180910390f35b610401600480360360608110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c7565b604051808215151515815260200191505060405180910390f35b6104516004803603604081101561043157600080fd5b810190808035906020019092919080359060200190929190505050611a59565b005b61045b611b1a565b604051808260ff1660ff16815260200191505060405180910390f35b6105c16004803603604081101561048d57600080fd5b81019080803590602001906401000000008111156104aa57600080fd5b8201836020820111156104bc57600080fd5b803590602001918460208302840111640100000000831117156104de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1f565b604051808215151515815260200191505060405180910390f35b610627600480360360408110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef3565b604051808215151515815260200191505060405180910390f35b61066d6004803603602081101561065757600080fd5b8101908080359060200190929190505050612291565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561069d57600080fd5b81019080803590602001909291908035906020019092919050505061244e565b604051808215151515815260200191505060405180910390f35b6106df612535565b604051808215151515815260200191505060405180910390f35b6107016125f7565b604051808215151515815260200191505060405180910390f35b61072361260a565b604051808215151515815260200191505060405180910390f35b6107896004803603604081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126e6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6107f6600480360360208110156107ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612723565b6040518082815260200191505060405180910390f35b6109766004803603606081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561085f57600080fd5b82018360208201111561087157600080fd5b8035906020019184602083028401116401000000008311171561089357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184602083028401116401000000008311171561092757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061296b565b604051808215151515815260200191505060405180910390f35b6109bc600480360360208110156109a657600080fd5b8101908080359060200190929190505050612f29565b604051808215151515815260200191505060405180910390f35b610a22600480360360408110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f58565b604051808215151515815260200191505060405180910390f35b610b8660048036036040811015610a5257600080fd5b8101908080359060200190640100000000811115610a6f57600080fd5b820183602082011115610a8157600080fd5b80359060200191846020830284011164010000000083111715610aa357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846020830284011164010000000083111715610b3757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061314b565b604051808215151515815260200191505060405180910390f35b610be260048036036020811015610bb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061363e565b6040518082815260200191505060405180910390f35b610c00613687565b6040518082815260200191505060405180910390f35b610cf660048036036060811015610c2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c6957600080fd5b820183602082011115610c7b57600080fd5b80359060200191846020830284011164010000000083111715610c9d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061368d565b604051808215151515815260200191505060405180910390f35b610dd060048036036040811015610d2657600080fd5b8101908080359060200190640100000000811115610d4357600080fd5b820183602082011115610d5557600080fd5b80359060200191846020830284011164010000000083111715610d7757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613c0f565b604051808215151515815260200191505060405180910390f35b610df2613fa7565b005b610e3660048036036020811015610e0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614045565b6040518082815260200191505060405180910390f35b610e5461405d565b005b610e5e6140f0565b6040518082815260200191505060405180910390f35b610e7c6140fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578082015181840152602081019050610ea1565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f5960048036036040811015610f0d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614133565b6040518082815260200191505060405180910390f35b610f77614158565b604051808215151515815260200191505060405180910390f35b610fd360048036036020811015610fa757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061416b565b6040518082815260200191505060405180910390f35b610ff161434b565b604051808215151515815260200191505060405180910390f35b6110576004803603604081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614428565b604051808215151515815260200191505060405180910390f35b611079614709565b604051808215151515815260200191505060405180910390f35b6110df600480360360408110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506147cb565b604051808215151515815260200191505060405180910390f35b6111b96004803603604081101561110f57600080fd5b810190808035906020019064010000000081111561112c57600080fd5b82018360208201111561113e57600080fd5b8035906020019184602083028401116401000000008311171561116057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614bbb565b604051808215151515815260200191505060405180910390f35b6111db61512f565b6040518082815260200191505060405180910390f35b6111f9615135565b6040518082815260200191505060405180910390f35b6112516004803603602081101561122557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061513b565b6040518082815260200191505060405180910390f35b6112b36004803603604081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061519e565b604051808215151515815260200191505060405180910390f35b61132f600480360360408110156112e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061537c565b6040518082815260200191505060405180910390f35b61134d615403565b6040518082815260200191505060405180910390f35b61136b615409565b6040518082815260200191505060405180910390f35b61138961540f565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040518060400160405280600981526020017f496e737572616e6365000000000000000000000000000000000000000000000081525081565b6000600654421080611486575060075442115b61148f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114cc57600190506115b7565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b60006006544210806115da575060075442115b6115e357600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61165957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561169257600080fd5b6000811161169f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156116f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561175357600080fd5b61175d8786615415565b61176657600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bb57600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508086111561182757600080fd5b61183a868261543090919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61190d86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a286600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ab257600080fd5b8181118015611ac057504281115b611ac957600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611b32575060075442115b611b3b57600080fd5b60008351905082518114611b4e57600080fd5b60008090506000809050600080600091505b84821015611c4d57878281518110611b7457fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611c0f57611c40565b8380600101945050611c3d878381518110611c2657fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050611b60565b60008311611c5a57600080fd5b611c643384615415565b611c6d57600080fd5b611cbf83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008092505b85831015611ee357888381518110611d1c57fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611dad57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611db757611ed6565b878381518110611dc357fe5b602002602001015190506000811415611ddb57611ed6565b611e2d81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611d08565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f9d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fa657600080fd5b600654421080611fb7575060075442115b611fc057600080fd5b600160149054906101000a900460ff16611fd957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120845750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61208d57600080fd5b61209682612f29565b61209f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612123576120fe82615463565b61210757600080fd5b61211c8260055461544790919063ffffffff16565b6005819055505b6121388260035461544790919063ffffffff16565b60038190555061219082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806122a4575060075442115b6122ad57600080fd5b600160149054906101000a900460ff166122c657600080fd5b60006122d13361513b565b9050808311156122e057600080fd5b6122f58360035461543090919063ffffffff16565b60038190555061234d83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124a957600080fd5b6006544210806124ba575060075442115b6124c357600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259057600080fd5b600160149054906101000a900460ff16156125aa57600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461266557600080fd5b600654421080612676575060075442115b61267f57600080fd5b600c60009054906101000a900460ff1661269857600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127ae57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128085750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61281157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b81811161295e5761288f6154bd565b8560008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142116128ff576128f881606001518661544790919063ffffffff16565b9450612950565b806020015142101561294f5762015180816000015142038161291d57fe5b04935061294c8160400151858360600151028161293657fe5b048260600151038661544790919063ffffffff16565b94505b5b508080600101915050612880565b5082945050505050919050565b600060065442108061297e575060075442115b61298757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a1157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612a1a57600080fd5b60008351905082518114612a2d57600080fd5b60008090506000809050600080600091505b84821015612b2c57878281518110612a5357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ae457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612aee57612b1f565b8380600101945050612b1c878381518110612b0557fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050612a3f565b60008311612b3957600080fd5b612b438984615415565b612b4c57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ca157600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080841115612c0d57600080fd5b612c20848261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612cf384600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008093505b86841015612f1757898481518110612d5057fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612de157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612deb57612f0a565b888481518110612df757fe5b602002602001015190506000811415612e0f57612f0a565b612e6181600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612d3c565b60019750505050505050509392505050565b6000806002541480612f515750600254612f4e8360035461544790919063ffffffff16565b11155b9050919050565b6000600654421080612f6b575060075442115b612f7457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fb15760019050613145565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156130435760009050613059565b613056838261543090919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131a657600080fd5b6006544210806131b7575060075442115b6131c057600080fd5b600c60009054906101000a900460ff16156131da57600080fd5b600083519050825181146131ed57600080fd5b60008090506000809050600080600091505b848210156132ec5787828151811061321357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806132a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156132ae576132df565b83806001019450506132dc8783815181106132c557fe5b60200260200101518461544790919063ffffffff16565b92505b81806001019250506131ff565b600083116132f957600080fd5b61330283612f29565b61330b57600080fd5b60006133228460035461544790919063ffffffff16565b600381905550600092505b8583101561362e5788838151811061334157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133d257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156133dc57613621565b8783815181106133e857fe5b6020026020010151905061344481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816135cd57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b828060010193505061332d565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60006006544210806136a0575060075442115b6136a957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561373357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61373c57600080fd5b6000821161374957600080fd5b6000835190506000809050600080600091505b838210156138215786828151811061377057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061380157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561380b57613814565b82806001019350505b818060010192505061375c565b6000831161382e57600080fd5b6000613843848861548690919063ffffffff16565b905061384f8982615415565b61385857600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ad57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561391957600080fd5b61392c828261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6139ff82600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600093505b85841015613bfe57888481518110613a5b57fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613aec57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613af657613bf1565b613b4888600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613a47565b600196505050505050509392505050565b6000600654421080613c22575060075442115b613c2b57600080fd5b60008211613c3857600080fd5b6000835190506000809050600080600091505b83821015613d1057868281518110613c5f57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613cf057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613cfa57613d03565b82806001019350505b8180600101925050613c4b565b60008311613d1d57600080fd5b6000613d32848861548690919063ffffffff16565b9050613d3e3382615415565b613d4757600080fd5b613d9981600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600092505b84831015613f9857878381518110613df557fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613e8657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15613e9057613f8b565b613ee287600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613de1565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400057600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140b657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600554905090565b6040518060400160405280600381526020017f494253000000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156141f657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156142505750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61425957600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b81811161433f576142d16154bd565b846000838152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061432f81606001518561544790919063ffffffff16565b93505080806001019150506142c2565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a657600080fd5b6006544210806143b7575060075442115b6143c057600080fd5b600c60009054906101000a900460ff16156143da57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061443b575060075442115b61444457600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156144b15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6144ba57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f357600080fd5b6000811161450057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561455a57600080fd5b6145643386615415565b61456d57600080fd5b6145bf85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061465485600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461476457600080fd5b600160149054906101000a900460ff1661477d57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461482657600080fd5b600654421080614837575060075442115b61484057600080fd5b600c60009054906101000a900460ff161561485a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561489457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156148ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561494957600080fd5b6000821161495657600080fd5b61495f82612f29565b61496857600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816149fa57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614a5f8560035461544790919063ffffffff16565b600381905550614ab785600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c1657600080fd5b600654421080614c27575060075442115b614c3057600080fd5b600c60009054906101000a900460ff1615614c4a57600080fd5b60008211614c5757600080fd5b6000835190506000809050600080600091505b83821015614d8757868281518110614c7e57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614d0f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614d675750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614d7157614d7a565b82806001019350505b8180600101925050614c6a565b60008311614d9457600080fd5b6000614da9848861548690919063ffffffff16565b9050614db481612f29565b614dbd57600080fd5b614dd28160035461544790919063ffffffff16565b600381905550600092505b8483101561512057878381518110614df157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480614e8257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80614eda5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15614ee457615113565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b5481614f7657fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506150188a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050614ddd565b60019550505050505092915050565b60045481565b60055481565b600061519761514983612723565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b9050919050565b60006006544210806151b1575060075442115b6151ba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156151f75760019050615376565b600061528883600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b6000806154218461513b565b90508083111591505092915050565b60008282111561543c57fe5b818303905092915050565b60008082840190508381101561545957fe5b8091505092915050565b600060045461547d8360055461544790919063ffffffff16565b11159050919050565b60008083141561549957600090506154b7565b60008284029050828482816154aa57fe5b04146154b257fe5b809150505b92915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fea265627a7a72315820d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b664736f6c634300050b0032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061027f5760003560e01c806376f660f61161015c578063a9059cbb116100ce578063d28cb7b511610087578063d28cb7b51461120f578063d73dd62314611267578063dd62ed3e146112cd578063de8ae5c014611345578063efc5d18314611363578063f9b41891146113815761027f565b8063a9059cbb1461100b578063b703aa3a14611071578063b9b8c24614611093578063bd632e10146110f9578063c04e7e17146111d3578063d26e1414146111f15761027f565b80639433a498116101205780639433a49814610e5657806395d89b4114610e745780639aa9897914610ef75780639b89010414610f6f5780639cf4836514610f91578063a4c673c514610fe95761027f565b806376f660f614610c1657806383f12fec14610d105780638456cb5914610dea57806389b08f1114610df45780638ce31b6314610e4c5761027f565b806348cc7b6e116101f557806359dd7ad4116101b957806359dd7ad41461080c5780635dd871a31461099057806366188463146109d65780636ad9531714610a3c57806370a0823114610ba0578063766e33f414610bf85761027f565b806348cc7b6e146106d757806348eac902146106f9578063491eeb3a1461071b5780634fcc1fc01461073d578063560ef1bf146107b45761027f565b80632d215518116102475780632d2155181461041b578063313ce567146104535780633badca251461047757806340c10f19146105db57806342966c681461064157806342bb66c4146106875761027f565b8063046f7da21461028457806306fdde031461028e578063095ea7b31461031157806318160ddd1461037757806323b872dd14610395575b600080fd5b61028c61139f565b005b61029661143a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035d6004803603604081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b61037f6115bd565b6040518082815260200191505060405180910390f35b610401600480360360608110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c7565b604051808215151515815260200191505060405180910390f35b6104516004803603604081101561043157600080fd5b810190808035906020019092919080359060200190929190505050611a59565b005b61045b611b1a565b604051808260ff1660ff16815260200191505060405180910390f35b6105c16004803603604081101561048d57600080fd5b81019080803590602001906401000000008111156104aa57600080fd5b8201836020820111156104bc57600080fd5b803590602001918460208302840111640100000000831117156104de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1f565b604051808215151515815260200191505060405180910390f35b610627600480360360408110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef3565b604051808215151515815260200191505060405180910390f35b61066d6004803603602081101561065757600080fd5b8101908080359060200190929190505050612291565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561069d57600080fd5b81019080803590602001909291908035906020019092919050505061244e565b604051808215151515815260200191505060405180910390f35b6106df612535565b604051808215151515815260200191505060405180910390f35b6107016125f7565b604051808215151515815260200191505060405180910390f35b61072361260a565b604051808215151515815260200191505060405180910390f35b6107896004803603604081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126e6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6107f6600480360360208110156107ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612723565b6040518082815260200191505060405180910390f35b6109766004803603606081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561085f57600080fd5b82018360208201111561087157600080fd5b8035906020019184602083028401116401000000008311171561089357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184602083028401116401000000008311171561092757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061296b565b604051808215151515815260200191505060405180910390f35b6109bc600480360360208110156109a657600080fd5b8101908080359060200190929190505050612f29565b604051808215151515815260200191505060405180910390f35b610a22600480360360408110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f58565b604051808215151515815260200191505060405180910390f35b610b8660048036036040811015610a5257600080fd5b8101908080359060200190640100000000811115610a6f57600080fd5b820183602082011115610a8157600080fd5b80359060200191846020830284011164010000000083111715610aa357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846020830284011164010000000083111715610b3757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061314b565b604051808215151515815260200191505060405180910390f35b610be260048036036020811015610bb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061363e565b6040518082815260200191505060405180910390f35b610c00613687565b6040518082815260200191505060405180910390f35b610cf660048036036060811015610c2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c6957600080fd5b820183602082011115610c7b57600080fd5b80359060200191846020830284011164010000000083111715610c9d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061368d565b604051808215151515815260200191505060405180910390f35b610dd060048036036040811015610d2657600080fd5b8101908080359060200190640100000000811115610d4357600080fd5b820183602082011115610d5557600080fd5b80359060200191846020830284011164010000000083111715610d7757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613c0f565b604051808215151515815260200191505060405180910390f35b610df2613fa7565b005b610e3660048036036020811015610e0a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614045565b6040518082815260200191505060405180910390f35b610e5461405d565b005b610e5e6140f0565b6040518082815260200191505060405180910390f35b610e7c6140fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578082015181840152602081019050610ea1565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f5960048036036040811015610f0d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614133565b6040518082815260200191505060405180910390f35b610f77614158565b604051808215151515815260200191505060405180910390f35b610fd360048036036020811015610fa757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061416b565b6040518082815260200191505060405180910390f35b610ff161434b565b604051808215151515815260200191505060405180910390f35b6110576004803603604081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614428565b604051808215151515815260200191505060405180910390f35b611079614709565b604051808215151515815260200191505060405180910390f35b6110df600480360360408110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506147cb565b604051808215151515815260200191505060405180910390f35b6111b96004803603604081101561110f57600080fd5b810190808035906020019064010000000081111561112c57600080fd5b82018360208201111561113e57600080fd5b8035906020019184602083028401116401000000008311171561116057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614bbb565b604051808215151515815260200191505060405180910390f35b6111db61512f565b6040518082815260200191505060405180910390f35b6111f9615135565b6040518082815260200191505060405180910390f35b6112516004803603602081101561122557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061513b565b6040518082815260200191505060405180910390f35b6112b36004803603604081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061519e565b604051808215151515815260200191505060405180910390f35b61132f600480360360408110156112e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061537c565b6040518082815260200191505060405180910390f35b61134d615403565b6040518082815260200191505060405180910390f35b61136b615409565b6040518082815260200191505060405180910390f35b61138961540f565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040518060400160405280600981526020017f496e737572616e6365000000000000000000000000000000000000000000000081525081565b6000600654421080611486575060075442115b61148f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114cc57600190506115b7565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b60006006544210806115da575060075442115b6115e357600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61165957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561169257600080fd5b6000811161169f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156116f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561175357600080fd5b61175d8786615415565b61176657600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bb57600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508086111561182757600080fd5b61183a868261543090919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61190d86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a286600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ab257600080fd5b8181118015611ac057504281115b611ac957600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611b32575060075442115b611b3b57600080fd5b60008351905082518114611b4e57600080fd5b60008090506000809050600080600091505b84821015611c4d57878281518110611b7457fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611c0f57611c40565b8380600101945050611c3d878381518110611c2657fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050611b60565b60008311611c5a57600080fd5b611c643384615415565b611c6d57600080fd5b611cbf83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008092505b85831015611ee357888381518110611d1c57fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611dad57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611db757611ed6565b878381518110611dc357fe5b602002602001015190506000811415611ddb57611ed6565b611e2d81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611d08565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f9d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fa657600080fd5b600654421080611fb7575060075442115b611fc057600080fd5b600160149054906101000a900460ff16611fd957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120845750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61208d57600080fd5b61209682612f29565b61209f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612123576120fe82615463565b61210757600080fd5b61211c8260055461544790919063ffffffff16565b6005819055505b6121388260035461544790919063ffffffff16565b60038190555061219082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806122a4575060075442115b6122ad57600080fd5b600160149054906101000a900460ff166122c657600080fd5b60006122d13361513b565b9050808311156122e057600080fd5b6122f58360035461543090919063ffffffff16565b60038190555061234d83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124a957600080fd5b6006544210806124ba575060075442115b6124c357600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259057600080fd5b600160149054906101000a900460ff16156125aa57600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461266557600080fd5b600654421080612676575060075442115b61267f57600080fd5b600c60009054906101000a900460ff1661269857600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127ae57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128085750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61281157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b81811161295e5761288f6154bd565b8560008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142116128ff576128f881606001518661544790919063ffffffff16565b9450612950565b806020015142101561294f5762015180816000015142038161291d57fe5b04935061294c8160400151858360600151028161293657fe5b048260600151038661544790919063ffffffff16565b94505b5b508080600101915050612880565b5082945050505050919050565b600060065442108061297e575060075442115b61298757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a1157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612a1a57600080fd5b60008351905082518114612a2d57600080fd5b60008090506000809050600080600091505b84821015612b2c57878281518110612a5357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ae457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612aee57612b1f565b8380600101945050612b1c878381518110612b0557fe5b60200260200101518461544790919063ffffffff16565b92505b8180600101925050612a3f565b60008311612b3957600080fd5b612b438984615415565b612b4c57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ca157600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080841115612c0d57600080fd5b612c20848261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612cf384600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008093505b86841015612f1757898481518110612d5057fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612de157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612deb57612f0a565b888481518110612df757fe5b602002602001015190506000811415612e0f57612f0a565b612e6181600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612d3c565b60019750505050505050509392505050565b6000806002541480612f515750600254612f4e8360035461544790919063ffffffff16565b11155b9050919050565b6000600654421080612f6b575060075442115b612f7457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fb15760019050613145565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156130435760009050613059565b613056838261543090919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131a657600080fd5b6006544210806131b7575060075442115b6131c057600080fd5b600c60009054906101000a900460ff16156131da57600080fd5b600083519050825181146131ed57600080fd5b60008090506000809050600080600091505b848210156132ec5787828151811061321357fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806132a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156132ae576132df565b83806001019450506132dc8783815181106132c557fe5b60200260200101518461544790919063ffffffff16565b92505b81806001019250506131ff565b600083116132f957600080fd5b61330283612f29565b61330b57600080fd5b60006133228460035461544790919063ffffffff16565b600381905550600092505b8583101561362e5788838151811061334157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133d257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156133dc57613621565b8783815181106133e857fe5b6020026020010151905061344481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816135cd57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b828060010193505061332d565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60006006544210806136a0575060075442115b6136a957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561373357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61373c57600080fd5b6000821161374957600080fd5b6000835190506000809050600080600091505b838210156138215786828151811061377057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061380157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561380b57613814565b82806001019350505b818060010192505061375c565b6000831161382e57600080fd5b6000613843848861548690919063ffffffff16565b905061384f8982615415565b61385857600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ad57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561391957600080fd5b61392c828261543090919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6139ff82600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600093505b85841015613bfe57888481518110613a5b57fe5b60200260200101519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613aec57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613af657613bf1565b613b4888600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613a47565b600196505050505050509392505050565b6000600654421080613c22575060075442115b613c2b57600080fd5b60008211613c3857600080fd5b6000835190506000809050600080600091505b83821015613d1057868281518110613c5f57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613cf057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613cfa57613d03565b82806001019350505b8180600101925050613c4b565b60008311613d1d57600080fd5b6000613d32848861548690919063ffffffff16565b9050613d3e3382615415565b613d4757600080fd5b613d9981600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600092505b84831015613f9857878381518110613df557fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613e8657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15613e9057613f8b565b613ee287600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613de1565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400057600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140b657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600554905090565b6040518060400160405280600381526020017f494253000000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156141f657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156142505750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61425957600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b81811161433f576142d16154bd565b846000838152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061432f81606001518561544790919063ffffffff16565b93505080806001019150506142c2565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a657600080fd5b6006544210806143b7575060075442115b6143c057600080fd5b600c60009054906101000a900460ff16156143da57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061443b575060075442115b61444457600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156144b15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6144ba57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f357600080fd5b6000811161450057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561455a57600080fd5b6145643386615415565b61456d57600080fd5b6145bf85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061465485600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461476457600080fd5b600160149054906101000a900460ff1661477d57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461482657600080fd5b600654421080614837575060075442115b61484057600080fd5b600c60009054906101000a900460ff161561485a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561489457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156148ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561494957600080fd5b6000821161495657600080fd5b61495f82612f29565b61496857600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b54816149fa57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614a5f8560035461544790919063ffffffff16565b600381905550614ab785600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c1657600080fd5b600654421080614c27575060075442115b614c3057600080fd5b600c60009054906101000a900460ff1615614c4a57600080fd5b60008211614c5757600080fd5b6000835190506000809050600080600091505b83821015614d8757868281518110614c7e57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614d0f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614d675750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614d7157614d7a565b82806001019350505b8180600101925050614c6a565b60008311614d9457600080fd5b6000614da9848861548690919063ffffffff16565b9050614db481612f29565b614dbd57600080fd5b614dd28160035461544790919063ffffffff16565b600381905550600092505b8483101561512057878381518110614df157fe5b60200260200101519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480614e8257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80614eda5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15614ee457615113565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600080815260200190815260200160002090506000600182600301540190506040518060800160405280600a548152602001600b54600a5401815260200162015180600b5481614f7657fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506150188a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050614ddd565b60019550505050505092915050565b60045481565b60055481565b600061519761514983612723565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461543090919063ffffffff16565b9050919050565b60006006544210806151b1575060075442115b6151ba57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156151f75760019050615376565b600061528883600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461544790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b6000806154218461513b565b90508083111591505092915050565b60008282111561543c57fe5b818303905092915050565b60008082840190508381101561545957fe5b8091505092915050565b600060045461547d8360055461544790919063ffffffff16565b11159050919050565b60008083141561549957600090506154b7565b60008284029050828482816154aa57fe5b04146154b257fe5b809150505b92915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fea265627a7a72315820d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b664736f6c634300050b0032

Deployed Bytecode Sourcemap

22538:688:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22538:688:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2966:162;;;:::i;:::-;;22584:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;22584:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:307;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5537:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7850:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19112:668;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19112:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2713:241;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2713:241:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22692:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17953:1147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17953:1147:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17953:1147:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17953:1147:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17953:1147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17953:1147:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17953:1147:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17953:1147:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17953:1147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17953:1147:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8101:656;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8101:656:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8769:435;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8769:435:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10588:349;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10588:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3497:184;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3236:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10343:233;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9747:60;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9747:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15503:810;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15503:810:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21090:1441;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21090:1441:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21090:1441:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21090:1441:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21090:1441:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21090:1441:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21090:1441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21090:1441:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4321:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4321:159:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6261:569;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6261:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13420:1555;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13420:1555:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13420:1555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13420:1555:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13420:1555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13420:1555:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13420:1555:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13420:1555:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13420:1555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13420:1555:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5084:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5084:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9630:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19792:1286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19792:1286:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19792:1286:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19792:1286:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;19792:1286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19792:1286:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16964:977;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16964:977:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16964:977:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16964:977:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16964:977:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16964:977:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2532:169;;;:::i;:::-;;4769:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4769:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23126:87;;;:::i;:::-;;7967:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22641:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;22641:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5301:63;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5301:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9709:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14987:504;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14987:504:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10100:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16526:424;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16526:424:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3693:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10949:990;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10949:990:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11951:1457;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11951:1457:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11951:1457:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11951:1457:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11951:1457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11951:1457:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4036:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4082:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7139:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7139:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5856:393;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5856:393:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5377:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5377:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3997:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3962:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9668:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2966:162;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3039:1;3033:3;:7;3021:9;:19;;;;3075:1;3069:3;:7;3059;:17;;;;3100:16;;;;;;;;;;2966:162::o;22584:46::-;;;;;;;;;;;;;;;;;;;:::o;5537:307::-;5617:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;5659:10;5646:23;;:9;:23;;;5642:40;;;5678:4;5671:11;;;;5642:40;5735:5;5701:8;:20;5710:10;5701:20;;;;;;;;;;;;;;;:31;5722:9;5701:31;;;;;;;;;;;;;;;:39;;;;5785:9;5764:38;;5773:10;5764:38;;;5796:5;5764:38;;;;;;;;;;;;;;;;;;5828:4;5821:11;;2378:1;5537:307;;;;:::o;7850:105::-;7895:7;7930:13;;7923:20;;7850:105;:::o;19112:668::-;19233:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;19207:4;19213:2;19217:5;4935:1;4918:19;;:5;:19;;;;4917:44;;;;;4958:1;4943:17;;:3;:17;;;;4917:44;4909:53;;;;;;4998:3;4989:12;;:5;:12;;;;4981:21;;;;;;5038:1;5029:6;:10;5021:19;;;;;;19274:5;;;;;;;;;;;19266:13;;:4;:13;;;;19258:22;;;;;;19313:5;;;;;;;;;;;19307:11;;:2;:11;;;;19299:20;;;;;;19346:19;19353:4;19359:5;19346:6;:19::i;:::-;19338:28;;;;;;19379:15;19423:4;19409:18;;:10;:18;;;19405:201;;19458:8;:14;19467:4;19458:14;;;;;;;;;;;;;;;:26;19473:10;19458:26;;;;;;;;;;;;;;;;19448:36;;19520:7;19511:5;:16;;19503:25;;;;;;19576:18;19588:5;19576:7;:11;;:18;;;;:::i;:::-;19547:8;:14;19556:4;19547:14;;;;;;;;;;;;;;;:26;19562:10;19547:26;;;;;;;;;;;;;;;:47;;;;19405:201;19634:24;19652:5;19634:7;:13;19642:4;19634:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;19618:7;:13;19626:4;19618:13;;;;;;;;;;;;;;;:40;;;;19683:22;19699:5;19683:7;:11;19691:2;19683:11;;;;;;;;;;;;;;;;:15;;:22;;;;:::i;:::-;19669:7;:11;19677:2;19669:11;;;;;;;;;;;;;;;:36;;;;19736:2;19721:25;;19730:4;19721:25;;;19740:5;19721:25;;;;;;;;;;;;;;;;;;19764:4;19757:11;;;2378:1;;;19112:668;;;;;:::o;2713:241::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2804:4;2799:2;:9;:21;;;;;2817:3;2812:2;:8;2799:21;2791:30;;;;;;2852:4;2840:9;:16;;;;2885:2;2875:7;:12;;;;2911:31;2933:4;2939:2;2911:31;;;;;;;;;;;;;;;;;;;;;;;;2713:241;;:::o;22692:37::-;22727:2;22692:37;:::o;17953:1147::-;18060:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;18085:18;18106:9;:16;18085:37;;18166:7;:14;18149:13;:31;18141:40;;;;;;18194:18;18215:1;18194:22;;18227:19;18249:1;18227:23;;18261:6;18278:9;18307:1;18303:5;;18298:241;18314:13;18310:1;:17;18298:241;;;18358:9;18368:1;18358:12;;;;;;;;;;;;;;18354:16;;18406:1;18393:15;;:1;:15;;;:29;;;;18417:5;;;;;;;;;;;18412:10;;:1;:10;;;18393:29;18389:43;;;18424:8;;18389:43;18451:16;;;;;;;18500:27;18516:7;18524:1;18516:10;;;;;;;;;;;;;;18500:11;:15;;:27;;;;:::i;:::-;18486:41;;18298:241;18329:4;;;;;;;18298:241;;;18571:1;18557:11;:15;18549:24;;;;;;18592:31;18599:10;18611:11;18592:6;:31::i;:::-;18584:40;;;;;;18659:36;18683:11;18659:7;:19;18667:10;18659:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;18637:7;:19;18645:10;18637:19;;;;;;;;;;;;;;;:58;;;;18706:14;18740:1;18736:5;;18731:336;18747:13;18743:1;:17;18731:336;;;18790:9;18800:1;18790:12;;;;;;;;;;;;;;18786:16;;18838:1;18825:15;;:1;:15;;;:29;;;;18849:5;;;;;;;;;;;18844:10;;:1;:10;;;18825:29;18821:43;;;18856:8;;18821:43;18892:7;18900:1;18892:10;;;;;;;;;;;;;;18883:19;;18935:1;18925:6;:11;18921:25;;;18938:8;;18921:25;18978:22;18993:6;18978:7;:10;18986:1;18978:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;18965:7;:10;18973:1;18965:10;;;;;;;;;;;;;;;:35;;;;19045:1;19024:31;;19033:10;19024:31;;;19048:6;19024:31;;;;;;;;;;;;;;;;;;18731:336;18762:3;;;;;;;18731:336;;;19084:4;19077:11;;;;;;;;17953:1147;;;;:::o;8101:656::-;8200:4;1942:5;;;;;;;;;;;1928:19;;:10;:19;;;:52;;;;1965:15;;;;;;;;;;;1951:29;;:10;:29;;;1928:52;1920:61;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;8243:5;;;;;;;;;;;8233:15;;:6;:15;;;;:44;;;;;8262:15;;;;;;;;;;;8252:25;;:6;:25;;;;8233:44;8225:53;;;;;;8305:15;8313:6;8305:7;:15::i;:::-;8297:24;;;;;;8352:15;;;;;;;;;;;8338:29;;:10;:29;;;8334:182;;;8396:25;8414:6;8396:17;:25::i;:::-;8388:34;;;;;;8468:36;8497:6;8468:24;;:28;;:36;;;;:::i;:::-;8441:24;:63;;;;8334:182;8552:25;8570:6;8552:13;;:17;;:25;;;;:::i;:::-;8536:13;:41;;;;8606:27;8626:6;8606:7;:15;8614:6;8606:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8588:7;:15;8596:6;8588:15;;;;;;;;;;;;;;;:45;;;;8656:6;8651:20;;;8664:6;8651:20;;;;;;;;;;;;;;;;;;8708:6;8687:36;;8704:1;8687:36;;;8716:6;8687:36;;;;;;;;;;;;;;;;;;8741:4;8734:11;;8101:656;;;;:::o;8769:435::-;8837:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;8862:15;8880:27;8896:10;8880:15;:27::i;:::-;8862:45;;8944:7;8934:6;:17;;8926:26;;;;;;8981:25;8999:6;8981:13;;:17;;:25;;;;:::i;:::-;8965:13;:41;;;;9039:31;9063:6;9039:7;:19;9047:10;9039:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;9017:7;:19;9025:10;9017:19;;;;;;;;;;;;;;;:53;;;;9093:10;9088:24;;;9105:6;9088:24;;;;;;;;;;;;;;;;;;9157:1;9128:40;;9137:10;9128:40;;;9161:6;9128:40;;;;;;;;;;;;;;;;;;9188:4;9181:11;;;8769:435;;;:::o;10588:349::-;10695:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10735:13;10720:12;:28;;;;10785:16;10767:15;:34;;;;10838:5;10820:15;;:23;;;;;;;;;;;;;;;;;;10861:42;10871:13;10886:16;10861:42;;;;;;;;;;;;;;;;;;;;;;;;10921:4;10914:11;;10588:349;;;;:::o;3497:184::-;3558:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3439:13;;;;;;;;;;;3438:14;3430:23;;;;;;3599:4;3583:13;;:20;;;;;;;;;;;;;;;;;;3627:12;;;;;;;;;;3665:4;3658:11;;3497:184;:::o;3236:32::-;;;;;;;;;;;;;:::o;10343:233::-;10406:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10439:15;;;;;;;;;;;10431:24;;;;;;10492:5;10474:15;;:23;;;;;;;;;;;;;;;;;;10521:13;;;;;;;;;;10560:4;10553:11;;10343:233;:::o;9747:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15503:810::-;15567:7;15623:1;15603:22;;:8;:22;;;;:43;;;;;15641:5;;;;;;;;;;;15629:17;;:8;:17;;;;15603:43;:74;;;;;15662:15;;;;;;;;;;;15650:27;;:8;:27;;;;15603:74;15595:83;;;;;;15691:38;15732:8;:18;15741:8;15732:18;;;;;;;;;;;;;;;15691:59;;15761:15;15779:1;15761:19;;15791:9;15803:1;15791:13;;15815:6;15824:5;:8;15830:1;15824:8;;;;;;;;;;;:15;;;15815:24;;15855:6;15864:1;15855:10;;15850:427;15872:1;15867;:6;15850:427;;15900:18;;:::i;:::-;15921:5;:8;15927:1;15921:8;;;;;;;;;;;15900:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15959:3;:9;;;15952:3;:16;15948:318;;16007:23;16019:3;:10;;;16007:7;:11;;:23;;;;:::i;:::-;15997:33;;15948:318;;;16083:3;:10;;;16077:3;:16;16073:193;;;16147:6;16133:3;:9;;;16127:3;:15;16126:28;;;;;;16122:32;;16191:55;16233:3;:12;;;16229:1;16216:3;:10;;;:14;:29;;;;;;16203:3;:10;;;:42;16191:7;:11;;:55;;;;:::i;:::-;16181:65;;16073:193;15948:318;15850:427;15875:4;;;;;;;15850:427;;;;16294:7;16287:14;;;;;;15503:810;;;:::o;21090:1441::-;21215:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;21264:1;21248:18;;:4;:18;;;;:35;;;;;21278:5;;;;;;;;;;;21270:13;;:4;:13;;;;21248:35;21240:44;;;;;;21297:18;21318:9;:16;21297:37;;21370:7;:14;21353:13;:31;21345:40;;;;;;21398:18;21419:1;21398:22;;21431:19;21453:1;21431:23;;21465:6;21482:9;21511:1;21507:5;;21502:241;21518:13;21514:1;:17;21502:241;;;21562:9;21572:1;21562:12;;;;;;;;;;;;;;21558:16;;21610:1;21597:15;;:1;:15;;;:29;;;;21621:5;;;;;;;;;;;21616:10;;:1;:10;;;21597:29;21593:43;;;21628:8;;21593:43;21655:16;;;;;;;21704:27;21720:7;21728:1;21720:10;;;;;;;;;;;;;;21704:11;:15;;:27;;;;:::i;:::-;21690:41;;21502:241;21533:4;;;;;;;21502:241;;;21775:1;21761:11;:15;21753:24;;;;;;21796:25;21803:4;21809:11;21796:6;:25::i;:::-;21788:34;;;;;;21835:15;21879:4;21865:18;;:10;:18;;;21861:213;;21914:8;:14;21923:4;21914:14;;;;;;;;;;;;;;;:26;21929:10;21914:26;;;;;;;;;;;;;;;;21904:36;;21982:7;21967:11;:22;;21959:31;;;;;;22038:24;22050:11;22038:7;:11;;:24;;;;:::i;:::-;22009:8;:14;22018:4;22009:14;;;;;;;;;;;;;;;:26;22024:10;22009:26;;;;;;;;;;;;;;;:53;;;;21861:213;22102:30;22120:11;22102:7;:13;22110:4;22102:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;22086:7;:13;22094:4;22086:13;;;;;;;;;;;;;;;:46;;;;22143:14;22177:1;22173:5;;22168:330;22184:13;22180:1;:17;22168:330;;;22227:9;22237:1;22227:12;;;;;;;;;;;;;;22223:16;;22275:1;22262:15;;:1;:15;;;:29;;;;22286:5;;;;;;;;;;;22281:10;;:1;:10;;;22262:29;22258:43;;;22293:8;;22258:43;22329:7;22337:1;22329:10;;;;;;;;;;;;;;22320:19;;22372:1;22362:6;:11;22358:25;;;22375:8;;22358:25;22415:22;22430:6;22415:7;:10;22423:1;22415:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;22402:7;:10;22410:1;22402:10;;;;;;;;;;;;;;;:35;;;;22476:1;22461:25;;22470:4;22461:25;;;22479:6;22461:25;;;;;;;;;;;;;;;;;;22168:330;22199:3;;;;;;;22168:330;;;22515:4;22508:11;;;;;;;;;21090:1441;;;;;:::o;4321:159::-;4376:4;4422:1;4409:9;;:14;4408:60;;;;4458:9;;4429:25;4447:6;4429:13;;:17;;:25;;;;:::i;:::-;:38;;4408:60;4401:67;;4321:159;;;:::o;6261:569::-;6350:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;6392:10;6379:23;;:9;:23;;;6375:40;;;6411:4;6404:11;;;;6375:40;6434:13;6450:8;:20;6459:10;6450:20;;;;;;;;;;;;;;;:31;6471:9;6450:31;;;;;;;;;;;;;;;;6434:47;;6512:5;6504;:13;6500:169;;;6554:1;6546:9;;6500:169;;;6633:16;6643:5;6633;:9;;:16;;;;:::i;:::-;6625:24;;6500:169;6721:5;6687:8;:20;6696:10;6687:20;;;;;;;;;;;;;;;:31;6708:9;6687:31;;;;;;;;;;;;;;;:39;;;;6771:9;6750:38;;6759:10;6750:38;;;6782:5;6750:38;;;;;;;;;;;;;;;;;;6814:4;6807:11;;;2378:1;6261:569;;;;:::o;13420:1555::-;13545:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;13570:20;13593:9;:16;13570:39;;13655:7;:14;13636:15;:33;13628:42;;;;;;13683:19;13705:1;13683:23;;13717:19;13739:1;13717:23;;13751:6;13768:9;13797:1;13793:5;;13788:244;13804:15;13800:1;:19;13788:244;;;13850:9;13860:1;13850:12;;;;;;;;;;;;;;13846:16;;13898:1;13885:15;;:1;:15;;;:29;;;;13909:5;;;;;;;;;;;13904:10;;:1;:10;;;13885:29;13881:43;;;13916:8;;13881:43;13943:17;;;;;;;13993:27;14009:7;14017:1;14009:10;;;;;;;;;;;;;;13993:11;:15;;:27;;;;:::i;:::-;13979:41;;13788:244;13821:4;;;;;;;13788:244;;;14064:1;14050:11;:15;14042:24;;;;;;14085:20;14093:11;14085:7;:20::i;:::-;14077:29;;;;;;14119:14;14160:30;14178:11;14160:13;;:17;;:30;;;;:::i;:::-;14144:13;:46;;;;14210:1;14206:5;;14201:739;14217:15;14213:1;:19;14201:739;;;14263:9;14273:1;14263:12;;;;;;;;;;;;;;14259:16;;14311:1;14298:15;;:1;:15;;;:29;;;;14322:5;;;;;;;;;;;14317:10;;:1;:10;;;14298:29;14294:43;;;14329:8;;14294:43;14365:7;14373:1;14365:10;;;;;;;;;;;;;;14356:19;;14407:22;14422:6;14407:7;:10;14415:1;14407:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;14394:7;:10;14402:1;14394:10;;;;;;;;;;;;;;;:35;;;;14458:1;14453:15;;;14461:6;14453:15;;;;;;;;;;;;;;;;;;14513:1;14492:31;;14509:1;14492:31;;;14516:6;14492:31;;;;;;;;;;;;;;;;;;14536:38;14577:8;:11;14586:1;14577:11;;;;;;;;;;;;;;;14536:52;;14599:20;14622:5;:8;14628:1;14622:8;;;;;;;;;;;14599:31;;14641:10;14668:1;14654:4;:11;;;:15;14641:28;;14695:203;;;;;;;;14729:12;;14695:203;;;;14783:15;;14768:12;;:30;14695:203;;;;14846:6;14827:15;;:26;;;;;;14695:203;;;;14880:6;14695:203;;;14680:5;:12;14686:5;14680:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14923:5;14909:4;:11;;:19;;;;14201:739;;;;14234:4;;;;;;;14201:739;;;14959:4;14952:11;;;;;;;;13420:1555;;;;:::o;5084:115::-;5139:7;5174;:13;5182:4;5174:13;;;;;;;;;;;;;;;;5167:20;;5084:115;;;:::o;9630:27::-;;;;:::o;19792:1286::-;19907:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;19956:1;19940:18;;:4;:18;;;;:35;;;;;19970:5;;;;;;;;;;;19962:13;;:4;:13;;;;19940:35;19932:44;;;;;;20012:1;20003:6;:10;19995:19;;;;;;20027:18;20048:9;:16;20027:37;;20075:18;20096:1;20075:22;;20108:6;20125:9;20154:1;20150:5;;20145:181;20161:13;20157:1;:17;20145:181;;;20205:9;20215:1;20205:12;;;;;;;;;;;;;;20201:16;;20253:1;20240:15;;:1;:15;;;:29;;;;20264:5;;;;;;;;;;;20259:10;;:1;:10;;;20240:29;20236:43;;;20271:8;;20236:43;20298:16;;;;;;;20145:181;20176:4;;;;;;;20145:181;;;20360:1;20344:13;:17;20336:26;;;;;;20375:19;20397:34;20416:13;20397:6;:10;;:34;;;;:::i;:::-;20375:56;;20450:25;20457:4;20463:11;20450:6;:25::i;:::-;20442:34;;;;;;20489:15;20533:4;20519:18;;:10;:18;;;20515:213;;20568:8;:14;20577:4;20568:14;;;;;;;;;;;;;;;:26;20583:10;20568:26;;;;;;;;;;;;;;;;20558:36;;20636:7;20621:11;:22;;20613:31;;;;;;20692:24;20704:11;20692:7;:11;;:24;;;;:::i;:::-;20663:8;:14;20672:4;20663:14;;;;;;;;;;;;;;;:26;20678:10;20663:26;;;;;;;;;;;;;;;:53;;;;20515:213;20756:30;20774:11;20756:7;:13;20764:4;20756:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;20740:7;:13;20748:4;20740:13;;;;;;;;;;;;;;;:46;;;;20806:1;20802:5;;20797:248;20813:13;20809:1;:17;20797:248;;;20856:9;20866:1;20856:12;;;;;;;;;;;;;;20852:16;;20904:1;20891:15;;:1;:15;;;:29;;;;20915:5;;;;;;;;;;;20910:10;;:1;:10;;;20891:29;20887:43;;;20922:8;;20887:43;20962:22;20977:6;20962:7;:10;20970:1;20962:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;20949:7;:10;20957:1;20949:10;;;;;;;;;;;;;;;:35;;;;21023:1;21008:25;;21017:4;21008:25;;;21026:6;21008:25;;;;;;;;;;;;;;;;;;20797:248;20828:3;;;;;;;20797:248;;;21062:4;21055:11;;;;;;;;19792:1286;;;;;:::o;16964:977::-;17060:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;17102:1;17093:6;:10;17085:19;;;;;;17117:18;17138:9;:16;17117:37;;17165:18;17186:1;17165:22;;17198:6;17215:9;17244:1;17240:5;;17235:181;17251:13;17247:1;:17;17235:181;;;17295:9;17305:1;17295:12;;;;;;;;;;;;;;17291:16;;17343:1;17330:15;;:1;:15;;;:29;;;;17354:5;;;;;;;;;;;17349:10;;:1;:10;;;17330:29;17326:43;;;17361:8;;17326:43;17388:16;;;;;;;17235:181;17266:4;;;;;;;17235:181;;;17450:1;17434:13;:17;17426:26;;;;;;17465:19;17487:34;17506:13;17487:6;:10;;:34;;;;:::i;:::-;17465:56;;17540:31;17547:10;17559:11;17540:6;:31::i;:::-;17532:40;;;;;;17607:36;17631:11;17607:7;:19;17615:10;17607:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;17585:7;:19;17593:10;17585:19;;;;;;;;;;;;;;;:58;;;;17663:1;17659:5;;17654:254;17670:13;17666:1;:17;17654:254;;;17713:9;17723:1;17713:12;;;;;;;;;;;;;;17709:16;;17761:1;17748:15;;:1;:15;;;:29;;;;17772:5;;;;;;;;;;;17767:10;;:1;:10;;;17748:29;17744:43;;;17779:8;;17744:43;17819:22;17834:6;17819:7;:10;17827:1;17819:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;17806:7;:10;17814:1;17806:10;;;;;;;;;;;;;;;:35;;;;17886:1;17865:31;;17874:10;17865:31;;;17889:6;17865:31;;;;;;;;;;;;;;;;;;17654:254;17685:3;;;;;;;17654:254;;;17925:4;17918:11;;;;;;;16964:977;;;;:::o;2532:169::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2604:1;2598:3;:7;2586:9;:19;;;;2640:10;2634:3;:16;2624:7;:26;;;;2674:15;;;;;;;;;;2532:169::o;4769:42::-;;;;;;;;;;;;;;;;;:::o;23126:87::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;23195:5;;;;;;;;;;;23182:19;;;7967:122;8018:7;8053:24;;8046:31;;7967:122;:::o;22641:40::-;;;;;;;;;;;;;;;;;;;:::o;5301:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9709:27::-;;;;;;;;;;;;;:::o;14987:504::-;15053:7;15109:1;15089:22;;:8;:22;;;;:43;;;;;15127:5;;;;;;;;;;;15115:17;;:8;:17;;;;15089:43;:74;;;;;15148:15;;;;;;;;;;;15136:27;;:8;:27;;;;15089:74;15081:83;;;;;;15177:38;15218:8;:18;15227:8;15218:18;;;;;;;;;;;;;;;15177:59;;15247:15;15265:1;15247:19;;15277:6;15286:5;:8;15292:1;15286:8;;;;;;;;;;;:15;;;15277:24;;15317:6;15326:1;15317:10;;15312:143;15334:1;15329;:6;15312:143;;15362:18;;:::i;:::-;15383:5;:8;15389:1;15383:8;;;;;;;;;;;15362:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15420:23;15432:3;:10;;;15420:7;:11;;:23;;;;:::i;:::-;15410:33;;15312:143;15337:4;;;;;;;15312:143;;;;15472:7;15465:14;;;;;14987:504;;;:::o;10100:231::-;10162:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;10196:15;;;;;;;;;;;10195:16;10187:25;;;;;;10249:4;10231:15;;:22;;;;;;;;;;;;;;;;;;10277:12;;;;;;;;;;10315:4;10308:11;;10100:231;:::o;16526:424::-;16643:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;16607:10;16619:6;16627:5;4935:1;4918:19;;:5;:19;;;;4917:44;;;;;4958:1;4943:17;;:3;:17;;;;4917:44;4909:53;;;;;;4998:3;4989:12;;:5;:12;;;;4981:21;;;;;;5038:1;5029:6;:10;5021:19;;;;;;16686:5;;;;;;;;;;;16676:15;;:6;:15;;;;16668:24;;;;;;16719:25;16726:10;16738:5;16719:6;:25::i;:::-;16711:34;;;;;;16780:30;16804:5;16780:7;:19;16788:10;16780:19;;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;16758:7;:19;16766:10;16758:19;;;;;;;;;;;;;;;:52;;;;16839:26;16859:5;16839:7;:15;16847:6;16839:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;16821:7;:15;16829:6;16821:15;;;;;;;;;;;;;;;:44;;;;16902:6;16881:35;;16890:10;16881:35;;;16910:5;16881:35;;;;;;;;;;;;;;;;;;16934:4;16927:11;;2378:1;;;16526:424;;;;:::o;3693:180::-;3750:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;3329:13;;;;;;;;;;;3321:22;;;;;;3791:5;3775:13;;:21;;;;;;;;;;;;;;;;;;3820:11;;;;;;;;;;3857:4;3850:11;;3693:180;:::o;10949:990::-;11048:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;11101:1;11081:22;;:8;:22;;;;11073:31;;;;;;11143:5;;;;;;;;;;;11131:17;;:8;:17;;;;11123:26;;;;;;11188:15;;;;;;;;;;;11176:27;;:8;:27;;;;11168:36;;;;;;11240:1;11231:6;:10;11223:19;;;;;;11269:15;11277:6;11269:7;:15::i;:::-;11261:24;;;;;;11298:38;11339:8;:18;11348:8;11339:18;;;;;;;;;;;;;;;11298:59;;11368:20;11391:5;:8;11397:1;11391:8;;;;;;;;;;;11368:31;;11410:10;11437:1;11423:4;:11;;;:15;11410:28;;11464:203;;;;;;;;11498:12;;11464:203;;;;11552:15;;11537:12;;:30;11464:203;;;;11615:6;11596:15;;:26;;;;;;11464:203;;;;11649:6;11464:203;;;11449:5;:12;11455:5;11449:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11692:5;11678:4;:11;;:19;;;;11726:25;11744:6;11726:13;;:17;;:25;;;;:::i;:::-;11710:13;:41;;;;11782:29;11804:6;11782:7;:17;11790:8;11782:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11762:7;:17;11770:8;11762:17;;;;;;;;;;;;;;;:49;;;;11832:8;11827:22;;;11842:6;11827:22;;;;;;;;;;;;;;;;;;11886:8;11865:38;;11882:1;11865:38;;;11896:6;11865:38;;;;;;;;;;;;;;;;;;11923:4;11916:11;;;;;10949:990;;;;:::o;11951:1457::-;12065:4;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:28;;;;;;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;9870:15;;;;;;;;;;;9869:16;9861:25;;;;;;12107:1;12098:6;:10;12090:19;;;;;;12122:20;12145:9;:16;12122:39;;12172:19;12194:1;12172:23;;12206:6;12223:9;12252:1;12248:5;;12243:208;12259:15;12255:1;:19;12243:208;;;12305:9;12315:1;12305:12;;;;;;;;;;;;;;12301:16;;12353:1;12340:15;;:1;:15;;;:29;;;;12364:5;;;;;;;;;;;12359:10;;:1;:10;;;12340:29;:53;;;;12378:15;;;;;;;;;;;12373:20;;:1;:20;;;12340:53;12336:67;;;12395:8;;12336:67;12422:17;;;;;;;12243:208;12276:4;;;;;;;12243:208;;;12486:1;12469:14;:18;12461:27;;;;;;12501:19;12523:35;12542:14;12523:6;:10;;:35;;;;:::i;:::-;12501:57;;12577:20;12585:11;12577:7;:20::i;:::-;12569:29;;;;;;12627:30;12645:11;12627:13;;:17;;:30;;;;:::i;:::-;12611:13;:46;;;;12679:1;12675:5;;12670:703;12686:15;12682:1;:19;12670:703;;;12732:9;12742:1;12732:12;;;;;;;;;;;;;;12728:16;;12780:1;12767:15;;:1;:15;;;:29;;;;12791:5;;;;;;;;;;;12786:10;;:1;:10;;;12767:29;:53;;;;12805:15;;;;;;;;;;;12800:20;;:1;:20;;;12767:53;12763:67;;;12822:8;;12763:67;12843:38;12884:8;:11;12893:1;12884:11;;;;;;;;;;;;;;;12843:52;;12906:20;12929:5;:8;12935:1;12929:8;;;;;;;;;;;12906:31;;12948:10;12975:1;12961:4;:11;;;:15;12948:28;;13002:203;;;;;;;;13036:12;;13002:203;;;;13090:15;;13075:12;;:30;13002:203;;;;13153:6;13134:15;;:26;;;;;;13002:203;;;;13187:6;13002:203;;;12987:5;:12;12993:5;12987:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13230:5;13216:4;:11;;:19;;;;13261:22;13276:6;13261:7;:10;13269:1;13261:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;13248:7;:10;13256:1;13248:10;;;;;;;;;;;;;;;:35;;;;13304:1;13299:15;;;13307:6;13299:15;;;;;;;;;;;;;;;;;;13351:1;13330:31;;13347:1;13330:31;;;13354:6;13330:31;;;;;;;;;;;;;;;;;;12670:703;;;;12703:4;;;;;;;12670:703;;;13392:4;13385:11;;;;;;;11951:1457;;;;:::o;4036:35::-;;;;:::o;4082:39::-;;;;:::o;7139:147::-;7200:7;7235:39;7253:20;7268:4;7253:14;:20::i;:::-;7235:7;:13;7243:4;7235:13;;;;;;;;;;;;;;;;:17;;:39;;;;:::i;:::-;7228:46;;7139:147;;;:::o;5856:393::-;5945:4;2332:9;;2326:3;:15;:32;;;;2351:7;;2345:3;:13;2326:32;2318:41;;;;;;5987:10;5974:23;;:9;:23;;;5970:40;;;6006:4;5999:11;;;;5970:40;6029:13;6045:42;6081:5;6045:8;:20;6054:10;6045:20;;;;;;;;;;;;;;;:31;6066:9;6045:31;;;;;;;;;;;;;;;;:35;;:42;;;;:::i;:::-;6029:58;;6140:5;6106:8;:20;6115:10;6106:20;;;;;;;;;;;;;;;:31;6127:9;6106:31;;;;;;;;;;;;;;;:39;;;;6190:9;6169:38;;6178:10;6169:38;;;6201:5;6169:38;;;;;;;;;;;;;;;;;;6233:4;6226:11;;;2378:1;5856:393;;;;:::o;5377:148::-;5452:7;5487:8;:15;5496:5;5487:15;;;;;;;;;;;;;;;:26;5503:9;5487:26;;;;;;;;;;;;;;;;5480:33;;5377:148;;;;:::o;3997:28::-;;;;:::o;3962:24::-;;;;:::o;9668:30::-;;;;:::o;16325:189::-;16395:4;16420:15;16438:21;16454:4;16438:15;:21::i;:::-;16420:39;;16495:7;16485:6;:17;;16478:24;;;16325:189;;;;:::o;455:144::-;514:7;554:1;549;:6;;542:14;;;;586:1;582;:5;575:12;;455:144;;;;:::o;611:176::-;670:7;698:9;714:1;710;:5;698:17;;746:1;741;:6;;734:14;;;;774:1;767:8;;;611:176;;;;:::o;4500:170::-;4565:4;4637:20;;4597:36;4626:6;4597:24;;:28;;:36;;;;:::i;:::-;:60;;4590:68;;4500:170;;;:::o;55:265::-;114:7;151:1;146;:6;142:67;;;188:1;181:8;;;;142:67;227:9;243:1;239;:5;227:17;;279:1;274;270;:5;;;;;;:10;263:18;;;;307:1;300:8;;;55:265;;;;;:::o;22538:688::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://d7dec4457383368bdf1b8e1f0f59b540a597658cc13b179b36edaa8643a594b6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.