ETH Price: $3,317.42 (+1.42%)
Gas: 1.41 Gwei
 

Overview

Max Total Supply

1,000,000,000 MUTE

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
*敢rug你妈必死.eth
Balance
0.000000000000000001 MUTE

Value
$0.00
0xadeaf5ce70978f7f91b3bdd39d9e28ccf07c7510
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
EmbraceMute

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-23
*/

/**

https://mutetoken.com/
https://medium.com/@MUTETOKEN
https://twitter.com/MuteToken

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

/*


*/

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

interface Router {
	function factory() external view returns (address);
	function positionManager() external view returns (address);
	function WETH9() external view returns (address);
}

interface Factory {
	function createPool(address _tokenA, address _tokenB, uint24 _fee) external returns (address);
}

interface Pool {
	function initialize(uint160 _sqrtPriceX96) external;
}

interface PositionManager {
	struct MintParams {
		address token0;
		address token1;
		uint24 fee;
		int24 tickLower;
		int24 tickUpper;
		uint256 amount0Desired;
		uint256 amount1Desired;
		uint256 amount0Min;
		uint256 amount1Min;
		address recipient;
		uint256 deadline;
	}
	struct CollectParams {
		uint256 tokenId;
		address recipient;
		uint128 amount0Max;
		uint128 amount1Max;
	}
	function mint(MintParams calldata) external payable returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1);
	function collect(CollectParams calldata) external payable returns (uint256 amount0, uint256 amount1);
}




contract EmbraceMute {

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

    modifier onlyOwner() {
        require(msg.sender == _owner, "Caller is not the owner");
        _;
    }

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private UINT_MAX = type(uint256).max;
	uint128 constant private UINT128_MAX = type(uint128).max;
	uint256 constant private INITIAL_SUPPLY = 1e27; // 
	Router constant private ROUTER = Router(0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45);
	uint256 constant private INITIAL_ETH_MC = 15 ether; // 
	uint256 constant private CONCENTRATED_PERCENT = 10; // 
	uint256 constant private UPPER_ETH_MC = 1e6 ether; //

	int24 constant private MIN_TICK = -887272;
	int24 constant private MAX_TICK = -MIN_TICK;
	uint160 constant private MIN_SQRT_RATIO = 4295128739;
	uint160 constant private MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;

	string constant public name = "MUTE" ;
	string constant public symbol = "MUTE";
	uint8 constant public decimals = 18;


         struct Holder {
        uint256 lastTransferTime;
        uint256 silencePeriod;
    }

    mapping(address => Holder) public holders;
    uint256 public rewardForSilence;
    uint256 public constant MINIMUM_SILENCE_PERIOD = 5 days; // minimum period of silence


    struct Staker {
        uint256 amountStaked;
        uint256 timeOfLastUpdate;
        uint256 unclaimedRewards;
    }

    mapping(address => Staker) public stakers;
    uint256 public rewardRate = 1e18;  // Reward rate per token per second

	struct User {
		uint256 balance;
		mapping(address => uint256) allowance;
	}


    mapping(address => uint256) private lastTransferTimestamp;
    uint256 public rewardRatePerDay = 1e18;  

    mapping(bytes32 => mapping(address => string)) public oracleGuesses;
    mapping(bytes32 => bool) public oracleGuessesReviewed;
    mapping(address => uint256) public userRewards;

  
    mapping(address => bool) private isPartOfWhispernet;

    
    event WhispernetRegistered(address indexed user);

    uint256 public rewardForCorrectGuess;

    event GuessSubmitted(address indexed user, bytes32 indexed oracleOutput, string guess);
    event GuessReviewed(address indexed user, bytes32 indexed oracleOutput, bool isCorrect);


	struct Info {
		address owner;
		address pool;
		uint256 totalSupply;
		mapping(address => User) users;
		uint256 lowerPositionId1;
		uint256 lowerPositionId2;
		uint256 upperPositionId1;
		uint256 upperPositionId2;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);


 constructor() {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);

        address _this = address(this);
        address _weth = ROUTER.WETH9();
        (uint160 _initialSqrtPrice, ) = _getPriceAndTickFromValues(_weth < _this, INITIAL_SUPPLY, INITIAL_ETH_MC);
        info.pool = Factory(ROUTER.factory()).createPool(_this, _weth, 10000);
        Pool(pool()).initialize(_initialSqrtPrice);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "New owner cannot be the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

	
	function initialize() external {
		require(totalSupply() == 0);
		address _this = address(this);
		address _weth = ROUTER.WETH9();
		bool _weth0 = _weth < _this;
		PositionManager _pm = PositionManager(ROUTER.positionManager());
		info.totalSupply = INITIAL_SUPPLY;
		info.users[_this].balance = INITIAL_SUPPLY;
		emit Transfer(address(0x0), _this, INITIAL_SUPPLY);
		_approve(_this, address(_pm), INITIAL_SUPPLY);
		( , int24 _minTick) = _getPriceAndTickFromValues(_weth0, INITIAL_SUPPLY, INITIAL_ETH_MC);
		( , int24 _maxTick) = _getPriceAndTickFromValues(_weth0, INITIAL_SUPPLY, UPPER_ETH_MC);
		uint256 _concentratedTokens = CONCENTRATED_PERCENT * INITIAL_SUPPLY / 100;
		(info.lowerPositionId1, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _minTick - 200 : _minTick,
			tickUpper: !_weth0 ? _minTick + 200 : _minTick,
			amount0Desired: _weth0 ? 0 : _concentratedTokens / 2,
			amount1Desired: !_weth0 ? 0 : _concentratedTokens / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.lowerPositionId2, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _minTick - 200 : _minTick,
			tickUpper: !_weth0 ? _minTick + 200 : _minTick,
			amount0Desired: _weth0 ? 0 : _concentratedTokens / 2,
			amount1Desired: !_weth0 ? 0 : _concentratedTokens / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.upperPositionId1, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _maxTick : _minTick + 200,
			tickUpper: !_weth0 ? _maxTick : _minTick - 200,
			amount0Desired: _weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount1Desired: !_weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.upperPositionId2, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _maxTick : _minTick + 200,
			tickUpper: !_weth0 ? _maxTick : _minTick - 200,
			amount0Desired: _weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount1Desired: !_weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
	}

	function collectTradingFees() external {
		PositionManager _pm = PositionManager(ROUTER.positionManager());
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.lowerPositionId1,
			recipient: 0x9653d6113ef0DbcAd6F1071Bb638a0fBABF97880,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.lowerPositionId2,
			recipient: 0x9653d6113ef0DbcAd6F1071Bb638a0fBABF97880,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.upperPositionId1,
			recipient: 0x9653d6113ef0DbcAd6F1071Bb638a0fBABF97880,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.upperPositionId2,
			recipient: 0x9653d6113ef0DbcAd6F1071Bb638a0fBABF97880,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
	}

    

     function registerToWhispernet() external {
        require(!isPartOfWhispernet[msg.sender], "Already part of Whispernet");
        isPartOfWhispernet[msg.sender] = true;
        emit WhispernetRegistered(msg.sender);
    }

     function isUserInWhispernet(address user) public view returns (bool) {
        return isPartOfWhispernet[user];
    }

      function claimRewards() external {
        uint256 reward = stakers[msg.sender].unclaimedRewards;
        stakers[msg.sender].unclaimedRewards = 0;
        _transfer(address(this), msg.sender, reward);
    }

       function collectOracleRewards() external {
        uint256 rewardAmount = userRewards[msg.sender];
        require(rewardAmount > 0, "No Oracle rewards to collect");

        userRewards[msg.sender] = 0;
        _transfer(address(this), msg.sender, rewardAmount);
    }

  
    function claimSilenceReward() external {
        require(block.timestamp - holders[msg.sender].lastTransferTime > MINIMUM_SILENCE_PERIOD, "Silence period not met");
        require(balanceOf(address(this)) >= rewardForSilence, "Insufficient reward balance");

        _transfer(address(this), msg.sender, rewardForSilence);
        holders[msg.sender].lastTransferTime = block.timestamp; // reset silence period
    }

      
    function claimWhisperRewards() external {
        require(lastTransferTimestamp[msg.sender] != 0, "No transfer history");
        uint256 timeHeld = block.timestamp - lastTransferTimestamp[msg.sender];
        uint256 rewardAmount = timeHeld * rewardRatePerDay / 86400; // Adjust reward based on the time held
        require(rewardAmount <= balanceOf(address(this)), "Insufficient reward pool");

       
        _transfer(address(this), msg.sender, rewardAmount);

    
        lastTransferTimestamp[msg.sender] = block.timestamp;
    }

  function MysticOracles(address user, uint256 magicNumber) public view returns (bytes32) {
        require(user != address(0), "Mystic Oracles: Query from the void");

     
        return keccak256(
            abi.encodePacked(
                user,
                block.timestamp,
                block.prevrandao,
                magicNumber,
                address(this)
            )
        );
    }

    function oracleConfluence(uint256 magicNumber1, uint256 magicNumber2) public view returns (bytes32) {
    bytes32 oracleOutput1 = MysticOracles(msg.sender, magicNumber1);
    bytes32 oracleOutput2 = MysticOracles(msg.sender, magicNumber2);

    return keccak256(abi.encodePacked(oracleOutput1, oracleOutput2));
}
   

 function oracleChallenge(uint256 magicNumber, string memory guess) public {
        bytes32 oracleOutput = MysticOracles(msg.sender, magicNumber);
        require(!oracleGuessesReviewed[oracleOutput], "Oracle output already reviewed");

        oracleGuesses[oracleOutput][msg.sender] = guess;
        emit GuessSubmitted(msg.sender, oracleOutput, guess);
}

 


	function transfer(address _to, uint256 _tokens) external returns (bool) {
		return _transfer(msg.sender, _to, _tokens);
	}

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		return _approve(msg.sender, _spender, _tokens);
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		uint256 _allowance = allowance(_from, msg.sender);
		require(_allowance >= _tokens);
		if (_allowance != UINT_MAX) {
			info.users[_from].allowance[msg.sender] -= _tokens;
		}
		return _transfer(_from, _to, _tokens);
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		_transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _tokens, _data));
		}
		return true;
	}
	

	function pool() public view returns (address) {
		return info.pool;
	}

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

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function positions() external view returns (uint256 lower1, uint256 lower2, uint256 upper1, uint256 upper2) {
		return (info.lowerPositionId1, info.lowerPositionId2, info.upperPositionId1, info.upperPositionId2);
	}


	function _approve(address _owner, address _spender, uint256 _tokens) internal returns (bool) {
		info.users[_owner].allowance[_spender] = _tokens;
		emit Approval(_owner, _spender, _tokens);
		return true;
	}
	
	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		unchecked {
			require(balanceOf(_from) >= _tokens);
			info.users[_from].balance -= _tokens;
			info.users[_to].balance += _tokens;
			emit Transfer(_from, _to, _tokens);
			return true;
		}
	}


	function _getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) {
		unchecked {
			uint256 absTick = tick < 0 ? uint256(-int256(tick)) : uint256(int256(tick));
			require(absTick <= uint256(int256(MAX_TICK)), 'T');

			uint256 ratio = absTick & 0x1 != 0 ? 0xfffcb933bd6fad37aa2d162d1a594001 : 0x100000000000000000000000000000000;
			if (absTick & 0x2 != 0) ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128;
			if (absTick & 0x4 != 0) ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128;
			if (absTick & 0x8 != 0) ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128;
			if (absTick & 0x10 != 0) ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128;
			if (absTick & 0x20 != 0) ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128;
			if (absTick & 0x40 != 0) ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128;
			if (absTick & 0x80 != 0) ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128;
			if (absTick & 0x100 != 0) ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128;
			if (absTick & 0x200 != 0) ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128;
			if (absTick & 0x400 != 0) ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128;
			if (absTick & 0x800 != 0) ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128;
			if (absTick & 0x1000 != 0) ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128;
			if (absTick & 0x2000 != 0) ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128;
			if (absTick & 0x4000 != 0) ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128;
			if (absTick & 0x8000 != 0) ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128;
			if (absTick & 0x10000 != 0) ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128;
			if (absTick & 0x20000 != 0) ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128;
			if (absTick & 0x40000 != 0) ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128;
			if (absTick & 0x80000 != 0) ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128;

			if (tick > 0) ratio = type(uint256).max / ratio;

			sqrtPriceX96 = uint160((ratio >> 32) + (ratio % (1 << 32) == 0 ? 0 : 1));
		}
	}

	function _getTickAtSqrtRatio(uint160 sqrtPriceX96) internal pure returns (int24 tick) {
		unchecked {
			require(sqrtPriceX96 >= MIN_SQRT_RATIO && sqrtPriceX96 < MAX_SQRT_RATIO, 'R');
			uint256 ratio = uint256(sqrtPriceX96) << 32;

			uint256 r = ratio;
			uint256 msb = 0;

			assembly {
				let f := shl(7, gt(r, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(6, gt(r, 0xFFFFFFFFFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(5, gt(r, 0xFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(4, gt(r, 0xFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(3, gt(r, 0xFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(2, gt(r, 0xF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(1, gt(r, 0x3))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := gt(r, 0x1)
				msb := or(msb, f)
			}

			if (msb >= 128) r = ratio >> (msb - 127);
			else r = ratio << (127 - msb);

			int256 log_2 = (int256(msb) - 128) << 64;

			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(63, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(62, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(61, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(60, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(59, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(58, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(57, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(56, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(55, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(54, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(53, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(52, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(51, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(50, f))
			}

			int256 log_sqrt10001 = log_2 * 255738958999603826347141;

			int24 tickLow = int24((log_sqrt10001 - 3402992956809132418596140100660247210) >> 128);
			int24 tickHi = int24((log_sqrt10001 + 291339464771989622907027621153398088495) >> 128);

			tick = tickLow == tickHi ? tickLow : _getSqrtRatioAtTick(tickHi) <= sqrtPriceX96 ? tickHi : tickLow;
		}
	}

	function _sqrt(uint256 _n) internal pure returns (uint256 result) {
		unchecked {
			uint256 _tmp = (_n + 1) / 2;
			result = _n;
			while (_tmp < result) {
				result = _tmp;
				_tmp = (_n / _tmp + _tmp) / 2;
			}
		}
	}

	function _getPriceAndTickFromValues(bool _weth0, uint256 _tokens, uint256 _weth) internal pure returns (uint160 price, int24 tick) {
		uint160 _tmpPrice = uint160(_sqrt(2**192 / (!_weth0 ? _tokens : _weth) * (_weth0 ? _tokens : _weth)));
		tick = _getTickAtSqrtRatio(_tmpPrice);
		tick = tick - (tick % 200);
		price = _getSqrtRatioAtTick(tick);
	}
}


contract Deploy {
	EmbraceMute immutable public MUTE;
	constructor() {
		MUTE= new EmbraceMute();
		MUTE.initialize();
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"bytes32","name":"oracleOutput","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"isCorrect","type":"bool"}],"name":"GuessReviewed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"bytes32","name":"oracleOutput","type":"bytes32"},{"indexed":false,"internalType":"string","name":"guess","type":"string"}],"name":"GuessSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"WhispernetRegistered","type":"event"},{"inputs":[],"name":"MINIMUM_SILENCE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"magicNumber","type":"uint256"}],"name":"MysticOracles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimSilenceReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimWhisperRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectOracleRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectTradingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holders","outputs":[{"internalType":"uint256","name":"lastTransferTime","type":"uint256"},{"internalType":"uint256","name":"silencePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserInWhispernet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"magicNumber","type":"uint256"},{"internalType":"string","name":"guess","type":"string"}],"name":"oracleChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"magicNumber1","type":"uint256"},{"internalType":"uint256","name":"magicNumber2","type":"uint256"}],"name":"oracleConfluence","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"oracleGuesses","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"oracleGuessesReviewed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positions","outputs":[{"internalType":"uint256","name":"lower1","type":"uint256"},{"internalType":"uint256","name":"lower2","type":"uint256"},{"internalType":"uint256","name":"upper1","type":"uint256"},{"internalType":"uint256","name":"upper2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registerToWhispernet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardForCorrectGuess","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardForSilence","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRatePerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"amountStaked","type":"uint256"},{"internalType":"uint256","name":"timeOfLastUpdate","type":"uint256"},{"internalType":"uint256","name":"unclaimedRewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

6080604052670de0b6b3a7640000600455670de0b6b3a76400006006553480156200002957600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600030905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e99190620009e6565b905060006200011c6001600160a01b03808516908416106b033b2e3c9fd0803ce800000067d02ab486cedc0000620002a0565b5090507368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001989190620009e6565b60405163a167129560e01b81526001600160a01b03858116600483015284811660248301526127106044830152919091169063a1671295906064016020604051808303816000875af1158015620001f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002199190620009e6565b600d80546001600160a01b0319166001600160a01b0392909216918217905560405163f637731d60e01b81526001600160a01b038381166004830152919091169063f637731d90602401600060405180830381600087803b1580156200027e57600080fd5b505af115801562000293573d6000803e3d6000fd5b5050505050505062000ac8565b6000806000620002ea86620002b65784620002b8565b855b8715620002c65785620002c8565b865b620002d890600160c01b62000a44565b620002e4919062000a5b565b6200032a565b9050620002f78162000375565b91506200030660c88362000a7b565b62000312908362000aa0565b91506200031f826200069b565b925050935093915050565b80600260018201045b818110156200036f5780915060028182858162000354576200035462000a18565b04018162000366576200036662000a18565b04905062000333565b50919050565b60006401000276a36001600160a01b03831610801590620003b2575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b620003e85760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b600160201b600160c01b03602083901b166001600160801b03811160071b81811c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106200047c57607f810383901c915062000486565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146200068c576001600160a01b0389166200066e826200069b565b6001600160a01b031611156200068557816200068e565b806200068e565b815b9998505050505050505050565b60008060008360020b12620006b4578260020b620006bc565b8260020b6000035b9050620d89e8811115620006f75760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401620003df565b6000816001166000036200071057600160801b62000722565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156200074d576ffff97272373d413259a46990580e213a0260801c5b60048216156200076d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156200078d576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615620007ad576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615620007cd576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615620007ed576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156200080d576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156200082e576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156200084f576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161562000870576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161562000891576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615620008b2576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615620008d3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615620008f4576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161562000915576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161562000937576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161562000958576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161562000978576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161562000996576b048a170391f7dc42444e8fa20260801c5b60008460020b1315620009bb578060001981620009b757620009b762000a18565b0490505b640100000000810615620009d1576001620009d4565b60005b60ff16602082901c0192505050919050565b600060208284031215620009f957600080fd5b81516001600160a01b038116811462000a1157600080fd5b9392505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008262000a565762000a5662000a18565b500490565b808202811582820484141762000a755762000a7562000a2e565b92915050565b60008260020b8062000a915762000a9162000a18565b808360020b0791505092915050565b600282810b9082900b03627fffff198112627fffff8213171562000a755762000a7562000a2e565b6128508062000ad86000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80637783528111610125578063bb98b080116100ad578063edfb59cb1161007c578063edfb59cb146104d0578063f2fde38b146104e3578063f957cdb6146104f6578063fac8c87414610509578063fd7ea3cf1461051c57600080fd5b8063bb98b0801461047a578063c1b6758e14610482578063dcdf16a21461048b578063dd62ed3e1461049357600080fd5b80639168ae72116100f45780639168ae72146103e757806395d89b41146102495780639aaa752514610431578063a9059cbb1461043b578063ba5b79821461044e57600080fd5b806377835281146103ab5780637b0a47ee146103ce5780638129fc1c146103d757806388bd1e68146103df57600080fd5b8063372500ab116101a857806353f8b3031161017757806353f8b303146103615780635bcf7fec146103695780635e93ec5f1461037157806370a082311461037a578063715018a6146103a357600080fd5b8063372500ab1461032857806337de060e146103325780634000aea01461033b5780634b1df4ad1461034e57600080fd5b806318160ddd116101e457806318160ddd146102b757806318a5bbdc146102bf57806323b872dd146102fb578063313ce5671461030e57600080fd5b80630660f1e81461021657806306fdde0314610249578063095ea7b31461027957806316f0115b1461029c575b600080fd5b610236610224366004612134565b60096020526000908152604090205481565b6040519081526020015b60405180910390f35b61026c604051806040016040528060048152602001634d55544560e01b81525081565b6040516102409190612158565b61028c6102873660046121a6565b610548565b6040519015158152602001610240565b600d546040516001600160a01b039091168152602001610240565b600e54610236565b6102e66102cd366004612134565b6001602081905260009182526040909120805491015482565b60408051928352602083019190915201610240565b61028c6103093660046121d2565b61055e565b610316601281565b60405160ff9091168152602001610240565b6103306105eb565b005b61023660065481565b61028c610349366004612213565b610613565b61026c61035c36600461229c565b6106b9565b61033061075e565b610330610a83565b610236600b5481565b610236610388366004612134565b6001600160a01b03166000908152600f602052604090205490565b610330610b70565b61028c6103b93660046122cc565b60086020526000908152604090205460ff1681565b61023660045481565b610330610c0e565b6103306113ea565b6104166103f5366004612134565b60036020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610240565b6102366206978081565b61028c6104493660046121a6565b61148c565b601054601154601254601354604080519485526020850193909352918301526060820152608001610240565b610330611499565b61023660025481565b610330611512565b6102366104a13660046122e5565b6001600160a01b039182166000908152600f602090815260408083209390941682526001909201909152205490565b6102366104de366004612313565b611624565b6103306104f1366004612134565b611676565b6102366105043660046121a6565b611787565b61033061051736600461234b565b611845565b61028c61052a366004612134565b6001600160a01b03166000908152600a602052604090205460ff1690565b600061055533848461191e565b90505b92915050565b6001600160a01b0383166000908152600f602090815260408083203384526001019091528120548281101561059257600080fd5b60001981146105d7576001600160a01b0385166000908152600f60209081526040808320338452600101909152812080548592906105d190849061241c565b90915550505b6105e285858561198b565b95945050505050565b33600081815260036020526040812060020180549190559061060f9030908361198b565b5050565b600061062033868661198b565b50843b63ffffffff8116156106ad57604051636be32e7360e01b81526001600160a01b03871690636be32e739061066190339089908990899060040161242f565b6020604051808303816000875af1158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190612477565b6106ad57600080fd5b50600195945050505050565b6007602090815260009283526040808420909152908252902080546106dd90612499565b80601f016020809104026020016040519081016040528092919081815260200182805461070990612499565b80156107565780601f1061072b57610100808354040283529160200191610756565b820191906000526020600020905b81548152906001019060200180831161073957829003601f168201915b505050505081565b60007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906124cd565b604080516080810182526010548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81529192506001600160a01b0383169163fc6f78659161083e916004016124ea565b60408051808303816000875af115801561085c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610880919061252d565b5050604080516080810182526011548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f7865916108e891906004016124ea565b60408051808303816000875af1158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a919061252d565b5050604080516080810182526012548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161099291906004016124ea565b60408051808303816000875af11580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d4919061252d565b5050604080516080810182526013548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f786591610a3c91906004016124ea565b60408051808303816000875af1158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061252d565b505050565b336000908152600160205260409020546206978090610aa2904261241c565b11610aed5760405162461bcd60e51b815260206004820152601660248201527514da5b195b98d9481c195c9a5bd9081b9bdd081b595d60521b60448201526064015b60405180910390fd5b600254306000908152600f60205260409020541015610b4e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207265776172642062616c616e636500000000006044820152606401610ae4565b610b5b303360025461198b565b50336000908152600160205260409020429055565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b6044820152606401610ae4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600e5415610c1b57600080fd5b600030905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9891906124cd565b90506000826001600160a01b0316826001600160a01b031610905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2b91906124cd565b676765c793fa10079d601b1b600e8190556001600160a01b0386166000818152600f602052604080822084905551939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91610d8e91815260200190565b60405180910390a3610dac8482676765c793fa10079d601b1b61191e565b506000610dcd83676765c793fa10079d601b1b67d02ab486cedc0000611a12565b9150506000610df284676765c793fa10079d601b1b69d3c21bcecceda1000000611a12565b9150600090506064610e10676765c793fa10079d601b1b600a612551565b610e1a919061257e565b9050836001600160a01b0316638831645660405180610160016040528088610e42578a610e44565b895b6001600160a01b031681526020018815610e5e578a610e60565b895b6001600160a01b03168152612710602082015260400188610e815786610e8c565b610e8c60c888612592565b60020b81526020018815610ea05786610eab565b610eab8760c86125b7565b60020b815260200188610ec857610ec360028661257e565b610ecb565b60005b81526020018815610ee657610ee160028661257e565b610ee9565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610f2b91906125dc565b6080604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e91906126a0565b5050506010556040805161016081019091526001600160a01b038516906388316456908088610f9d578a610f9f565b895b6001600160a01b031681526020018815610fb9578a610fbb565b895b6001600160a01b03168152612710602082015260400188610fdc5786610fe7565b610fe760c888612592565b60020b81526020018815610ffb5786611006565b6110068760c86125b7565b60020b8152602001886110235761101e60028661257e565b611026565b60005b815260200188156110415761103c60028661257e565b611044565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161108691906125dc565b6080604051808303816000875af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906126a0565b5050506011556040805161016081019091526001600160a01b0385169063883164569080886110f8578a6110fa565b895b6001600160a01b031681526020018815611114578a611116565b895b6001600160a01b031681526127106020820152604001886111415761113c8760c86125b7565b611143565b855b60020b815260200188156111615761115c60c888612592565b611163565b855b60020b81526020018861119657600261118786676765c793fa10079d601b1b61241c565b611191919061257e565b611199565b60005b815260200188156111ca5760026111bb86676765c793fa10079d601b1b61241c565b6111c5919061257e565b6111cd565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161120f91906125dc565b6080604051808303816000875af115801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906126a0565b5050506012556040805161016081019091526001600160a01b038516906388316456908088611281578a611283565b895b6001600160a01b03168152602001881561129d578a61129f565b895b6001600160a01b031681526127106020820152604001886112ca576112c58760c86125b7565b6112cc565b855b60020b815260200188156112ea576112e560c888612592565b6112ec565b855b60020b81526020018861131f57600261131086676765c793fa10079d601b1b61241c565b61131a919061257e565b611322565b60005b8152602001881561135357600261134486676765c793fa10079d601b1b61241c565b61134e919061257e565b611356565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161139891906125dc565b6080604051808303816000875af11580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113db91906126a0565b50505060135550505050505050565b336000908152600a602052604090205460ff161561144a5760405162461bcd60e51b815260206004820152601a60248201527f416c72656164792070617274206f6620576869737065726e65740000000000006044820152606401610ae4565b336000818152600a6020526040808220805460ff19166001179055517fda6ad386e4ff397db8273f620722e5e778e06b5ffc0401f2517d86beeb163a839190a2565b600061055533848461198b565b33600090815260096020526040902054806114f65760405162461bcd60e51b815260206004820152601c60248201527f4e6f204f7261636c65207265776172647320746f20636f6c6c656374000000006044820152606401610ae4565b3360008181526009602052604081205561060f9030908361198b565b3360009081526005602052604081205490036115665760405162461bcd60e51b81526020600482015260136024820152724e6f207472616e7366657220686973746f727960681b6044820152606401610ae4565b33600090815260056020526040812054611580904261241c565b9050600062015180600654836115969190612551565b6115a0919061257e565b306000908152600f60205260409020549091508111156116025760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e742072657761726420706f6f6c00000000000000006044820152606401610ae4565b61160d30338361198b565b505033600090815260056020526040902042905550565b6000806116313385611787565b9050600061163f3385611787565b6040805160208101859052908101829052909150606001604051602081830303815290604052805190602001209250505092915050565b6000546001600160a01b031633146116ca5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b6044820152606401610ae4565b6001600160a01b03811661172c5760405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b6064820152608401610ae4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0383166117eb5760405162461bcd60e51b815260206004820152602360248201527f4d7973746963204f7261636c65733a2051756572792066726f6d2074686520766044820152621bda5960ea1b6064820152608401610ae4565b6040516bffffffffffffffffffffffff19606085811b821660208401524260348401524460548401526074830185905230901b16609482015260a80160405160208183030381529060405280519060200120905092915050565b60006118513384611787565b60008181526008602052604090205490915060ff16156118b35760405162461bcd60e51b815260206004820152601e60248201527f4f7261636c65206f757470757420616c726561647920726576696577656400006044820152606401610ae4565b600081815260076020908152604080832033845290915290206118d68382612738565b5080336001600160a01b03167f06f1183c74904f7e16f043892503daeac0f10edc05a57f994a3e17e243004fc5846040516119119190612158565b60405180910390a3505050565b6001600160a01b038381166000818152600f602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b6001600160a01b0383166000908152600f60205260408120548211156119b057600080fd5b6001600160a01b038085166000818152600f6020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119799086815260200190565b6000806000611a5286611a255784611a27565b855b8715611a335785611a35565b865b611a4390600160c01b61257e565b611a4d9190612551565b611a8a565b9050611a5d81611acd565b9150611a6a60c8836127f8565b611a749083612592565b9150611a7f82611de6565b925050935093915050565b80600260018201045b81811015611ac757809150600281828581611ab057611ab0612568565b040181611abf57611abf612568565b049050611a93565b50919050565b60006401000276a36001600160a01b03831610801590611b09575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611b395760405162461bcd60e51b81526020600482015260016024820152602960f91b6044820152606401610ae4565b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611bcd57607f810383901c9150611bd7565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611dd757886001600160a01b0316611dbc82611de6565b6001600160a01b03161115611dd15781611dd9565b80611dd9565b815b9998505050505050505050565b60008060008360020b12611dfd578260020b611e05565b8260020b6000035b9050620d89e8811115611e3e5760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610ae4565b600081600116600003611e5557600160801b611e67565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611e9b576ffff97272373d413259a46990580e213a0260801c5b6004821615611eba576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611ed9576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611ef8576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611f17576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611f36576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611f55576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611f75576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611f95576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611fb5576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611fd5576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611ff5576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612015576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612035576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612055576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612076576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612096576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156120b5576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156120d2576b048a170391f7dc42444e8fa20260801c5b60008460020b13156120f35780600019816120ef576120ef612568565b0490505b64010000000081061561210757600161210a565b60005b60ff16602082901c0192505050919050565b6001600160a01b038116811461213157600080fd5b50565b60006020828403121561214657600080fd5b81356121518161211c565b9392505050565b600060208083528351808285015260005b8181101561218557858101830151858201604001528201612169565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156121b957600080fd5b82356121c48161211c565b946020939093013593505050565b6000806000606084860312156121e757600080fd5b83356121f28161211c565b925060208401356122028161211c565b929592945050506040919091013590565b6000806000806060858703121561222957600080fd5b84356122348161211c565b935060208501359250604085013567ffffffffffffffff8082111561225857600080fd5b818701915087601f83011261226c57600080fd5b81358181111561227b57600080fd5b88602082850101111561228d57600080fd5b95989497505060200194505050565b600080604083850312156122af57600080fd5b8235915060208301356122c18161211c565b809150509250929050565b6000602082840312156122de57600080fd5b5035919050565b600080604083850312156122f857600080fd5b82356123038161211c565b915060208301356122c18161211c565b6000806040838503121561232657600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561235e57600080fd5b82359150602083013567ffffffffffffffff8082111561237d57600080fd5b818501915085601f83011261239157600080fd5b8135818111156123a3576123a3612335565b604051601f8201601f19908116603f011681019083821181831017156123cb576123cb612335565b816040528281528860208487010111156123e457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561055857610558612406565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006020828403121561248957600080fd5b8151801515811461215157600080fd5b600181811c908216806124ad57607f821691505b602082108103611ac757634e487b7160e01b600052602260045260246000fd5b6000602082840312156124df57600080fd5b81516121518161211c565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b6000806040838503121561254057600080fd5b505080516020909101519092909150565b808202811582820484141761055857610558612406565b634e487b7160e01b600052601260045260246000fd5b60008261258d5761258d612568565b500490565b600282810b9082900b03627fffff198112627fffff8213171561055857610558612406565b600281810b9083900b01627fffff8113627fffff198212171561055857610558612406565b81516001600160a01b031681526101608101602083015161260860208401826001600160a01b03169052565b50604083015161261f604084018262ffffff169052565b506060830151612634606084018260020b9052565b506080830151612649608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161268f828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156126b657600080fd5b8451935060208501516001600160801b03811681146126d457600080fd5b6040860151606090960151949790965092505050565b601f821115610a7e57600081815260208120601f850160051c810160208610156127115750805b601f850160051c820191505b818110156127305782815560010161271d565b505050505050565b815167ffffffffffffffff81111561275257612752612335565b612766816127608454612499565b846126ea565b602080601f83116001811461279b57600084156127835750858301515b600019600386901b1c1916600185901b178555612730565b600085815260208120601f198616915b828110156127ca578886015182559484019460019091019084016127ab565b50858210156127e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008260020b8061280b5761280b612568565b808360020b079150509291505056fea2646970667358221220c9b8e8443b00aa86f33cc3b2f54781d8e3e50055d7e096f0fb2fe5451483865764736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102115760003560e01c80637783528111610125578063bb98b080116100ad578063edfb59cb1161007c578063edfb59cb146104d0578063f2fde38b146104e3578063f957cdb6146104f6578063fac8c87414610509578063fd7ea3cf1461051c57600080fd5b8063bb98b0801461047a578063c1b6758e14610482578063dcdf16a21461048b578063dd62ed3e1461049357600080fd5b80639168ae72116100f45780639168ae72146103e757806395d89b41146102495780639aaa752514610431578063a9059cbb1461043b578063ba5b79821461044e57600080fd5b806377835281146103ab5780637b0a47ee146103ce5780638129fc1c146103d757806388bd1e68146103df57600080fd5b8063372500ab116101a857806353f8b3031161017757806353f8b303146103615780635bcf7fec146103695780635e93ec5f1461037157806370a082311461037a578063715018a6146103a357600080fd5b8063372500ab1461032857806337de060e146103325780634000aea01461033b5780634b1df4ad1461034e57600080fd5b806318160ddd116101e457806318160ddd146102b757806318a5bbdc146102bf57806323b872dd146102fb578063313ce5671461030e57600080fd5b80630660f1e81461021657806306fdde0314610249578063095ea7b31461027957806316f0115b1461029c575b600080fd5b610236610224366004612134565b60096020526000908152604090205481565b6040519081526020015b60405180910390f35b61026c604051806040016040528060048152602001634d55544560e01b81525081565b6040516102409190612158565b61028c6102873660046121a6565b610548565b6040519015158152602001610240565b600d546040516001600160a01b039091168152602001610240565b600e54610236565b6102e66102cd366004612134565b6001602081905260009182526040909120805491015482565b60408051928352602083019190915201610240565b61028c6103093660046121d2565b61055e565b610316601281565b60405160ff9091168152602001610240565b6103306105eb565b005b61023660065481565b61028c610349366004612213565b610613565b61026c61035c36600461229c565b6106b9565b61033061075e565b610330610a83565b610236600b5481565b610236610388366004612134565b6001600160a01b03166000908152600f602052604090205490565b610330610b70565b61028c6103b93660046122cc565b60086020526000908152604090205460ff1681565b61023660045481565b610330610c0e565b6103306113ea565b6104166103f5366004612134565b60036020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610240565b6102366206978081565b61028c6104493660046121a6565b61148c565b601054601154601254601354604080519485526020850193909352918301526060820152608001610240565b610330611499565b61023660025481565b610330611512565b6102366104a13660046122e5565b6001600160a01b039182166000908152600f602090815260408083209390941682526001909201909152205490565b6102366104de366004612313565b611624565b6103306104f1366004612134565b611676565b6102366105043660046121a6565b611787565b61033061051736600461234b565b611845565b61028c61052a366004612134565b6001600160a01b03166000908152600a602052604090205460ff1690565b600061055533848461191e565b90505b92915050565b6001600160a01b0383166000908152600f602090815260408083203384526001019091528120548281101561059257600080fd5b60001981146105d7576001600160a01b0385166000908152600f60209081526040808320338452600101909152812080548592906105d190849061241c565b90915550505b6105e285858561198b565b95945050505050565b33600081815260036020526040812060020180549190559061060f9030908361198b565b5050565b600061062033868661198b565b50843b63ffffffff8116156106ad57604051636be32e7360e01b81526001600160a01b03871690636be32e739061066190339089908990899060040161242f565b6020604051808303816000875af1158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190612477565b6106ad57600080fd5b50600195945050505050565b6007602090815260009283526040808420909152908252902080546106dd90612499565b80601f016020809104026020016040519081016040528092919081815260200182805461070990612499565b80156107565780601f1061072b57610100808354040283529160200191610756565b820191906000526020600020905b81548152906001019060200180831161073957829003601f168201915b505050505081565b60007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906124cd565b604080516080810182526010548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81529192506001600160a01b0383169163fc6f78659161083e916004016124ea565b60408051808303816000875af115801561085c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610880919061252d565b5050604080516080810182526011548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f7865916108e891906004016124ea565b60408051808303816000875af1158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a919061252d565b5050604080516080810182526012548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161099291906004016124ea565b60408051808303816000875af11580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d4919061252d565b5050604080516080810182526013548152739653d6113ef0dbcad6f1071bb638a0fbabf9788060208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f786591610a3c91906004016124ea565b60408051808303816000875af1158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061252d565b505050565b336000908152600160205260409020546206978090610aa2904261241c565b11610aed5760405162461bcd60e51b815260206004820152601660248201527514da5b195b98d9481c195c9a5bd9081b9bdd081b595d60521b60448201526064015b60405180910390fd5b600254306000908152600f60205260409020541015610b4e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207265776172642062616c616e636500000000006044820152606401610ae4565b610b5b303360025461198b565b50336000908152600160205260409020429055565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b6044820152606401610ae4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600e5415610c1b57600080fd5b600030905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9891906124cd565b90506000826001600160a01b0316826001600160a01b031610905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2b91906124cd565b676765c793fa10079d601b1b600e8190556001600160a01b0386166000818152600f602052604080822084905551939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91610d8e91815260200190565b60405180910390a3610dac8482676765c793fa10079d601b1b61191e565b506000610dcd83676765c793fa10079d601b1b67d02ab486cedc0000611a12565b9150506000610df284676765c793fa10079d601b1b69d3c21bcecceda1000000611a12565b9150600090506064610e10676765c793fa10079d601b1b600a612551565b610e1a919061257e565b9050836001600160a01b0316638831645660405180610160016040528088610e42578a610e44565b895b6001600160a01b031681526020018815610e5e578a610e60565b895b6001600160a01b03168152612710602082015260400188610e815786610e8c565b610e8c60c888612592565b60020b81526020018815610ea05786610eab565b610eab8760c86125b7565b60020b815260200188610ec857610ec360028661257e565b610ecb565b60005b81526020018815610ee657610ee160028661257e565b610ee9565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610f2b91906125dc565b6080604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e91906126a0565b5050506010556040805161016081019091526001600160a01b038516906388316456908088610f9d578a610f9f565b895b6001600160a01b031681526020018815610fb9578a610fbb565b895b6001600160a01b03168152612710602082015260400188610fdc5786610fe7565b610fe760c888612592565b60020b81526020018815610ffb5786611006565b6110068760c86125b7565b60020b8152602001886110235761101e60028661257e565b611026565b60005b815260200188156110415761103c60028661257e565b611044565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161108691906125dc565b6080604051808303816000875af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906126a0565b5050506011556040805161016081019091526001600160a01b0385169063883164569080886110f8578a6110fa565b895b6001600160a01b031681526020018815611114578a611116565b895b6001600160a01b031681526127106020820152604001886111415761113c8760c86125b7565b611143565b855b60020b815260200188156111615761115c60c888612592565b611163565b855b60020b81526020018861119657600261118786676765c793fa10079d601b1b61241c565b611191919061257e565b611199565b60005b815260200188156111ca5760026111bb86676765c793fa10079d601b1b61241c565b6111c5919061257e565b6111cd565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161120f91906125dc565b6080604051808303816000875af115801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906126a0565b5050506012556040805161016081019091526001600160a01b038516906388316456908088611281578a611283565b895b6001600160a01b03168152602001881561129d578a61129f565b895b6001600160a01b031681526127106020820152604001886112ca576112c58760c86125b7565b6112cc565b855b60020b815260200188156112ea576112e560c888612592565b6112ec565b855b60020b81526020018861131f57600261131086676765c793fa10079d601b1b61241c565b61131a919061257e565b611322565b60005b8152602001881561135357600261134486676765c793fa10079d601b1b61241c565b61134e919061257e565b611356565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161139891906125dc565b6080604051808303816000875af11580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113db91906126a0565b50505060135550505050505050565b336000908152600a602052604090205460ff161561144a5760405162461bcd60e51b815260206004820152601a60248201527f416c72656164792070617274206f6620576869737065726e65740000000000006044820152606401610ae4565b336000818152600a6020526040808220805460ff19166001179055517fda6ad386e4ff397db8273f620722e5e778e06b5ffc0401f2517d86beeb163a839190a2565b600061055533848461198b565b33600090815260096020526040902054806114f65760405162461bcd60e51b815260206004820152601c60248201527f4e6f204f7261636c65207265776172647320746f20636f6c6c656374000000006044820152606401610ae4565b3360008181526009602052604081205561060f9030908361198b565b3360009081526005602052604081205490036115665760405162461bcd60e51b81526020600482015260136024820152724e6f207472616e7366657220686973746f727960681b6044820152606401610ae4565b33600090815260056020526040812054611580904261241c565b9050600062015180600654836115969190612551565b6115a0919061257e565b306000908152600f60205260409020549091508111156116025760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e742072657761726420706f6f6c00000000000000006044820152606401610ae4565b61160d30338361198b565b505033600090815260056020526040902042905550565b6000806116313385611787565b9050600061163f3385611787565b6040805160208101859052908101829052909150606001604051602081830303815290604052805190602001209250505092915050565b6000546001600160a01b031633146116ca5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b6044820152606401610ae4565b6001600160a01b03811661172c5760405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b6064820152608401610ae4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0383166117eb5760405162461bcd60e51b815260206004820152602360248201527f4d7973746963204f7261636c65733a2051756572792066726f6d2074686520766044820152621bda5960ea1b6064820152608401610ae4565b6040516bffffffffffffffffffffffff19606085811b821660208401524260348401524460548401526074830185905230901b16609482015260a80160405160208183030381529060405280519060200120905092915050565b60006118513384611787565b60008181526008602052604090205490915060ff16156118b35760405162461bcd60e51b815260206004820152601e60248201527f4f7261636c65206f757470757420616c726561647920726576696577656400006044820152606401610ae4565b600081815260076020908152604080832033845290915290206118d68382612738565b5080336001600160a01b03167f06f1183c74904f7e16f043892503daeac0f10edc05a57f994a3e17e243004fc5846040516119119190612158565b60405180910390a3505050565b6001600160a01b038381166000818152600f602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b6001600160a01b0383166000908152600f60205260408120548211156119b057600080fd5b6001600160a01b038085166000818152600f6020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119799086815260200190565b6000806000611a5286611a255784611a27565b855b8715611a335785611a35565b865b611a4390600160c01b61257e565b611a4d9190612551565b611a8a565b9050611a5d81611acd565b9150611a6a60c8836127f8565b611a749083612592565b9150611a7f82611de6565b925050935093915050565b80600260018201045b81811015611ac757809150600281828581611ab057611ab0612568565b040181611abf57611abf612568565b049050611a93565b50919050565b60006401000276a36001600160a01b03831610801590611b09575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611b395760405162461bcd60e51b81526020600482015260016024820152602960f91b6044820152606401610ae4565b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611bcd57607f810383901c9150611bd7565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611dd757886001600160a01b0316611dbc82611de6565b6001600160a01b03161115611dd15781611dd9565b80611dd9565b815b9998505050505050505050565b60008060008360020b12611dfd578260020b611e05565b8260020b6000035b9050620d89e8811115611e3e5760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610ae4565b600081600116600003611e5557600160801b611e67565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611e9b576ffff97272373d413259a46990580e213a0260801c5b6004821615611eba576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611ed9576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611ef8576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611f17576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611f36576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611f55576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611f75576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611f95576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611fb5576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611fd5576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611ff5576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612015576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612035576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612055576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612076576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612096576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156120b5576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156120d2576b048a170391f7dc42444e8fa20260801c5b60008460020b13156120f35780600019816120ef576120ef612568565b0490505b64010000000081061561210757600161210a565b60005b60ff16602082901c0192505050919050565b6001600160a01b038116811461213157600080fd5b50565b60006020828403121561214657600080fd5b81356121518161211c565b9392505050565b600060208083528351808285015260005b8181101561218557858101830151858201604001528201612169565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156121b957600080fd5b82356121c48161211c565b946020939093013593505050565b6000806000606084860312156121e757600080fd5b83356121f28161211c565b925060208401356122028161211c565b929592945050506040919091013590565b6000806000806060858703121561222957600080fd5b84356122348161211c565b935060208501359250604085013567ffffffffffffffff8082111561225857600080fd5b818701915087601f83011261226c57600080fd5b81358181111561227b57600080fd5b88602082850101111561228d57600080fd5b95989497505060200194505050565b600080604083850312156122af57600080fd5b8235915060208301356122c18161211c565b809150509250929050565b6000602082840312156122de57600080fd5b5035919050565b600080604083850312156122f857600080fd5b82356123038161211c565b915060208301356122c18161211c565b6000806040838503121561232657600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561235e57600080fd5b82359150602083013567ffffffffffffffff8082111561237d57600080fd5b818501915085601f83011261239157600080fd5b8135818111156123a3576123a3612335565b604051601f8201601f19908116603f011681019083821181831017156123cb576123cb612335565b816040528281528860208487010111156123e457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561055857610558612406565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006020828403121561248957600080fd5b8151801515811461215157600080fd5b600181811c908216806124ad57607f821691505b602082108103611ac757634e487b7160e01b600052602260045260246000fd5b6000602082840312156124df57600080fd5b81516121518161211c565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b6000806040838503121561254057600080fd5b505080516020909101519092909150565b808202811582820484141761055857610558612406565b634e487b7160e01b600052601260045260246000fd5b60008261258d5761258d612568565b500490565b600282810b9082900b03627fffff198112627fffff8213171561055857610558612406565b600281810b9083900b01627fffff8113627fffff198212171561055857610558612406565b81516001600160a01b031681526101608101602083015161260860208401826001600160a01b03169052565b50604083015161261f604084018262ffffff169052565b506060830151612634606084018260020b9052565b506080830151612649608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161268f828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156126b657600080fd5b8451935060208501516001600160801b03811681146126d457600080fd5b6040860151606090960151949790965092505050565b601f821115610a7e57600081815260208120601f850160051c810160208610156127115750805b601f850160051c820191505b818110156127305782815560010161271d565b505050505050565b815167ffffffffffffffff81111561275257612752612335565b612766816127608454612499565b846126ea565b602080601f83116001811461279b57600084156127835750858301515b600019600386901b1c1916600185901b178555612730565b600085815260208120601f198616915b828110156127ca578886015182559484019460019091019084016127ab565b50858210156127e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008260020b8061280b5761280b612568565b808360020b079150509291505056fea2646970667358221220c9b8e8443b00aa86f33cc3b2f54781d8e3e50055d7e096f0fb2fe5451483865764736f6c63430008130033

Deployed Bytecode Sourcemap

1358:18635:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3350:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;548:25:1;;;536:2;521:18;3350:46:0;;;;;;;;2348:36;;;;;;;;;;;;;;;-1:-1:-1;;;2348:36:0;;;;;;;;;;;;:::i;11793:132::-;;;;;;:::i;:::-;;:::i;:::-;;;1622:14:1;;1615:22;1597:41;;1585:2;1570:18;11793:132:0;1457:187:1;12587:72:0;12645:9;;12587:72;;-1:-1:-1;;;;;12645:9:0;;;1904:51:1;;1892:2;1877:18;12587:72:0;1758:203:1;12664:86:0;12729:16;;12664:86;;2579:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2140:25:1;;;2196:2;2181:18;;2174:34;;;;2113:18;2579:41:0;1966:248:1;11930:321:0;;;;;;:::i;:::-;;:::i;2431:35::-;;2464:2;2431:35;;;;;2852:4:1;2840:17;;;2822:36;;2810:2;2795:18;2431:35:0;2680:184:1;9031:211:0;;;:::i;:::-;;3167:38;;;;;;12256:323;;;;;;:::i;:::-;;:::i;3216:67::-;;;;;;:::i;:::-;;:::i;7710:940::-;;;:::i;9540:423::-;;;:::i;3532:36::-;;;;;;12755:106;;;;;;:::i;:::-;-1:-1:-1;;;;;12831:17:0;12810:7;12831:17;;;:10;:17;;;;;:25;;12755:106;4872:140;;;:::i;3290:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2939:32;;;;;;5020:2685;;;:::i;8667:226::-;;;:::i;2891:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4375:25:1;;;4431:2;4416:18;;4409:34;;;;4459:18;;;4452:34;4363:2;4348:18;2891:41:0;4173:319:1;2665:55:0;;2714:6;2665:55;;11664:124;;;;;;:::i;:::-;;:::i;13007:217::-;13128:21;;13151;;13174;;13197;;13007:217;;;4728:25:1;;;4784:2;4769:18;;4762:34;;;;4812:18;;;4805:34;4870:2;4855:18;;4848:34;4715:3;4700:19;13007:217:0;4497:391:1;9253:275:0;;;:::i;2627:31::-;;;;;;9979:549;;;:::i;12866:136::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12960:17:0;;;12939:7;12960:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;12866:136;10962:317;;;;;;:::i;:::-;;:::i;4630:234::-;;;;;;:::i;:::-;;:::i;10534:420::-;;;;;;:::i;:::-;;:::i;11289:363::-;;;;;;:::i;:::-;;:::i;8902:119::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8989:24:0;8965:4;8989:24;;;:18;:24;;;;;;;;;8902:119;11793:132;11863:4;11881:39;11890:10;11902:8;11912:7;11881:8;:39::i;:::-;11874:46;;11793:132;;;;;:::o;11930:321::-;-1:-1:-1;;;;;12960:17:0;;12015:4;12960:17;;;:10;:17;;;;;;;;12064:10;12960:37;;:27;;:37;;;;;;12102:7;12088:10;:21;;12080:30;;;;;;-1:-1:-1;;12119:10:0;:22;12115:90;;-1:-1:-1;;;;;12149:17:0;;;;;;:10;:17;;;;;;;;12177:10;12149:39;;:27;;:39;;;;;:50;;12192:7;;12149:17;:50;;12192:7;;12149:50;:::i;:::-;;;;-1:-1:-1;;12115:90:0;12216:30;12226:5;12233:3;12238:7;12216:9;:30::i;:::-;12209:37;11930:321;-1:-1:-1;;;;;11930:321:0:o;9031:211::-;9100:10;9075:14;9092:19;;;:7;:19;;;;;:36;;;;9139:40;;;9092:36;9190:44;;9208:4;;9092:36;9190:9;:44::i;:::-;;9064:178;9031:211::o;12256:323::-;12351:4;12362:35;12372:10;12384:3;12389:7;12362:9;:35::i;:::-;-1:-1:-1;12443:16:0;;12472:9;;;;12468:91;;12497:55;;-1:-1:-1;;;12497:55:0;;-1:-1:-1;;;;;12497:27:0;;;;;:55;;12525:10;;12537:7;;12546:5;;;;12497:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12489:64;;;;;;-1:-1:-1;12570:4:0;;12256:323;-1:-1:-1;;;;;12256:323:0:o;3216:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7710:940::-;7754:19;1882:42;-1:-1:-1;;;;;7792:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7834:189;;;;;;;;7879:21;;7834:189;;7917:42;7834:189;;;;-1:-1:-1;;;;;7834:189:0;;;;;;;;;;7822:202;;-1:-1:-1;;;7822:202:0;;7754:63;;-1:-1:-1;;;;;;7822:11:0;;;;;:202;;7879:21;7822:202;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8041:189:0;;;;;;;;8086:21;;8041:189;;8124:42;8041:189;;;;-1:-1:-1;;;;;8041:189:0;;;;;;;;;;8029:202;;-1:-1:-1;;;8029:202:0;;-1:-1:-1;;;;;8029:11:0;;;;;:202;;8041:189;8029:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8248:189:0;;;;;;;;8293:21;;8248:189;;8331:42;8248:189;;;;-1:-1:-1;;;;;8248:189:0;;;;;;;;;;8236:202;;-1:-1:-1;;;8236:202:0;;-1:-1:-1;;;;;8236:11:0;;;;;:202;;8248:189;8236:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8455:189:0;;;;;;;;8500:21;;8455:189;;8538:42;8455:189;;;;-1:-1:-1;;;;;8455:189:0;;;;;;;;;;8443:202;;-1:-1:-1;;;8443:202:0;;-1:-1:-1;;;;;8443:11:0;;;;;:202;;8455:189;8443:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7749:901;7710:940::o;9540:423::-;9624:10;9616:19;;;;:7;:19;;;;;:36;2714:6;;9598:54;;:15;:54;:::i;:::-;:79;9590:114;;;;-1:-1:-1;;;9590:114:0;;9627:2:1;9590:114:0;;;9609:21:1;9666:2;9646:18;;;9639:30;-1:-1:-1;;;9685:18:1;;;9678:52;9747:18;;9590:114:0;;;;;;;;;9751:16;;9741:4;12810:7;12831:17;;;:10;:17;;;;;:25;9723:44;;9715:84;;;;-1:-1:-1;;;9715:84:0;;9978:2:1;9715:84:0;;;9960:21:1;10017:2;9997:18;;;9990:30;10056:29;10036:18;;;10029:57;10103:18;;9715:84:0;9776:351:1;9715:84:0;9812:54;9830:4;9837:10;9849:16;;9812:9;:54::i;:::-;-1:-1:-1;9885:10:0;9877:19;;;;:7;:19;;;;;9916:15;9877:54;;9540:423::o;4872:140::-;1563:6;;-1:-1:-1;;;;;1563:6:0;1549:10;:20;1541:56;;;;-1:-1:-1;;;1541:56:0;;10334:2:1;1541:56:0;;;10316:21:1;10373:2;10353:18;;;10346:30;-1:-1:-1;;;10392:18:1;;;10385:53;10455:18;;1541:56:0;10132:347:1;1541:56:0;4971:1:::1;4955:6:::0;;4934:40:::1;::::0;-1:-1:-1;;;;;4955:6:0;;::::1;::::0;4934:40:::1;::::0;4971:1;;4934:40:::1;5002:1;4985:19:::0;;-1:-1:-1;;;;;;4985:19:0::1;::::0;;4872:140::o;5020:2685::-;12729:16;;5064:18;5056:27;;;;;;5088:13;5112:4;5088:29;;5122:13;1882:42;-1:-1:-1;;;;;5138:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5122:30;;5157:11;5179:5;-1:-1:-1;;;;;5171:13:0;:5;-1:-1:-1;;;;;5171:13:0;;5157:27;;5189:19;1882:42;-1:-1:-1;;;;;5227:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;5257:16:0;:33;;;-1:-1:-1;;;;;5295:17:0;;;;;;:10;:17;;;;;;:42;;;5347:45;5189:63;;-1:-1:-1;5295:17:0;;;;5347:45;;;;548:25:1;;536:2;521:18;;402:177;5347:45:0;;;;;;;;5397;5406:5;5421:3;-1:-1:-1;;;5397:8:0;:45::i;:::-;;5451:14;5469:66;5496:6;-1:-1:-1;;;1971:8:0;5469:26;:66::i;:::-;5447:88;;;5544:14;5562:64;5589:6;-1:-1:-1;;;2085:9:0;5562:26;:64::i;:::-;5540:86;-1:-1:-1;5631:27:0;;-1:-1:-1;5701:3:0;5661:37;-1:-1:-1;;;2035:2:0;5661:37;:::i;:::-;:43;;;;:::i;:::-;5631:73;;5741:3;-1:-1:-1;;;;;5741:8:0;;5750:433;;;;;;;;5791:6;:22;;5808:5;5791:22;;;5800:5;5791:22;-1:-1:-1;;;;;5750:433:0;;;;;5828:6;5827:7;:23;;5845:5;5827:23;;;5837:5;5827:23;-1:-1:-1;;;;;5750:433:0;;;5861:5;5750:433;;;;;;5883:6;:34;;5909:8;5883:34;;;5892:14;5903:3;5892:8;:14;:::i;:::-;5750:433;;;;;;5935:6;5934:7;:35;;5961:8;5934:35;;;5944:14;:8;5955:3;5944:14;:::i;:::-;5750:433;;;;;;5991:6;:36;;6004:23;6026:1;6004:19;:23;:::i;:::-;5991:36;;;6000:1;5991:36;5750:433;;;;6050:6;6049:7;:37;;6063:23;6085:1;6063:19;:23;:::i;:::-;6049:37;;;6059:1;6049:37;5750:433;;;;6104:1;5750:433;;;;6123:1;5750:433;;;;6141:5;-1:-1:-1;;;;;5750:433:0;;;;;6162:15;5750:433;;;5741:443;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;5710:21:0;5709:475;6230:433;;;;;;;;;-1:-1:-1;;;;;6221:8:0;;;;;6230:433;6271:6;:22;;6288:5;6271:22;;;6280:5;6271:22;-1:-1:-1;;;;;6230:433:0;;;;;6308:6;6307:7;:23;;6325:5;6307:23;;;6317:5;6307:23;-1:-1:-1;;;;;6230:433:0;;;6341:5;6230:433;;;;;;6363:6;:34;;6389:8;6363:34;;;6372:14;6383:3;6372:8;:14;:::i;:::-;6230:433;;;;;;6415:6;6414:7;:35;;6441:8;6414:35;;;6424:14;:8;6435:3;6424:14;:::i;:::-;6230:433;;;;;;6471:6;:36;;6484:23;6506:1;6484:19;:23;:::i;:::-;6471:36;;;6480:1;6471:36;6230:433;;;;6530:6;6529:7;:37;;6543:23;6565:1;6543:19;:23;:::i;:::-;6529:37;;;6539:1;6529:37;6230:433;;;;6584:1;6230:433;;;;6603:1;6230:433;;;;6621:5;-1:-1:-1;;;;;6230:433:0;;;;;6642:15;6230:433;;;6221:443;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6190:21:0;6189:475;6710:471;;;;;;;;;-1:-1:-1;;;;;6701:8:0;;;;;6710:471;6751:6;:22;;6768:5;6751:22;;;6760:5;6751:22;-1:-1:-1;;;;;6710:471:0;;;;;6788:6;6787:7;:23;;6805:5;6787:23;;;6797:5;6787:23;-1:-1:-1;;;;;6710:471:0;;;6821:5;6710:471;;;;;;6843:6;:34;;6863:14;:8;6874:3;6863:14;:::i;:::-;6843:34;;;6852:8;6843:34;6710:471;;;;;;6895:6;6894:7;:35;;6915:14;6926:3;6915:8;:14;:::i;:::-;6894:35;;;6904:8;6894:35;6710:471;;;;;;6951:6;:55;;7005:1;6965:36;6982:19;-1:-1:-1;;;6965:36:0;:::i;:::-;6964:42;;;;:::i;:::-;6951:55;;;6960:1;6951:55;6710:471;;;;7029:6;7028:7;:56;;7083:1;7043:36;7060:19;-1:-1:-1;;;7043:36:0;:::i;:::-;7042:42;;;;:::i;:::-;7028:56;;;7038:1;7028:56;6710:471;;;;7102:1;6710:471;;;;7121:1;6710:471;;;;7139:5;-1:-1:-1;;;;;6710:471:0;;;;;7160:15;6710:471;;;6701:481;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6670:21:0;6669:513;7228:471;;;;;;;;;-1:-1:-1;;;;;7219:8:0;;;;;7228:471;7269:6;:22;;7286:5;7269:22;;;7278:5;7269:22;-1:-1:-1;;;;;7228:471:0;;;;;7306:6;7305:7;:23;;7323:5;7305:23;;;7315:5;7305:23;-1:-1:-1;;;;;7228:471:0;;;7339:5;7228:471;;;;;;7361:6;:34;;7381:14;:8;7392:3;7381:14;:::i;:::-;7361:34;;;7370:8;7361:34;7228:471;;;;;;7413:6;7412:7;:35;;7433:14;7444:3;7433:8;:14;:::i;:::-;7412:35;;;7422:8;7412:35;7228:471;;;;;;7469:6;:55;;7523:1;7483:36;7500:19;-1:-1:-1;;;7483:36:0;:::i;:::-;7482:42;;;;:::i;:::-;7469:55;;;7478:1;7469:55;7228:471;;;;7547:6;7546:7;:56;;7601:1;7561:36;7578:19;-1:-1:-1;;;7561:36:0;:::i;:::-;7560:42;;;;:::i;:::-;7546:56;;;7556:1;7546:56;7228:471;;;;7620:1;7228:471;;;;7639:1;7228:471;;;;7657:5;-1:-1:-1;;;;;7228:471:0;;;;;7678:15;7228:471;;;7219:481;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;7188:21:0;7187:513;-1:-1:-1;;;;;;;5020:2685:0:o;8667:226::-;8747:10;8728:30;;;;:18;:30;;;;;;;;8727:31;8719:70;;;;-1:-1:-1;;;8719:70:0;;13418:2:1;8719:70:0;;;13400:21:1;13457:2;13437:18;;;13430:30;13496:28;13476:18;;;13469:56;13542:18;;8719:70:0;13216:350:1;8719:70:0;8819:10;8800:30;;;;:18;:30;;;;;;:37;;-1:-1:-1;;8800:37:0;8833:4;8800:37;;;8853:32;;;8800:30;8853:32;8667:226::o;11664:124::-;11730:4;11748:35;11758:10;11770:3;11775:7;11748:9;:35::i;9253:275::-;9340:10;9305:20;9328:23;;;:11;:23;;;;;;9370:16;9362:57;;;;-1:-1:-1;;;9362:57:0;;13773:2:1;9362:57:0;;;13755:21:1;13812:2;13792:18;;;13785:30;13851;13831:18;;;13824:58;13899:18;;9362:57:0;13571:352:1;9362:57:0;9444:10;9458:1;9432:23;;;:11;:23;;;;;:27;9470:50;;9488:4;;9507:12;9470:9;:50::i;9979:549::-;10060:10;10038:33;;;;:21;:33;;;;;;:38;;10030:70;;;;-1:-1:-1;;;10030:70:0;;14130:2:1;10030:70:0;;;14112:21:1;14169:2;14149:18;;;14142:30;-1:-1:-1;;;14188:18:1;;;14181:49;14247:18;;10030:70:0;13928:343:1;10030:70:0;10170:10;10111:16;10148:33;;;:21;:33;;;;;;10130:51;;:15;:51;:::i;:::-;10111:70;;10192:20;10245:5;10226:16;;10215:8;:27;;;;:::i;:::-;:35;;;;:::i;:::-;10343:4;12810:7;12831:17;;;:10;:17;;;;;:25;10192:58;;-1:-1:-1;10309:12:0;:40;;10301:77;;;;-1:-1:-1;;;10301:77:0;;14478:2:1;10301:77:0;;;14460:21:1;14517:2;14497:18;;;14490:30;14556:26;14536:18;;;14529:54;14600:18;;10301:77:0;14276:348:1;10301:77:0;10400:50;10418:4;10425:10;10437:12;10400:9;:50::i;:::-;-1:-1:-1;;10491:10:0;10469:33;;;;:21;:33;;;;;10505:15;10469:51;;-1:-1:-1;9979:549:0:o;10962:317::-;11053:7;11069:21;11093:39;11107:10;11119:12;11093:13;:39::i;:::-;11069:63;;11139:21;11163:39;11177:10;11189:12;11163:13;:39::i;:::-;11228:46;;;;;;14786:19:1;;;14821:12;;;14814:28;;;11139:63:0;;-1:-1:-1;14858:12:1;;11228:46:0;;;;;;;;;;;;11218:57;;;;;;11211:64;;;;10962:317;;;;:::o;4630:234::-;1563:6;;-1:-1:-1;;;;;1563:6:0;1549:10;:20;1541:56;;;;-1:-1:-1;;;1541:56:0;;10334:2:1;1541:56:0;;;10316:21:1;10373:2;10353:18;;;10346:30;-1:-1:-1;;;10392:18:1;;;10385:53;10455:18;;1541:56:0;10132:347:1;1541:56:0;-1:-1:-1;;;;;4711:22:0;::::1;4703:71;;;::::0;-1:-1:-1;;;4703:71:0;;15083:2:1;4703:71:0::1;::::0;::::1;15065:21:1::0;15122:2;15102:18;;;15095:30;15161:34;15141:18;;;15134:62;-1:-1:-1;;;15212:18:1;;;15205:34;15256:19;;4703:71:0::1;14881:400:1::0;4703:71:0::1;4811:6;::::0;;4790:38:::1;::::0;-1:-1:-1;;;;;4790:38:0;;::::1;::::0;4811:6;::::1;::::0;4790:38:::1;::::0;::::1;4839:6;:17:::0;;-1:-1:-1;;;;;;4839:17:0::1;-1:-1:-1::0;;;;;4839:17:0;;;::::1;::::0;;;::::1;::::0;;4630:234::o;10534:420::-;10613:7;-1:-1:-1;;;;;10641:18:0;;10633:66;;;;-1:-1:-1;;;10633:66:0;;15488:2:1;10633:66:0;;;15470:21:1;15527:2;15507:18;;;15500:30;15566:34;15546:18;;;15539:62;-1:-1:-1;;;15617:18:1;;;15610:33;15660:19;;10633:66:0;15286:399:1;10633:66:0;10750:185;;-1:-1:-1;;16001:2:1;15997:15;;;15993:24;;10750:185:0;;;15981:37:1;10808:15:0;16034:12:1;;;16027:28;10842:16:0;16071:12:1;;;16064:28;16108:12;;;16101:28;;;10915:4:0;16164:15:1;;16160:24;16145:13;;;16138:47;16201:13;;10750:185:0;;;;;;;;;;;;10726:220;;;;;;10719:227;;10534:420;;;;:::o;11289:363::-;11374:20;11397:38;11411:10;11423:11;11397:13;:38::i;:::-;11455:35;;;;:21;:35;;;;;;11374:61;;-1:-1:-1;11455:35:0;;11454:36;11446:79;;;;-1:-1:-1;;;11446:79:0;;16427:2:1;11446:79:0;;;16409:21:1;16466:2;16446:18;;;16439:30;16505:32;16485:18;;;16478:60;16555:18;;11446:79:0;16225:354:1;11446:79:0;11538:27;;;;:13;:27;;;;;;;;11566:10;11538:39;;;;;;;:47;11580:5;11538:39;:47;:::i;:::-;;11628:12;11616:10;-1:-1:-1;;;;;11601:47:0;;11642:5;11601:47;;;;;;:::i;:::-;;;;;;;;11363:289;11289:363;;:::o;13231:212::-;-1:-1:-1;;;;;13329:18:0;;;13318:4;13329:18;;;:10;:18;;;;;;;;:38;;;;;;:28;;;;:38;;;;;:48;;;13387:35;548:25:1;;;13318:4:0;;13329:38;:18;13387:35;;521:18:1;13387:35:0;;;;;;;;-1:-1:-1;13434:4:0;13231:212;;;;;:::o;13449:294::-;-1:-1:-1;;;;;12831:17:0;;13531:4;12831:17;;;:10;:17;;;;;:25;13586:7;-1:-1:-1;13566:27:0;13558:36;;;;;;-1:-1:-1;;;;;13600:17:0;;;;;;;:10;:17;;;;;;:36;;;;;;;13642:15;;;;;;;;;;:34;;;;;;13687:29;;;;;;13629:7;548:25:1;;536:2;521:18;;402:177;19637:353:0;19741:13;19756:10;19773:17;19801:72;19847:6;:24;;19866:5;19847:24;;;19856:7;19847:24;19818:6;19817:7;:25;;19837:5;19817:25;;;19827:7;19817:25;19807:36;;-1:-1:-1;;;19807:36:0;:::i;:::-;:65;;;;:::i;:::-;19801:5;:72::i;:::-;19773:101;;19886:30;19906:9;19886:19;:30::i;:::-;19879:37;-1:-1:-1;19936:10:0;19943:3;19879:37;19936:10;:::i;:::-;19928:19;;:4;:19;:::i;:::-;19921:26;;19960:25;19980:4;19960:19;:25::i;:::-;19952:33;;19768:222;19637:353;;;;;;:::o;19401:231::-;19504:6;19514:1;19509;19504:6;;19503:12;19538:85;19552:6;19545:4;:13;19538:85;;;19576:4;19567:13;;19615:1;19607:4;19600;19595:2;:9;;;;;:::i;:::-;;:16;19594:22;;;;;:::i;:::-;;19587:29;;19538:85;;;19472:156;19401:231;;;:::o;15970:3426::-;16044:10;2237;-1:-1:-1;;;;;16085:30:0;;;;;;:63;;-1:-1:-1;2293:49:0;-1:-1:-1;;;;;16119:29:0;;;16085:63;16077:77;;;;-1:-1:-1;;;16077:77:0;;19161:2:1;16077:77:0;;;19143:21:1;19200:1;19180:18;;;19173:29;-1:-1:-1;;;19218:18:1;;;19211:31;19259:18;;16077:77:0;18959:324:1;16077:77:0;-1:-1:-1;;;;;16201:2:0;16176:27;;;;-1:-1:-1;;;;;16289:41:0;;16286:1;16282:49;16365:9;;;16423:18;16417:25;;16414:1;16410:33;16477:9;;;16535:10;16529:17;;16526:1;16522:25;16581:9;;;16639:6;16633:13;;16630:1;16626:21;16681:9;;;16739:4;16733:11;;16730:1;16726:19;;;16779:9;;;16837:3;16831:10;;16828:1;16824:18;16876:9;;;16928:10;;;16925:1;16921:18;;;16973:9;;;;17018:10;;;16456;;16560;;;16660;;;16758;16855;;;16952;17041;17075:3;17068:10;;17064:75;;17100:3;17094;:9;17084:5;:20;;17080:24;;17064:75;;;17135:3;17129;:9;17119:5;:20;;17115:24;;17064:75;17225:9;;;17220:3;17216:19;;;17250:11;;;;17308:9;;;;17358;;17349:19;;;17383:11;;;17441:9;17491;;17482:19;;;17516:11;;;17574:9;17624;;17615:19;;;17649:11;;;17707:9;17757;;17748:19;;;17782:11;;;17840:9;17890;;17881:19;;;17915:11;;;17973:9;18023;;18014:19;;;18048:11;;;18106:9;18156;;18147:19;;;18181:11;;;18239:9;18289;;18280:19;;;18314:11;;;18372:9;18422;;18413:19;;;18447:11;;;18505:9;18555;;18546:19;;;18580:11;;;18638:9;18688;;18679:19;;;18713:11;;;18771:9;18821;;18812:19;;;18846:11;;;;18904:9;;;;18954;;18945:19;;;;;17225:9;-1:-1:-1;;17163:17:0;;17185:2;17162:25;17286:10;;;;;;;17276:21;17419:10;;;;;;;17409:21;;;;17552:10;;;;;;;17542:21;;;;17685:10;;;;;;;17675:21;;;;17818:10;;;;;;;17808:21;;;;17951:10;;;;;;;17941:21;;;;18084:10;;;;;;;18074:21;18217:10;;;;;;;18207:21;18350:10;;;;;;;18340:21;18483:10;;;;;;;18473:21;18616:10;;;;;;;18606:21;18749:10;;;;;;;18739:21;18882:10;;;;;;;18872:21;19015:10;;;;;;;19005:21;19070:24;19062:32;;-1:-1:-1;;19125:53:0;;17177:3;19124:62;;;;19231:39;19215:55;;19214:64;;19294:17;;;;;;;;;:92;;19355:12;-1:-1:-1;;;;;19324:43:0;:27;19344:6;19324:19;:27::i;:::-;-1:-1:-1;;;;;19324:43:0;;;:62;;19379:7;19294:92;;19324:62;19370:6;19294:92;;;19314:7;19294:92;19287:99;15970:3426;-1:-1:-1;;;;;;;;;15970:3426:0:o;13750:2215::-;13814:20;13857:15;13882:1;13875:4;:8;;;:57;;13926:4;13919:12;;13875:57;;;13902:4;13895:12;;13894:13;;13875:57;13857:75;-1:-1:-1;2182:9:0;13946:36;;;13938:50;;;;-1:-1:-1;;;13938:50:0;;19490:2:1;13938:50:0;;;19472:21:1;19529:1;19509:18;;;19502:29;-1:-1:-1;;;19547:18:1;;;19540:31;19588:18;;13938:50:0;19288:324:1;13938:50:0;13996:13;14012:7;14022:3;14012:13;14029:1;14012:18;:93;;-1:-1:-1;;;14012:93:0;;;14033:34;14012:93;13996:109;;;-1:-1:-1;14125:3:0;14115:13;;:18;14111:83;;14152:34;14144:42;14191:3;14143:51;14111:83;14214:3;14204:13;;:18;14200:83;;14241:34;14233:42;14280:3;14232:51;14200:83;14303:3;14293:13;;:18;14289:83;;14330:34;14322:42;14369:3;14321:51;14289:83;14392:4;14382:14;;:19;14378:84;;14420:34;14412:42;14459:3;14411:51;14378:84;14482:4;14472:14;;:19;14468:84;;14510:34;14502:42;14549:3;14501:51;14468:84;14572:4;14562:14;;:19;14558:84;;14600:34;14592:42;14639:3;14591:51;14558:84;14662:4;14652:14;;:19;14648:84;;14690:34;14682:42;14729:3;14681:51;14648:84;14752:5;14742:15;;:20;14738:85;;14781:34;14773:42;14820:3;14772:51;14738:85;14843:5;14833:15;;:20;14829:85;;14872:34;14864:42;14911:3;14863:51;14829:85;14934:5;14924:15;;:20;14920:85;;14963:34;14955:42;15002:3;14954:51;14920:85;15025:5;15015:15;;:20;15011:85;;15054:34;15046:42;15093:3;15045:51;15011:85;15116:6;15106:16;;:21;15102:86;;15146:34;15138:42;15185:3;15137:51;15102:86;15208:6;15198:16;;:21;15194:86;;15238:34;15230:42;15277:3;15229:51;15194:86;15300:6;15290:16;;:21;15286:86;;15330:34;15322:42;15369:3;15321:51;15286:86;15392:6;15382:16;;:21;15378:86;;15422:34;15414:42;15461:3;15413:51;15378:86;15484:7;15474:17;;:22;15470:86;;15515:33;15507:41;15553:3;15506:50;15470:86;15576:7;15566:17;;:22;15562:85;;15607:32;15599:40;15644:3;15598:49;15562:85;15667:7;15657:17;;:22;15653:83;;15698:30;15690:38;15733:3;15689:47;15653:83;15756:7;15746:17;;:22;15742:78;;15787:25;15779:33;15817:3;15778:42;15742:78;15839:1;15832:4;:8;;;15828:47;;;15870:5;-1:-1:-1;;15850:25:0;;;;;:::i;:::-;;15842:33;;15828:47;15932:7;15923:5;:17;:22;:30;;15952:1;15923:30;;;15948:1;15923:30;15906:48;;15916:2;15907:5;:11;;15906:48;15883:72;;13841:2120;;13750:2215;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;584:548::-;696:4;725:2;754;743:9;736:21;786:6;780:13;829:6;824:2;813:9;809:18;802:34;854:1;864:140;878:6;875:1;872:13;864:140;;;973:14;;;969:23;;963:30;939:17;;;958:2;935:26;928:66;893:10;;864:140;;;868:3;1053:1;1048:2;1039:6;1028:9;1024:22;1020:31;1013:42;1123:2;1116;1112:7;1107:2;1099:6;1095:15;1091:29;1080:9;1076:45;1072:54;1064:62;;;;584:548;;;;:::o;1137:315::-;1205:6;1213;1266:2;1254:9;1245:7;1241:23;1237:32;1234:52;;;1282:1;1279;1272:12;1234:52;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;1442:2;1427:18;;;;1414:32;;-1:-1:-1;;;1137:315:1:o;2219:456::-;2296:6;2304;2312;2365:2;2353:9;2344:7;2340:23;2336:32;2333:52;;;2381:1;2378;2371:12;2333:52;2420:9;2407:23;2439:31;2464:5;2439:31;:::i;:::-;2489:5;-1:-1:-1;2546:2:1;2531:18;;2518:32;2559:33;2518:32;2559:33;:::i;:::-;2219:456;;2611:7;;-1:-1:-1;;;2665:2:1;2650:18;;;;2637:32;;2219:456::o;2869:794::-;2957:6;2965;2973;2981;3034:2;3022:9;3013:7;3009:23;3005:32;3002:52;;;3050:1;3047;3040:12;3002:52;3089:9;3076:23;3108:31;3133:5;3108:31;:::i;:::-;3158:5;-1:-1:-1;3210:2:1;3195:18;;3182:32;;-1:-1:-1;3265:2:1;3250:18;;3237:32;3288:18;3318:14;;;3315:34;;;3345:1;3342;3335:12;3315:34;3383:6;3372:9;3368:22;3358:32;;3428:7;3421:4;3417:2;3413:13;3409:27;3399:55;;3450:1;3447;3440:12;3399:55;3490:2;3477:16;3516:2;3508:6;3505:14;3502:34;;;3532:1;3529;3522:12;3502:34;3577:7;3572:2;3563:6;3559:2;3555:15;3551:24;3548:37;3545:57;;;3598:1;3595;3588:12;3545:57;2869:794;;;;-1:-1:-1;;3629:2:1;3621:11;;-1:-1:-1;;;2869:794:1:o;3668:315::-;3736:6;3744;3797:2;3785:9;3776:7;3772:23;3768:32;3765:52;;;3813:1;3810;3803:12;3765:52;3849:9;3836:23;3826:33;;3909:2;3898:9;3894:18;3881:32;3922:31;3947:5;3922:31;:::i;:::-;3972:5;3962:15;;;3668:315;;;;;:::o;3988:180::-;4047:6;4100:2;4088:9;4079:7;4075:23;4071:32;4068:52;;;4116:1;4113;4106:12;4068:52;-1:-1:-1;4139:23:1;;3988:180;-1:-1:-1;3988:180:1:o;4893:388::-;4961:6;4969;5022:2;5010:9;5001:7;4997:23;4993:32;4990:52;;;5038:1;5035;5028:12;4990:52;5077:9;5064:23;5096:31;5121:5;5096:31;:::i;:::-;5146:5;-1:-1:-1;5203:2:1;5188:18;;5175:32;5216:33;5175:32;5216:33;:::i;5286:248::-;5354:6;5362;5415:2;5403:9;5394:7;5390:23;5386:32;5383:52;;;5431:1;5428;5421:12;5383:52;-1:-1:-1;;5454:23:1;;;5524:2;5509:18;;;5496:32;;-1:-1:-1;5286:248:1:o;5721:127::-;5782:10;5777:3;5773:20;5770:1;5763:31;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5853:990;5931:6;5939;5992:2;5980:9;5971:7;5967:23;5963:32;5960:52;;;6008:1;6005;5998:12;5960:52;6044:9;6031:23;6021:33;;6105:2;6094:9;6090:18;6077:32;6128:18;6169:2;6161:6;6158:14;6155:34;;;6185:1;6182;6175:12;6155:34;6223:6;6212:9;6208:22;6198:32;;6268:7;6261:4;6257:2;6253:13;6249:27;6239:55;;6290:1;6287;6280:12;6239:55;6326:2;6313:16;6348:2;6344;6341:10;6338:36;;;6354:18;;:::i;:::-;6429:2;6423:9;6397:2;6483:13;;-1:-1:-1;;6479:22:1;;;6503:2;6475:31;6471:40;6459:53;;;6527:18;;;6547:22;;;6524:46;6521:72;;;6573:18;;:::i;:::-;6613:10;6609:2;6602:22;6648:2;6640:6;6633:18;6688:7;6683:2;6678;6674;6670:11;6666:20;6663:33;6660:53;;;6709:1;6706;6699:12;6660:53;6765:2;6760;6756;6752:11;6747:2;6739:6;6735:15;6722:46;6810:1;6805:2;6800;6792:6;6788:15;6784:24;6777:35;6831:6;6821:16;;;;;;;5853:990;;;;;:::o;6848:127::-;6909:10;6904:3;6900:20;6897:1;6890:31;6940:4;6937:1;6930:15;6964:4;6961:1;6954:15;6980:128;7047:9;;;7068:11;;;7065:37;;;7082:18;;:::i;7113:559::-;-1:-1:-1;;;;;7326:32:1;;7308:51;;7390:2;7375:18;;7368:34;;;7438:2;7433;7418:18;;7411:30;;;7457:18;;7450:34;;;7477:6;7527;7521:3;7506:19;;7493:49;7592:1;7562:22;;;7586:3;7558:32;;;7551:43;;;;7655:2;7634:15;;;-1:-1:-1;;7630:29:1;7615:45;7611:55;;7113:559;-1:-1:-1;;;7113:559:1:o;7677:277::-;7744:6;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7845:9;7839:16;7898:5;7891:13;7884:21;7877:5;7874:32;7864:60;;7920:1;7917;7910:12;7959:380;8038:1;8034:12;;;;8081;;;8102:61;;8156:4;8148:6;8144:17;8134:27;;8102:61;8209:2;8201:6;8198:14;8178:18;8175:38;8172:161;;8255:10;8250:3;8246:20;8243:1;8236:31;8290:4;8287:1;8280:15;8318:4;8315:1;8308:15;8344:251;8414:6;8467:2;8455:9;8446:7;8442:23;8438:32;8435:52;;;8483:1;8480;8473:12;8435:52;8515:9;8509:16;8534:31;8559:5;8534:31;:::i;8600:570::-;8823:13;;8805:32;;8897:4;8885:17;;;8879:24;-1:-1:-1;;;;;8875:50:1;8853:20;;;8846:80;8973:4;8961:17;;;8955:24;-1:-1:-1;;;;;9070:21:1;;;9048:20;;;9041:51;;;;9152:4;9140:17;;;9134:24;9130:33;9108:20;;;9101:63;;;;8792:3;8777:19;;8600:570::o;9175:245::-;9254:6;9262;9315:2;9303:9;9294:7;9290:23;9286:32;9283:52;;;9331:1;9328;9321:12;9283:52;-1:-1:-1;;9354:16:1;;9410:2;9395:18;;;9389:25;9354:16;;9389:25;;-1:-1:-1;9175:245:1:o;10484:168::-;10557:9;;;10588;;10605:15;;;10599:22;;10585:37;10575:71;;10626:18;;:::i;10657:127::-;10718:10;10713:3;10709:20;10706:1;10699:31;10749:4;10746:1;10739:15;10773:4;10770:1;10763:15;10789:120;10829:1;10855;10845:35;;10860:18;;:::i;:::-;-1:-1:-1;10894:9:1;;10789:120::o;10914:193::-;11012:1;11001:16;;;10983;;;;10979:39;-1:-1:-1;;11033:23:1;;11068:8;11058:19;;11030:48;11027:74;;;11081:18;;:::i;11112:189::-;11208:1;11179:16;;;11197;;;;11175:39;11262:7;11229:18;;-1:-1:-1;;11249:22:1;;11226:46;11223:72;;;11275:18;;:::i;11499:1218::-;11717:13;;-1:-1:-1;;;;;1715:31:1;1703:44;;11685:3;11670:19;;11789:4;11781:6;11777:17;11771:24;11804:54;11852:4;11841:9;11837:20;11823:12;-1:-1:-1;;;;;1715:31:1;1703:44;;1649:104;11804:54;;11907:4;11899:6;11895:17;11889:24;11922:55;11971:4;11960:9;11956:20;11940:14;11382:8;11371:20;11359:33;;11306:92;11922:55;;12026:4;12018:6;12014:17;12008:24;12041:54;12089:4;12078:9;12074:20;12058:14;11478:1;11467:20;11455:33;;11403:91;12041:54;;12144:4;12136:6;12132:17;12126:24;12159:54;12207:4;12196:9;12192:20;12176:14;11478:1;11467:20;11455:33;;11403:91;12159:54;;12269:4;12261:6;12257:17;12251:24;12244:4;12233:9;12229:20;12222:54;12332:4;12324:6;12320:17;12314:24;12307:4;12296:9;12292:20;12285:54;12395:4;12387:6;12383:17;12377:24;12370:4;12359:9;12355:20;12348:54;12421:6;12481:2;12473:6;12469:15;12463:22;12458:2;12447:9;12443:18;12436:50;;12505:6;12560:2;12552:6;12548:15;12542:22;12573:54;12623:2;12612:9;12608:18;12592:14;-1:-1:-1;;;;;1715:31:1;1703:44;;1649:104;12573:54;-1:-1:-1;;12646:6:1;12694:15;;;12688:22;12668:18;;;;12661:50;11499:1218;:::o;12722:489::-;12819:6;12827;12835;12843;12896:3;12884:9;12875:7;12871:23;12867:33;12864:53;;;12913:1;12910;12903:12;12864:53;12942:9;12936:16;12926:26;;12995:2;12984:9;12980:18;12974:25;-1:-1:-1;;;;;13032:5:1;13028:46;13021:5;13018:57;13008:85;;13089:1;13086;13079:12;13008:85;13157:2;13142:18;;13136:25;13201:2;13186:18;;;13180:25;12722:489;;13112:5;;-1:-1:-1;12722:489:1;-1:-1:-1;;;12722:489:1:o;16710:545::-;16812:2;16807:3;16804:11;16801:448;;;16848:1;16873:5;16869:2;16862:17;16918:4;16914:2;16904:19;16988:2;16976:10;16972:19;16969:1;16965:27;16959:4;16955:38;17024:4;17012:10;17009:20;17006:47;;;-1:-1:-1;17047:4:1;17006:47;17102:2;17097:3;17093:12;17090:1;17086:20;17080:4;17076:31;17066:41;;17157:82;17175:2;17168:5;17165:13;17157:82;;;17220:17;;;17201:1;17190:13;17157:82;;;17161:3;;;16710:545;;;:::o;17431:1352::-;17557:3;17551:10;17584:18;17576:6;17573:30;17570:56;;;17606:18;;:::i;:::-;17635:97;17725:6;17685:38;17717:4;17711:11;17685:38;:::i;:::-;17679:4;17635:97;:::i;:::-;17787:4;;17851:2;17840:14;;17868:1;17863:663;;;;18570:1;18587:6;18584:89;;;-1:-1:-1;18639:19:1;;;18633:26;18584:89;-1:-1:-1;;17388:1:1;17384:11;;;17380:24;17376:29;17366:40;17412:1;17408:11;;;17363:57;18686:81;;17833:944;;17863:663;16657:1;16650:14;;;16694:4;16681:18;;-1:-1:-1;;17899:20:1;;;18017:236;18031:7;18028:1;18025:14;18017:236;;;18120:19;;;18114:26;18099:42;;18212:27;;;;18180:1;18168:14;;;;18047:19;;18017:236;;;18021:3;18281:6;18272:7;18269:19;18266:201;;;18342:19;;;18336:26;-1:-1:-1;;18425:1:1;18421:14;;;18437:3;18417:24;18413:37;18409:42;18394:58;18379:74;;18266:201;-1:-1:-1;;;;;18513:1:1;18497:14;;;18493:22;18480:36;;-1:-1:-1;17431:1352:1:o;18788:166::-;18818:1;18859;18856;18845:16;18880:3;18870:37;;18887:18;;:::i;:::-;18944:3;18940:1;18937;18926:16;18921:27;18916:32;;;18788:166;;;;:::o

Swarm Source

ipfs://c9b8e8443b00aa86f33cc3b2f54781d8e3e50055d7e096f0fb2fe54514838657
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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