ETH Price: $2,394.42 (-0.82%)

Contract

0xD0c99622c3f0C09b4B08f5f13Dd28BeE13f6E3c7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202174482024-07-02 7:50:2365 days ago1719906623IN
0xD0c99622...E13f6E3c7
0 ETH0.000203094.36915382
Transfer202174422024-07-02 7:49:1165 days ago1719906551IN
0xD0c99622...E13f6E3c7
0 ETH0.000473144.21348284
Transfer202172572024-07-02 7:11:4765 days ago1719904307IN
0xD0c99622...E13f6E3c7
0 ETH0.000321162.7615504
Approve201999252024-06-29 21:07:4768 days ago1719695267IN
0xD0c99622...E13f6E3c7
0 ETH0.000070981.52918341
Wrap201999182024-06-29 21:06:2368 days ago1719695183IN
0xD0c99622...E13f6E3c7
0 ETH0.002458951.42130149
Transfer*201998922024-06-29 21:01:1168 days ago1719694871IN
0xD0c99622...E13f6E3c7
0 ETH0.000042142
Claim186044842023-11-19 7:51:59291 days ago1700380319IN
0xD0c99622...E13f6E3c7
0 ETH0.0033827821.43157608
Approve177408102023-07-21 10:06:11412 days ago1689933971IN
0xD0c99622...E13f6E3c7
0 ETH0.0009178819.90599219
Approve166212602023-02-13 17:14:47570 days ago1676308487IN
0xD0c99622...E13f6E3c7
0 ETH0.0015762833.95477038
Claim166212532023-02-13 17:13:23570 days ago1676308403IN
0xD0c99622...E13f6E3c7
0 ETH0.006125738.80934327
Claim164748162023-01-24 6:15:35590 days ago1674540935IN
0xD0c99622...E13f6E3c7
0 ETH0.0024193315.32764904
Approve164604622023-01-22 6:09:47592 days ago1674367787IN
0xD0c99622...E13f6E3c7
0 ETH0.0006790914.62845637
Wrap164604542023-01-22 6:08:11592 days ago1674367691IN
0xD0c99622...E13f6E3c7
0 ETH0.0039270113.21427307
Claim162854652022-12-28 19:52:35617 days ago1672257155IN
0xD0c99622...E13f6E3c7
0 ETH0.0031836420.16994526
Claim162565812022-12-24 19:07:47621 days ago1671908867IN
0xD0c99622...E13f6E3c7
0 ETH0.0023326514.778494
Approve162562802022-12-24 18:06:47621 days ago1671905207IN
0xD0c99622...E13f6E3c7
0 ETH0.0005659212.17481996
Claim162515902022-12-24 2:24:23622 days ago1671848663IN
0xD0c99622...E13f6E3c7
0 ETH0.0020843313.20528137
Wrap161660272022-12-12 3:44:59634 days ago1670816699IN
0xD0c99622...E13f6E3c7
0 ETH0.00792616.18999485
Approve160970592022-12-02 12:15:23643 days ago1669983323IN
0xD0c99622...E13f6E3c7
0 ETH0.0005619612.08961855
Claim160886332022-12-01 8:02:11644 days ago1669881731IN
0xD0c99622...E13f6E3c7
0 ETH0.0021346413.52401054
Unwrap159627552022-11-13 18:00:11662 days ago1668362411IN
0xD0c99622...E13f6E3c7
0 ETH0.0041458518.18295565
Claim159093272022-11-06 6:56:23669 days ago1667717783IN
0xD0c99622...E13f6E3c7
0 ETH0.0015784110
Claim158195672022-10-24 17:54:11682 days ago1666634051IN
0xD0c99622...E13f6E3c7
0 ETH0.0034824522.0630824
Claim For158171882022-10-24 9:51:59682 days ago1666605119IN
0xD0c99622...E13f6E3c7
0 ETH0.0019687710.94902557
Claim158167992022-10-24 8:33:59682 days ago1666600439IN
0xD0c99622...E13f6E3c7
0 ETH0.0016798112.68298433
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
137817522021-12-11 4:33:02999 days ago1639197182  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xcE113e6e...bfA4F58Ca
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
WrappedToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-11
*/

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

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

interface Bridge {
	function depositFor(address _user, address _rootToken, bytes calldata _depositData) external;
}

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

interface Factory {
	function createPair(address, address) external returns (address);
}

interface Pair {
	function token0() external view returns (address);
	function totalSupply() external view returns (uint256);
	function balanceOf(address) external view returns (uint256);
	function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface WhalesGame {
	function krillAddress() external view returns (address);
	function stakingRewardsAddress() external view returns (address);
	function getIsWhale(uint256) external view returns (bool);
	function balanceOf(address) external view returns (uint256);
	function ownerOf(uint256) external view returns (address);
	function fishermenOf(address) external view returns (uint256);
	function whalesOf(address) external view returns (uint256);
	function isApprovedForAll(address, address) external view returns (bool);
	function transferFrom(address, address, uint256) external;
	function claim() external;
}

interface KRILL {
	function allowance(address, address) external view returns (uint256);
	function balanceOf(address) external view returns (uint256);
	function approve(address, uint256) external returns (bool);
	function transfer(address, uint256) external returns (bool);
	function transferFrom(address, address, uint256) external returns (bool);
	function burn(uint256) external;
}

contract WrappedToken {

	uint256 constant private UINT_MAX = type(uint256).max;
	uint256 constant private FLOAT_SCALAR = 2**64;
	address constant private POLYGON_ERC20_BRIDGE = 0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf;

	uint8 constant public decimals = 18;

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

	struct Info {
		uint256 totalSupply;
		uint256 scaledRewardsPerToken;
		uint256 pendingRewards;
		mapping(address => User) users;
		mapping(address => bool) rewardBurn;
		address burnDestination;
		address owner;
		bool isBridged;
		Bridge bridge;
		Router router;
		Pair pair;
		bool weth0;
		bool isWhale;
		WhalesGame wg;
		KRILL krill;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Claim(address indexed user, uint256 amount);
	event Reward(uint256 amount);


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


	constructor(WhalesGame _wg, bool _isWhale) {
		info.isBridged = false;
		info.bridge = Bridge(0xA0c68C638235ee32657e8f720a23ceC1bFc77C77);
		info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		info.pair = Pair(Factory(info.router.factory()).createPair(info.router.WETH(), address(this)));
		info.weth0 = info.pair.token0() == info.router.WETH();
		info.wg = _wg;
		info.krill = KRILL(_wg.krillAddress());
		info.isWhale = _isWhale;
		info.owner = tx.origin;
		info.rewardBurn[address(this)] = true;
		info.rewardBurn[pairAddress()] = true;
		info.rewardBurn[POLYGON_ERC20_BRIDGE] = true;
		info.krill.approve(POLYGON_ERC20_BRIDGE, UINT_MAX);
		info.burnDestination = address(0x0);
	}

	function setOwner(address _owner) external _onlyOwner {
		info.owner = _owner;
	}

	function setIsBridged(bool _isBridged) external _onlyOwner {
		info.isBridged = _isBridged;
	}

	function setRewardBurn(address _user, bool _shouldBurn) external _onlyOwner {
		uint32 _size;
		assembly {
			_size := extcodesize(_user)
		}
		require(_size > 0);
		info.rewardBurn[_user] = _shouldBurn;
	}

	function setBurnDestination(address _destination) external _onlyOwner {
		info.burnDestination = _destination;
	}


	function disburse(uint256 _amount) external {
		if (_amount > 0) {
			address _this = address(this);
			uint256 _balanceBefore = info.krill.balanceOf(_this);
			info.krill.transferFrom(msg.sender, _this, _amount);
			_disburse(info.krill.balanceOf(_this) - _balanceBefore);
		}
	}

	function wrap(uint256[] calldata _tokenIds) external {
		uint256 _count = _tokenIds.length;
		require(_count > 0);
		_update();
		for (uint256 i = 0; i < _count; i++) {
			require(info.wg.getIsWhale(_tokenIds[i]) == info.isWhale);
			info.wg.transferFrom(msg.sender, address(this), _tokenIds[i]);
		}
		uint256 _amount = _count * 1e18;
		info.totalSupply += _amount;
		info.users[msg.sender].balance += _amount;
		info.users[msg.sender].scaledPayout += int256(_amount * info.scaledRewardsPerToken);
		emit Transfer(address(0x0), msg.sender, _amount);
	}

	function unwrap(uint256[] calldata _tokenIds) external returns (uint256 totalUnwrapped) {
		uint256 _count = _tokenIds.length;
		require(balanceOf(msg.sender) >= _count * 1e18);
		_update();
		totalUnwrapped = 0;
		for (uint256 i = 0; i < _count; i++) {
			if (info.wg.ownerOf(_tokenIds[i]) == address(this)) {
				require(info.wg.getIsWhale(_tokenIds[i]) == info.isWhale);
				info.wg.transferFrom(address(this), msg.sender, _tokenIds[i]);
				totalUnwrapped++;
			}
		}
		require(totalUnwrapped > 0);
		uint256 _cost = totalUnwrapped * 1e18;
		info.totalSupply -= _cost;
		info.users[msg.sender].balance -= _cost;
		info.users[msg.sender].scaledPayout -= int256(_cost * info.scaledRewardsPerToken);
		emit Transfer(msg.sender, address(0x0), _cost);
	}

	function claim() external {
		claimFor(msg.sender);
	}

	function claimFor(address _user) public {
		_update();
		uint256 _rewards = rewardsOf(_user);
		if (_rewards > 0) {
			info.users[_user].scaledPayout += int256(_rewards * FLOAT_SCALAR);
			if (rewardBurn(_user)) {
				address _destination = burnDestination();
				if (_destination == address(0x0)) {
					info.krill.burn(_rewards);
				} else {
					if (isBridged()) {
						info.bridge.depositFor(_destination, address(info.krill), abi.encodePacked(_rewards));
					} else {
						info.krill.transfer(_destination, _rewards);
					}
				}
			} else {
				info.krill.transfer(_user, _rewards);
			}
			emit Claim(_user, _rewards);
		}
	}

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

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	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 name() external view returns (string memory) {
		return info.isWhale ? 'Wrapped Whales' : 'Wrapped Fishermen';
	}

	function symbol() external view returns (string memory) {
		return info.isWhale ? 'wWH' : 'wFM';
	}
	
	function owner() public view returns (address) {
		return info.owner;
	}
	
	function isBridged() public view returns (bool) {
		return info.isBridged;
	}
	
	function burnDestination() public view returns (address) {
		return info.burnDestination;
	}
	
	function rewardBurn(address _user) public view returns (bool) {
		return info.rewardBurn[_user];
	}
	
	function pairAddress() public view returns (address) {
		return address(info.pair);
	}
	
	function totalSupply() public view returns (uint256) {
		return info.totalSupply;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance;
	}
	
	function rewardsOf(address _user) public view returns (uint256) {
		return uint256(int256(info.scaledRewardsPerToken * balanceOf(_user)) - info.users[_user].scaledPayout) / FLOAT_SCALAR;
	}

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

	function allInfoFor(address _user) external view returns (uint256 totalTokens, uint256 totalLPTokens, uint256 wethReserve, uint256 wrappedReserve, uint256 userTokens, bool userApproved, uint256 userBalance, uint256 userRewards, uint256 userLPBalance, uint256 contractFishermen, uint256 contractWhales) {
		totalTokens = totalSupply();
		totalLPTokens = info.pair.totalSupply();
		(uint256 _res0, uint256 _res1, ) = info.pair.getReserves();
		wethReserve = info.weth0 ? _res0 : _res1;
		wrappedReserve = info.weth0 ? _res1 : _res0;
		userTokens = info.wg.balanceOf(_user);
		userApproved = info.wg.isApprovedForAll(_user, address(this));
		userBalance = balanceOf(_user);
		userRewards = rewardsOf(_user);
		userLPBalance = info.pair.balanceOf(_user);
		contractFishermen = info.wg.fishermenOf(address(this));
		contractWhales = info.wg.whalesOf(address(this));
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		require(balanceOf(_from) >= _tokens);
		_update();
		info.users[_from].balance -= _tokens;
		info.users[_from].scaledPayout -= int256(_tokens * info.scaledRewardsPerToken);
		info.users[_to].balance += _tokens;
		info.users[_to].scaledPayout += int256(_tokens * info.scaledRewardsPerToken);
		emit Transfer(_from, _to, _tokens);
		return true;
	}

	function _update() internal {
		address _this = address(this);
		uint256 _balanceBefore = info.krill.balanceOf(_this);
		info.wg.claim();
		_disburse(info.krill.balanceOf(_this) - _balanceBefore);
	}

	function _disburse(uint256 _amount) internal {
		if (_amount > 0) {
			if (totalSupply() == 0) {
				info.pendingRewards += _amount;
			} else {
				info.scaledRewardsPerToken += (_amount + info.pendingRewards) * FLOAT_SCALAR / totalSupply();
				info.pendingRewards = 0;
			}
			emit Reward(_amount);
		}
	}
}

contract Islands {

	uint256 constant private UINT_MAX = type(uint256).max;
	uint256 constant private POLYGON_ISLANDS = 1000;
	uint256 constant private MINTABLE_ISLANDS = 1000;
	uint256 constant private MAX_ISLANDS = POLYGON_ISLANDS + MINTABLE_ISLANDS; // 2k
	uint256 constant private BASE_KRILL_COST = 1e23; // 100k
	uint256 constant private KRILL_COST_INCREMENT = 2e21; // 2k

	string constant public name = "Whales Game Islands";
	string constant public symbol = "ISLAND";
	uint8 constant public decimals = 18;

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

	struct Info {
		uint256 totalSupply;
		mapping(address => User) users;
		Router router;
		Pair pair;
		WhalesGame wg;
		KRILL krill;
		WrappedToken wfm;
		WrappedToken wwh;
		address owner;
		address feeRecipient;
		bool weth0;
		uint256 openingTime;
	}
	Info private info;


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


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


	constructor(WhalesGame _wg, address _booster, uint256 _openingTime) {
		info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		info.pair = Pair(Factory(info.router.factory()).createPair(info.router.WETH(), address(this)));
		info.weth0 = info.pair.token0() == info.router.WETH();
		info.wg = _wg;
		info.krill = KRILL(_wg.krillAddress());
		info.wfm = new WrappedToken(_wg, false);
		info.wwh = new WrappedToken(_wg, true);
		info.owner = msg.sender;
		info.feeRecipient = _booster;
		info.openingTime = _openingTime;

		uint256 _polygonIslands = POLYGON_ISLANDS * 1e18;
		info.totalSupply = _polygonIslands;
		info.users[msg.sender].balance = _polygonIslands;
		emit Transfer(address(0x0), msg.sender, _polygonIslands);
	}

	function setOwner(address _owner) external _onlyOwner {
		info.owner = _owner;
	}

	function setFeeRecipient(address _feeRecipient) external _onlyOwner {
		info.feeRecipient = _feeRecipient;
	}

	function buyIsland(uint256[4] memory _fishermenIds, uint256 _whaleId) external {
		require(block.timestamp >= info.openingTime);
		require(totalIslands() < MAX_ISLANDS);
		require(info.wg.getIsWhale(_whaleId));
		info.wg.transferFrom(msg.sender, wrappedWhalesAddress(), _whaleId);
		require(!info.wg.getIsWhale(_fishermenIds[0]));
		info.wg.transferFrom(msg.sender, wrappedFishermenAddress(), _fishermenIds[0]);
		require(!info.wg.getIsWhale(_fishermenIds[1]));
		info.wg.transferFrom(msg.sender, info.wg.stakingRewardsAddress(), _fishermenIds[1]);
		require(!info.wg.getIsWhale(_fishermenIds[2]));
		info.wg.transferFrom(msg.sender, info.wg.stakingRewardsAddress(), _fishermenIds[2]);
		require(!info.wg.getIsWhale(_fishermenIds[3]));
		info.wg.transferFrom(msg.sender, feeRecipient(), _fishermenIds[3]);
		info.krill.transferFrom(msg.sender, feeRecipient(), currentKrillCost());

		info.totalSupply += 1e18;
		info.users[msg.sender].balance += 1e18;
		emit Transfer(address(0x0), msg.sender, 1e18);
	}

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

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	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 whalesGameAddress() external view returns (address) {
		return address(info.wg);
	}

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

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

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

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

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

	function totalIslands() public view returns (uint256) {
		return totalSupply() / 1e18;
	}

	function currentKrillCost() public view returns (uint256) {
		return BASE_KRILL_COST + (totalIslands() - POLYGON_ISLANDS) * KRILL_COST_INCREMENT;
	}

	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 allInfoFor(address _user) external view returns (uint256 openingTime, uint256 totalTokens, uint256 totalLPTokens, uint256 wethReserve, uint256 islandReserve, uint256 userTokens, bool userApproved, uint256 userAllowance, uint256 userKRILL, uint256 userBalance, uint256 userLPBalance) {
		openingTime = info.openingTime;
		totalTokens = totalSupply();
		totalLPTokens = info.pair.totalSupply();
		(uint256 _res0, uint256 _res1, ) = info.pair.getReserves();
		wethReserve = info.weth0 ? _res0 : _res1;
		islandReserve = info.weth0 ? _res1 : _res0;
		userTokens = info.wg.balanceOf(_user);
		userApproved = info.wg.isApprovedForAll(_user, address(this));
		userAllowance = info.krill.allowance(_user, address(this));
		userKRILL = info.krill.balanceOf(_user);
		userBalance = balanceOf(_user);
		userLPBalance = info.pair.balanceOf(_user);
	}


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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract WhalesGame","name":"_wg","type":"address"},{"internalType":"bool","name":"_isWhale","type":"bool"}],"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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","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"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokens","type":"uint256"},{"internalType":"uint256","name":"totalLPTokens","type":"uint256"},{"internalType":"uint256","name":"wethReserve","type":"uint256"},{"internalType":"uint256","name":"wrappedReserve","type":"uint256"},{"internalType":"uint256","name":"userTokens","type":"uint256"},{"internalType":"bool","name":"userApproved","type":"bool"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userRewards","type":"uint256"},{"internalType":"uint256","name":"userLPBalance","type":"uint256"},{"internalType":"uint256","name":"contractFishermen","type":"uint256"},{"internalType":"uint256","name":"contractWhales","type":"uint256"}],"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":"burnDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"claimFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"disburse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBridged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"rewardBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"rewardsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_destination","type":"address"}],"name":"setBurnDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isBridged","type":"bool"}],"name":"setIsBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_shouldBurn","type":"bool"}],"name":"setRewardBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_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":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"unwrap","outputs":[{"internalType":"uint256","name":"totalUnwrapped","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"wrap","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c9bd33b116100de578063a9059cbb11610097578063cc17a5bf11610071578063cc17a5bf146103b8578063dd62ed3e146103cb578063ddeae03314610408578063f10f1b031461041b57600080fd5b8063a9059cbb1461037f578063ae268ca714610392578063bd77ac2c146103a557600080fd5b80635c9bd33b1461030757806363ac2a4c1461031957806370a082311461032c5780638da5cb5b1461035557806395d89b4114610366578063a8b089821461036e57600080fd5b8063313ce5671161014b5780634e71d92d116101255780634e71d92d146102735780634ff9fd661461027b57806350ccb3021461028e57806357f6b812146102a157600080fd5b8063313ce567146102335780634000aea01461024d578063479ba7ae1461026057600080fd5b806306fdde0314610193578063095ea7b3146101b15780630fca9687146101d457806313af4035146101f957806318160ddd1461020e57806323b872dd14610220575b600080fd5b61019b610447565b6040516101a891906118f2565b60405180910390f35b6101c46101bf36600461191a565b6104b0565b60405190151581526020016101a8565b6005546001600160a01b03165b6040516001600160a01b0390911681526020016101a8565b61020c610207366004611946565b61051b565b005b6000545b6040519081526020016101a8565b6101c461022e366004611963565b610554565b61023b601281565b60405160ff90911681526020016101a8565b6101c461025b3660046119a4565b6105e1565b61021261026e366004611946565b610687565b61020c6106d3565b61020c610289366004611a3b565b6106de565b61020c61029c366004611a58565b610713565b6102b46102af366004611946565b610768565b604080519b8c5260208c019a909a52988a01979097526060890195909552608088019390935290151560a087015260c086015260e0850152610100840152610120830152610140820152610160016101a8565b600654600160a01b900460ff166101c4565b610212610327366004611a91565b610b8f565b61021261033a366004611946565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03166101e1565b61019b610ea0565b6009546001600160a01b03166101e1565b6101c461038d36600461191a565b610ef0565b61020c6103a0366004611946565b610f04565b61020c6103b3366004611b06565b610f3d565b61020c6103c6366004611a91565b6110be565b6102126103d9366004611b1f565b6001600160a01b0391821660009081526003602090815260408083209390941682526001909201909152205490565b61020c610416366004611946565b6112ef565b6101c4610429366004611946565b6001600160a01b031660009081526004602052604090205460ff1690565b600954606090600160a81b900460ff1661048757506040805180820190915260118152702bb930b83832b2102334b9b432b936b2b760791b602082015290565b5060408051808201909152600e81526d57726170706564205768616c657360901b602082015290565b3360008181526003602090815260408083206001600160a01b0387168085526001909101835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6006546001600160a01b0316331461053257600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831660009081526003602090815260408083203384526001019091528120548281101561058857600080fd5b60001981146105cd576001600160a01b0385166000908152600360209081526040808320338452600101909152812080548592906105c7908490611b63565b90915550505b6105d8858585611596565b95945050505050565b60006105ee338686611596565b50843b63ffffffff81161561067b57604051636be32e7360e01b81526001600160a01b03871690636be32e739061062f903390899089908990600401611b7a565b6020604051808303816000875af115801561064e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106729190611bc2565b61067b57600080fd5b50600195945050505050565b6001600160a01b038116600090815260036020526040812060028101549054600154600160401b92916106b991611bdf565b6106c39190611bfe565b6106cd9190611c3d565b92915050565b6106dc336112ef565b565b6006546001600160a01b031633146106f557600080fd5b60068054911515600160a01b0260ff60a01b19909216919091179055565b6006546001600160a01b0316331461072a57600080fd5b813b63ffffffff811661073c57600080fd5b506001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b600080600080600080600080600080600061078260005490565b600954604080516318160ddd60e01b81529051929d506001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f39190611c5f565b60095460408051630240bc6b60e21b81529051929c5060009283926001600160a01b031691630902f1ac9160048083019260609291908290030181865afa158015610842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108669190611c94565b506009546001600160701b03928316945091169150600160a01b900460ff1661088f5780610891565b815b600954909b50600160a01b900460ff166108ab57816108ad565b805b99506000600a0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040161090291906001600160a01b0391909116815260200190565b602060405180830381865afa15801561091f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109439190611c5f565b98506000600a0160009054906101000a90046001600160a01b03166001600160a01b031663e985e9c58f306040518363ffffffff1660e01b81526004016109a09291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190611bc2565b9750610a028e6001600160a01b031660009081526003602052604090205490565b9650610a0d8e610687565b9550600060090160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b8152600401610a6291906001600160a01b0391909116815260200190565b602060405180830381865afa158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa39190611c5f565b600a546040516379400dc160e01b81523060048201529196506001600160a01b0316906379400dc190602401602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c5f565b600a5460405162c4d0c360e51b81523060048201529195506001600160a01b03169063189a186090602401602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611c5f565b9250505091939597999b90929496989a50565b600081610ba481670de0b6b3a7640000611bdf565b336000908152600360205260409020541015610bbf57600080fd5b610bc76116f0565b6000915060005b81811015610dcb57600a5430906001600160a01b0316636352211e878785818110610bfb57610bfb611ce4565b905060200201356040518263ffffffff1660e01b8152600401610c2091815260200190565b602060405180830381865afa158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c619190611cfa565b6001600160a01b03161415610db957600954600a54600160a81b90910460ff161515906001600160a01b031663a0ced6fd878785818110610ca457610ca4611ce4565b905060200201356040518263ffffffff1660e01b8152600401610cc991815260200190565b602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611bc2565b151514610d1657600080fd5b600a546001600160a01b03166323b872dd3033888886818110610d3b57610d3b611ce4565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610d9257600080fd5b505af1158015610da6573d6000803e3d6000fd5b505050508280610db590611d17565b9350505b80610dc381611d17565b915050610bce565b5060008211610dd957600080fd5b6000610ded83670de0b6b3a7640000611bdf565b905080600080016000828254610e039190611b63565b90915550503360009081526003602052604081208054839290610e27908490611b63565b9091555050600154610e399082611bdf565b3360009081526003602052604081206002018054909190610e5b908490611bfe565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505092915050565b600954606090600160a81b900460ff16610ed2575060408051808201909152600381526277464d60e81b602082015290565b506040805180820190915260038152620eeae960eb1b602082015290565b6000610efd338484611596565b9392505050565b6006546001600160a01b03163314610f1b57600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b80156110bb57600b546040516370a0823160e01b81523060048201819052916000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611c5f565b600b546040516323b872dd60e01b81523360048201526001600160a01b038581166024830152604482018790529293509116906323b872dd906064016020604051808303816000875af1158015611010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110349190611bc2565b50600b546040516370a0823160e01b81526001600160a01b0384811660048301526110b89284929116906370a08231906024015b602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190611c5f565b6110b39190611b63565b6117fb565b50505b50565b80806110c957600080fd5b6110d16116f0565b60005b8181101561122957600954600a54600160a81b90910460ff161515906001600160a01b031663a0ced6fd86868581811061111057611110611ce4565b905060200201356040518263ffffffff1660e01b815260040161113591815260200190565b602060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611bc2565b15151461118257600080fd5b600a546001600160a01b03166323b872dd33308787868181106111a7576111a7611ce4565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156111fe57600080fd5b505af1158015611212573d6000803e3d6000fd5b50505050808061122190611d17565b9150506110d4565b50600061123e82670de0b6b3a7640000611bdf565b9050806000800160008282546112549190611d32565b90915550503360009081526003602052604081208054839290611278908490611d32565b909155505060015461128a9082611bdf565b33600090815260036020526040812060020180549091906112ac908490611d4a565b909155505060405181815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6112f76116f0565b600061130282610687565b9050801561159257611318600160401b82611bdf565b6001600160a01b03831660009081526003602052604081206002018054909190611343908490611d4a565b90915550506001600160a01b03821660009081526004602052604090205460ff16156114d557600061137d6005546001600160a01b031690565b90506001600160a01b0381166113f157600b54604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c68906024015b600060405180830381600087803b1580156113d457600080fd5b505af11580156113e8573d6000803e3d6000fd5b505050506114cf565b600654600160a01b900460ff161561145657600754600b54604080516020808201879052825180830390910181528183019283905263e3dec8fb60e01b9092526001600160a01b039384169363e3dec8fb936113ba9387939290911691604401611d8b565b600b5460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af11580156114a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cd9190611bc2565b505b5061154e565b600b5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154c9190611bc2565b505b816001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d48260405161158991815260200190565b60405180910390a25b5050565b6001600160a01b0383166000908152600360205260408120548211156115bb57600080fd5b6115c36116f0565b6001600160a01b038416600090815260036020526040812080548492906115eb908490611b63565b90915550506001546115fd9083611bdf565b6001600160a01b03851660009081526003602052604081206002018054909190611628908490611bfe565b90915550506001600160a01b03831660009081526003602052604081208054849290611655908490611d32565b90915550506001546116679083611bdf565b6001600160a01b03841660009081526003602052604081206002018054909190611692908490611d4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116de91815260200190565b60405180910390a35060019392505050565b600b546040516370a0823160e01b81523060048201819052916000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117629190611c5f565b600a5460408051634e71d92d60e01b815290519293506001600160a01b0390911691634e71d92d9160048082019260009290919082900301818387803b1580156117ab57600080fd5b505af11580156117bf573d6000803e3d6000fd5b5050600b546040516370a0823160e01b81526001600160a01b0386811660048301526115929450859350909116906370a0823190602401611068565b80156110bb5760005461182857806000600201600082825461181d9190611d32565b9091555061186f9050565b600054600254600160401b9061183e9084611d32565b6118489190611bdf565b6118529190611c3d565b60018054600090611864908490611d32565b909155505060006002555b6040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a150565b6000815180845260005b818110156118cb576020818501810151868301820152016118af565b818111156118dd576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610efd60208301846118a5565b6001600160a01b03811681146110bb57600080fd5b6000806040838503121561192d57600080fd5b823561193881611905565b946020939093013593505050565b60006020828403121561195857600080fd5b8135610efd81611905565b60008060006060848603121561197857600080fd5b833561198381611905565b9250602084013561199381611905565b929592945050506040919091013590565b600080600080606085870312156119ba57600080fd5b84356119c581611905565b935060208501359250604085013567ffffffffffffffff808211156119e957600080fd5b818701915087601f8301126119fd57600080fd5b813581811115611a0c57600080fd5b886020828501011115611a1e57600080fd5b95989497505060200194505050565b80151581146110bb57600080fd5b600060208284031215611a4d57600080fd5b8135610efd81611a2d565b60008060408385031215611a6b57600080fd5b8235611a7681611905565b91506020830135611a8681611a2d565b809150509250929050565b60008060208385031215611aa457600080fd5b823567ffffffffffffffff80821115611abc57600080fd5b818501915085601f830112611ad057600080fd5b813581811115611adf57600080fd5b8660208260051b8501011115611af457600080fd5b60209290920196919550909350505050565b600060208284031215611b1857600080fd5b5035919050565b60008060408385031215611b3257600080fd5b8235611b3d81611905565b91506020830135611a8681611905565b634e487b7160e01b600052601160045260246000fd5b600082821015611b7557611b75611b4d565b500390565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b600060208284031215611bd457600080fd5b8151610efd81611a2d565b6000816000190483118215151615611bf957611bf9611b4d565b500290565b60008083128015600160ff1b850184121615611c1c57611c1c611b4d565b6001600160ff1b0384018313811615611c3757611c37611b4d565b50500390565b600082611c5a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c7157600080fd5b5051919050565b80516001600160701b0381168114611c8f57600080fd5b919050565b600080600060608486031215611ca957600080fd5b611cb284611c78565b9250611cc060208501611c78565b9150604084015163ffffffff81168114611cd957600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d0c57600080fd5b8151610efd81611905565b6000600019821415611d2b57611d2b611b4d565b5060010190565b60008219821115611d4557611d45611b4d565b500190565b600080821280156001600160ff1b0384900385131615611d6c57611d6c611b4d565b600160ff1b8390038412811615611d8557611d85611b4d565b50500190565b6001600160a01b038481168252831660208201526060604082018190526000906105d8908301846118a556fea2646970667358221220cd8a9eb3ac97d2581e7db9966bd2022ed3071b3e504d9c104ef955c4bf829ec864736f6c634300080a0033

Deployed Bytecode Sourcemap

1875:8799:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7567:124;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:203;;;;;;:::i;:::-;;:::i;:::-;;;1337:14:1;;1330:22;1312:41;;1300:2;1285:18;6702:203:0;1172:187:1;7968:94:0;8037:20;;-1:-1:-1;;;;;8037:20:0;7968:94;;;-1:-1:-1;;;;;1528:32:1;;;1510:51;;1498:2;1483:18;7968:94:0;1364:203:1;3681:83:0;;;;;;:::i;:::-;;:::i;:::-;;8269:86;8313:7;8334:16;8269:86;;;1970:25:1;;;1958:2;1943:18;8269:86:0;1824:177:1;6910:321:0;;;;;;:::i;:::-;;:::i;2105:35::-;;2138:2;2105:35;;;;;2639:4:1;2627:17;;;2609:36;;2597:2;2582:18;2105:35:0;2467:184:1;7236:323:0;;;;;;:::i;:::-;;:::i;8472:191::-;;;;;;:::i;:::-;;:::i;5849:56::-;;;:::i;3769:96::-;;;;;;:::i;:::-;;:::i;3870:213::-;;;;;;:::i;:::-;;:::i;8809:876::-;;;;;;:::i;:::-;;:::i;:::-;;;;4633:25:1;;;4689:2;4674:18;;4667:34;;;;4717:18;;;4710:34;;;;4775:2;4760:18;;4753:34;;;;4818:3;4803:19;;4796:35;;;;4875:14;;4868:22;4862:3;4847:19;;4840:51;4922:3;4907:19;;4900:35;4966:3;4951:19;;4944:35;5010:3;4995:19;;4988:35;5054:3;5039:19;;5032:35;5098:3;5083:19;;5076:36;4620:3;4605:19;8809:876:0;4211:907:1;7883:79:0;7943:14;;-1:-1:-1;;;7943:14:0;;;;7883:79;;5073:771;;;;;;:::i;:::-;;:::i;8360:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8436:17:0;8415:7;8436:17;;;:10;:17;;;;;:25;;8360:106;7803:74;7862:10;;-1:-1:-1;;;;;7862:10:0;7803:74;;7696:101;;;:::i;8175:88::-;8248:9;;-1:-1:-1;;;;;8248:9:0;8175:88;;6573:124;;;;;;:::i;:::-;;:::i;4088:115::-;;;;;;:::i;:::-;;:::i;4210:287::-;;;;;;:::i;:::-;;:::i;4502:566::-;;;;;;:::i;:::-;;:::i;8668:136::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8762:17:0;;;8741:7;8762:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;8668:136;5910:658;;;;;;:::i;:::-;;:::i;8068:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8142:22:0;8124:4;8142:22;;;:15;:22;;;;;;;;;8068:101;7567:124;7633:12;;7606:13;;-1:-1:-1;;;7633:12:0;;;;:53;;-1:-1:-1;7633:53:0;;;;;;;;;;;;-1:-1:-1;;;7633:53:0;;;;;7567:124::o;7633:53::-;-1:-1:-1;7633:53:0;;;;;;;;;;;;-1:-1:-1;;;7633:53:0;;;;;7567:124::o;6702:203::-;6794:10;6772:4;6783:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;6783:42:0;;;;;:32;;;;:42;;;;;:52;;;6845:39;;1970:25:1;;;6772:4:0;;6783:42;;6794:10;;6845:39;;1943:18:1;6845:39:0;;;;;;;-1:-1:-1;6896:4:0;6702:203;;;;:::o;3681:83::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3740:10:::1;:19:::0;;-1:-1:-1;;;;;;3740:19:0::1;-1:-1:-1::0;;;;;3740:19:0;;;::::1;::::0;;;::::1;::::0;;3681:83::o;6910:321::-;-1:-1:-1;;;;;8762:17:0;;6995:4;8762:17;;;:10;:17;;;;;;;;7044:10;8762:37;;:27;;:37;;;;;;7082:7;7068:10;:21;;7060:30;;;;;;-1:-1:-1;;7099:10:0;:22;7095:90;;-1:-1:-1;;;;;7129:17:0;;:4;:17;;;:10;:17;;;;;;;;7157:10;7129:39;;:27;;:39;;;;;:50;;7172:7;;7129:4;:50;;7172:7;;7129:50;:::i;:::-;;;;-1:-1:-1;;7095:90:0;7196:30;7206:5;7213:3;7218:7;7196:9;:30::i;:::-;7189:37;6910:321;-1:-1:-1;;;;;6910:321:0:o;7236:323::-;7331:4;7342:35;7352:10;7364:3;7369:7;7342:9;:35::i;:::-;-1:-1:-1;7423:16:0;;7452:9;;;;7448:91;;7477:55;;-1:-1:-1;;;7477:55:0;;-1:-1:-1;;;;;7477:27:0;;;;;:55;;7505:10;;7517:7;;7526:5;;;;7477:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7469:64;;;;;;-1:-1:-1;7550:4:0;;7236:323;-1:-1:-1;;;;;7236:323:0:o;8472:191::-;-1:-1:-1;;;;;8612:17:0;;8527:7;8612:17;;;:10;:17;;;;;:30;;;;8436:25;;8563:26;;-1:-1:-1;;;2000:5:0;8612:30;8563:45;;;:::i;:::-;8556:86;;;;:::i;:::-;8548:110;;;;:::i;:::-;8541:117;8472:191;-1:-1:-1;;8472:191:0:o;5849:56::-;5880:20;5889:10;5880:8;:20::i;:::-;5849:56::o;3769:96::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3833:14:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;3833:27:0::1;-1:-1:-1::0;;;;3833:27:0;;::::1;::::0;;;::::1;::::0;;3769:96::o;3870:213::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3992:18;::::1;4027:9;::::0;::::1;4019:18;;;::::0;::::1;;-1:-1:-1::0;;;;;;4042:22:0;;;::::1;:4;:22:::0;;;:15:::1;:22;::::0;;;;:36;;-1:-1:-1;;4042:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3870:213::o;8809:876::-;8867:19;8888:21;8911:19;8932:22;8956:18;8976:17;8995:19;9016;9037:21;9060:25;9087:22;9130:13;8313:7;8334:16;;8269:86;9130:13;9164:9;;:23;;;-1:-1:-1;;;9164:23:0;;;;9116:27;;-1:-1:-1;;;;;;9164:9:0;;;;:21;;:23;;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9227:9;;:23;;;-1:-1:-1;;;9227:23:0;;;;9148:39;;-1:-1:-1;9193:13:0;;;;-1:-1:-1;;;;;9227:9:0;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9269:10:0;;-1:-1:-1;;;;;9192:58:0;;;;-1:-1:-1;9192:58:0;;;-1:-1:-1;;;;9269:10:0;;;;:26;;9290:5;9269:26;;;9282:5;9269:26;9317:10;;9255:40;;-1:-1:-1;;;;9317:10:0;;;;:26;;9338:5;9317:26;;;9330:5;9317:26;9300:43;;9361:4;:7;;;;;;;;;;-1:-1:-1;;;;;9361:7:0;-1:-1:-1;;;;;9361:17:0;;9379:5;9361:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1528:32:1;;;;1510:51;;1498:2;1483:18;;1364:203;9361:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9348:37;;9405:4;:7;;;;;;;;;;-1:-1:-1;;;;;9405:7:0;-1:-1:-1;;;;;9405:24:0;;9430:5;9445:4;9405:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;9131:15:1;;;9113:34;;9183:15;;9178:2;9163:18;;9156:43;9063:2;9048:18;;8901:304;9405:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9390:61;;9470:16;9480:5;-1:-1:-1;;;;;8436:17:0;8415:7;8436:17;;;:10;:17;;;;;:25;;8360:106;9470:16;9456:30;;9505:16;9515:5;9505:9;:16::i;:::-;9491:30;;9542:4;:9;;;;;;;;;;-1:-1:-1;;;;;9542:9:0;-1:-1:-1;;;;;9542:19:0;;9562:5;9542:26;;;;;;;;;;;;;;-1:-1:-1;;;;;1528:32:1;;;;1510:51;;1498:2;1483:18;;1364:203;9542:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9593:7;;:34;;-1:-1:-1;;;9593:34:0;;9621:4;9593:34;;;1510:51:1;9526:42:0;;-1:-1:-1;;;;;;9593:7:0;;:19;;1483:18:1;;9593:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9649:7;;:31;;-1:-1:-1;;;9649:31:0;;9674:4;9649:31;;;1510:51:1;9573:54:0;;-1:-1:-1;;;;;;9649:7:0;;:16;;1483:18:1;;9649:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9632:48;;9111:574;;8809:876;;;;;;;;;;;;;:::o;5073:771::-;5137:22;5183:9;5237:13;5183:9;5246:4;5237:13;:::i;:::-;5222:10;8415:7;8436:17;;;:10;:17;;;;;:25;5212:38;;5204:47;;;;;;5256:9;:7;:9::i;:::-;5287:1;5270:18;;5298:9;5293:262;5317:6;5313:1;:10;5293:262;;;5340:7;;5381:4;;-1:-1:-1;;;;;5340:7:0;:15;5356:9;;5366:1;5356:12;;;;;;;:::i;:::-;;;;;;;5340:29;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;5340:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5340:46:0;;5336:214;;;5439:12;;5403:7;;-1:-1:-1;;;5439:12:0;;;;;5403:48;;;-1:-1:-1;;;;;5403:7:0;:18;5422:9;;5432:1;5422:12;;;;;;;:::i;:::-;;;;;;;5403:32;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;5403:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;5395:57;;;;;;5459:7;;-1:-1:-1;;;;;5459:7:0;:20;5488:4;5495:10;5507:9;;5517:1;5507:12;;;;;;;:::i;:::-;5459:61;;-1:-1:-1;;;;;;5459:61:0;;;;;;;-1:-1:-1;;;;;9856:15:1;;;5459:61:0;;;9838:34:1;9908:15;;;;9888:18;;;9881:43;-1:-1:-1;5507:12:0;;;;;;9940:18:1;;;9933:34;9773:18;;5459:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:16;;;;;:::i;:::-;;;;5336:214;5325:3;;;;:::i;:::-;;;;5293:262;;;;5584:1;5567:14;:18;5559:27;;;;;;5591:13;5607:21;:14;5624:4;5607:21;:::i;:::-;5591:37;;5653:5;5633:4;:16;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;5674:10:0;5663:4;:22;;;:10;:22;;;;;:39;;5697:5;;5663:4;:39;;5697:5;;5663:39;:::i;:::-;;;;-1:-1:-1;;5761:26:0;;5753:34;;:5;:34;:::i;:::-;5718:10;5707:4;:22;;;:10;:22;;;;;:35;;:81;;:35;;:4;:81;;;;;:::i;:::-;;;;-1:-1:-1;;5798:41:0;;1970:25:1;;;5827:3:0;;5807:10;;5798:41;;1958:2:1;1943:18;5798:41:0;;;;;;;5161:683;;5073:771;;;;:::o;7696:101::-;7764:12;;7737:13;;-1:-1:-1;;;7764:12:0;;;;:28;;-1:-1:-1;7764:28:0;;;;;;;;;;;;-1:-1:-1;;;7764:28:0;;;;;7567:124::o;7764:28::-;-1:-1:-1;7764:28:0;;;;;;;;;;;;-1:-1:-1;;;7764:28:0;;;;;7696:101::o;6573:124::-;6639:4;6657:35;6667:10;6679:3;6684:7;6657:9;:35::i;:::-;6650:42;6573:124;-1:-1:-1;;;6573:124:0:o;4088:115::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;4163:20:::1;:35:::0;;-1:-1:-1;;;;;;4163:35:0::1;-1:-1:-1::0;;;;;4163:35:0;;;::::1;::::0;;;::::1;::::0;;4088:115::o;4210:287::-;4263:11;;4259:234;;4342:10;;:27;;-1:-1:-1;;;4342:27:0;;4306:4;4342:27;;;1510:51:1;;;4306:4:0;4282:13;;-1:-1:-1;;;;;4342:10:0;;;;:20;;1483:18:1;;4342:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4375:10;;:51;;-1:-1:-1;;;4375:51:0;;4399:10;4375:51;;;9838:34:1;-1:-1:-1;;;;;9908:15:1;;;9888:18;;;9881:43;9940:18;;;9933:34;;;4317:52:0;;-1:-1:-1;4375:10:0;;;:23;;9773:18:1;;4375:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4442:10:0;;:27;;-1:-1:-1;;;4442:27:0;;-1:-1:-1;;;;;1528:32:1;;;4442:27:0;;;1510:51:1;4432:55:0;;4472:14;;4442:10;;;:20;;1483:18:1;;4442:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;;:::i;:::-;4432:9;:55::i;:::-;4276:217;;4259:234;4210:287;:::o;4502:566::-;4577:9;4606:10;4598:19;;;;;;4622:9;:7;:9::i;:::-;4641;4636:173;4660:6;4656:1;:10;4636:173;;;4723:12;;4687:7;;-1:-1:-1;;;4723:12:0;;;;;4687:48;;;-1:-1:-1;;;;;4687:7:0;:18;4706:9;;4716:1;4706:12;;;;;;;:::i;:::-;;;;;;;4687:32;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;4687:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;4679:57;;;;;;4742:7;;-1:-1:-1;;;;;4742:7:0;:20;4763:10;4783:4;4790:9;;4800:1;4790:12;;;;;;;:::i;:::-;4742:61;;-1:-1:-1;;;;;;4742:61:0;;;;;;;-1:-1:-1;;;;;9856:15:1;;;4742:61:0;;;9838:34:1;9908:15;;;;9888:18;;;9881:43;-1:-1:-1;4790:12:0;;;;;;9940:18:1;;;9933:34;9773:18;;4742:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4668:3;;;;;:::i;:::-;;;;4636:173;;;-1:-1:-1;4813:15:0;4831:13;:6;4840:4;4831:13;:::i;:::-;4813:31;;4869:7;4849:4;:16;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;4892:10:0;4881:4;:22;;;:10;:22;;;;;:41;;4915:7;;4881:4;:41;;4915:7;;4881:41;:::i;:::-;;;;-1:-1:-1;;4983:26:0;;4973:36;;:7;:36;:::i;:::-;4938:10;4927:4;:22;;;:10;:22;;;;;:35;;:83;;:35;;:4;:83;;;;;:::i;:::-;;;;-1:-1:-1;;5020:43:0;;1970:25:1;;;5043:10:0;;5037:3;;5020:43;;1958:2:1;1943:18;5020:43:0;;;;;;;4555:513;;4502:566;;:::o;5910:658::-;5955:9;:7;:9::i;:::-;5969:16;5988;5998:5;5988:9;:16::i;:::-;5969:35;-1:-1:-1;6013:12:0;;6009:555;;6074:23;-1:-1:-1;;;6074:8:0;:23;:::i;:::-;-1:-1:-1;;;;;6033:17:0;;:4;:17;;;:10;:17;;;;;:30;;:65;;:30;;:4;:65;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8142:22:0;;8124:4;8142:22;;;:15;:22;;;;;;;;6104:422;;;6134:20;6157:17;8037:20;;-1:-1:-1;;;;;8037:20:0;;7968:94;6157:17;6134:40;-1:-1:-1;;;;;;6185:28:0;;6181:283;;6223:10;;:25;;-1:-1:-1;;;6223:25:0;;;;;1970::1;;;-1:-1:-1;;;;;6223:10:0;;;;:15;;1943:18:1;;6223:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:283;;;7943:14;;-1:-1:-1;;;7943:14:0;;;;6270:187;;;6296:11;;6341:10;;6354:26;;;;;;;10650:19:1;;;6354:26:0;;;;;;;;;;10685:12:1;;;6354:26:0;;;;-1:-1:-1;;;6296:85:0;;;-1:-1:-1;;;;;6296:11:0;;;;:22;;:85;;6319:12;;6341:10;;;;;6296:85;;;:::i;6270:187::-;6405:10;;:43;;-1:-1:-1;;;6405:43:0;;-1:-1:-1;;;;;11321:32:1;;;6405:43:0;;;11303:51:1;11370:18;;;11363:34;;;6405:10:0;;;;:19;;11276:18:1;;6405:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6270:187;6127:343;6104:422;;;6483:10;;:36;;-1:-1:-1;;;6483:36:0;;-1:-1:-1;;;;;11321:32:1;;;6483:36:0;;;11303:51:1;11370:18;;;11363:34;;;6483:10:0;;;;:19;;11276:18:1;;6483:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6104:422;6542:5;-1:-1:-1;;;;;6536:22:0;;6549:8;6536:22;;;;1970:25:1;;1958:2;1943:18;;1824:177;6536:22:0;;;;;;;;6009:555;5950:618;5910:658;:::o;9692:447::-;-1:-1:-1;;;;;8436:17:0;;9774:4;8436:17;;;:10;:17;;;;;:25;9813:7;-1:-1:-1;9793:27:0;9785:36;;;;;;9826:9;:7;:9::i;:::-;-1:-1:-1;;;;;9840:17:0;;:4;:17;;;:10;:17;;;;;:36;;9869:7;;9840:4;:36;;9869:7;;9840:36;:::i;:::-;;;;-1:-1:-1;;9932:26:0;;9922:36;;:7;:36;:::i;:::-;-1:-1:-1;;;;;9881:17:0;;:4;:17;;;:10;:17;;;;;:30;;:78;;:30;;:4;:78;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9964:15:0;;:4;:15;;;:10;:15;;;;;:34;;9991:7;;9964:4;:34;;9991:7;;9964:34;:::i;:::-;;;;-1:-1:-1;;10052:26:0;;10042:36;;:7;:36;:::i;:::-;-1:-1:-1;;;;;10003:15:0;;:4;:15;;;:10;:15;;;;;:28;;:76;;:28;;:4;:76;;;;;:::i;:::-;;;;;;;;10105:3;-1:-1:-1;;;;;10089:29:0;10098:5;-1:-1:-1;;;;;10089:29:0;;10110:7;10089:29;;;;1970:25:1;;1958:2;1943:18;;1824:177;10089:29:0;;;;;;;;-1:-1:-1;10130:4:0;9692:447;;;;;:::o;10144:204::-;10236:10;;:27;;-1:-1:-1;;;10236:27:0;;10201:4;10236:27;;;1510:51:1;;;10201:4:0;10177:13;;-1:-1:-1;;;;;10236:10:0;;;;:20;;1483:18:1;;10236:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10268:7;;:15;;;-1:-1:-1;;;10268:15:0;;;;10211:52;;-1:-1:-1;;;;;;10268:7:0;;;;:13;;:15;;;;;:4;;:15;;;;;;;;:4;:7;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10298:10:0;;:27;;-1:-1:-1;;;10298:27:0;;-1:-1:-1;;;;;1528:32:1;;;10298:27:0;;;1510:51:1;10288:55:0;;-1:-1:-1;10328:14:0;;-1:-1:-1;10298:10:0;;;;:20;;1483:18:1;;10298:27:0;1364:203:1;10353:318:0;10407:11;;10403:264;;8313:7;8334:16;10426:210;;10480:7;10457:4;:19;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;10426:210:0;;-1:-1:-1;10426:210:0;;8313:7;8334:16;10548:19;;-1:-1:-1;;;2000:5:0;10538:29;;:7;:29;:::i;:::-;10537:46;;;;:::i;:::-;:62;;;;:::i;:::-;10507:26;:92;;:4;;:92;;;;;:::i;:::-;;;;-1:-1:-1;;10628:1:0;10606:19;:23;10426:210;10646:15;;1970:25:1;;;10646:15:0;;1958:2:1;1943:18;10646:15:0;;;;;;;10353:318;:::o;14:472:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;336:6;333:1;330:13;327:87;;;402:1;395:4;386:6;381:3;377:16;373:27;366:38;327:87;-1:-1:-1;468:2:1;447:15;-1:-1:-1;;443:29:1;434:39;;;;475:4;430:50;;14:472;-1:-1:-1;;14:472:1:o;491:220::-;640:2;629:9;622:21;603:4;660:45;701:2;690:9;686:18;678:6;660:45;:::i;716:131::-;-1:-1:-1;;;;;791:31:1;;781:42;;771:70;;837:1;834;827:12;852:315;920:6;928;981:2;969:9;960:7;956:23;952:32;949:52;;;997:1;994;987:12;949:52;1036:9;1023:23;1055:31;1080:5;1055:31;:::i;:::-;1105:5;1157:2;1142:18;;;;1129:32;;-1:-1:-1;;;852:315:1:o;1572:247::-;1631:6;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1739:9;1726:23;1758:31;1783:5;1758:31;:::i;2006:456::-;2083:6;2091;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;-1:-1:-1;2333:2:1;2318:18;;2305:32;2346:33;2305:32;2346:33;:::i;:::-;2006:456;;2398:7;;-1:-1:-1;;;2452:2:1;2437:18;;;;2424:32;;2006:456::o;2656:794::-;2744:6;2752;2760;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;2997:2:1;2982:18;;2969:32;;-1:-1:-1;3052:2:1;3037:18;;3024:32;3075:18;3105:14;;;3102:34;;;3132:1;3129;3122:12;3102:34;3170:6;3159:9;3155:22;3145:32;;3215:7;3208:4;3204:2;3200:13;3196:27;3186:55;;3237:1;3234;3227:12;3186:55;3277:2;3264:16;3303:2;3295:6;3292:14;3289:34;;;3319:1;3316;3309:12;3289:34;3364:7;3359:2;3350:6;3346:2;3342:15;3338:24;3335:37;3332:57;;;3385:1;3382;3375:12;3332:57;2656:794;;;;-1:-1:-1;;3416:2:1;3408:11;;-1:-1:-1;;;2656:794:1:o;3455:118::-;3541:5;3534:13;3527:21;3520:5;3517:32;3507:60;;3563:1;3560;3553:12;3578:241;3634:6;3687:2;3675:9;3666:7;3662:23;3658:32;3655:52;;;3703:1;3700;3693:12;3655:52;3742:9;3729:23;3761:28;3783:5;3761:28;:::i;3824:382::-;3889:6;3897;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;4005:9;3992:23;4024:31;4049:5;4024:31;:::i;:::-;4074:5;-1:-1:-1;4131:2:1;4116:18;;4103:32;4144:30;4103:32;4144:30;:::i;:::-;4193:7;4183:17;;;3824:382;;;;;:::o;5123:615::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5326:9;5313:23;5355:18;5396:2;5388:6;5385:14;5382:34;;;5412:1;5409;5402:12;5382:34;5450:6;5439:9;5435:22;5425:32;;5495:7;5488:4;5484:2;5480:13;5476:27;5466:55;;5517:1;5514;5507:12;5466:55;5557:2;5544:16;5583:2;5575:6;5572:14;5569:34;;;5599:1;5596;5589:12;5569:34;5652:7;5647:2;5637:6;5634:1;5630:14;5626:2;5622:23;5618:32;5615:45;5612:65;;;5673:1;5670;5663:12;5612:65;5704:2;5696:11;;;;;5726:6;;-1:-1:-1;5123:615:1;;-1:-1:-1;;;;5123:615:1:o;5743:180::-;5802:6;5855:2;5843:9;5834:7;5830:23;5826:32;5823:52;;;5871:1;5868;5861:12;5823:52;-1:-1:-1;5894:23:1;;5743:180;-1:-1:-1;5743:180:1:o;5928:388::-;5996:6;6004;6057:2;6045:9;6036:7;6032:23;6028:32;6025:52;;;6073:1;6070;6063:12;6025:52;6112:9;6099:23;6131:31;6156:5;6131:31;:::i;:::-;6181:5;-1:-1:-1;6238:2:1;6223:18;;6210:32;6251:33;6210:32;6251:33;:::i;6321:127::-;6382:10;6377:3;6373:20;6370:1;6363:31;6413:4;6410:1;6403:15;6437:4;6434:1;6427:15;6453:125;6493:4;6521:1;6518;6515:8;6512:34;;;6526:18;;:::i;:::-;-1:-1:-1;6563:9:1;;6453:125::o;6583:559::-;-1:-1:-1;;;;;6796:32:1;;6778:51;;6860:2;6845:18;;6838:34;;;6908:2;6903;6888:18;;6881:30;;;6927:18;;6920:34;;;6947:6;6997;6991:3;6976:19;;6963:49;7062:1;7032:22;;;7056:3;7028:32;;;7021:43;;;;7125:2;7104:15;;;-1:-1:-1;;7100:29:1;7085:45;7081:55;;6583:559;-1:-1:-1;;;6583:559:1:o;7147:245::-;7214:6;7267:2;7255:9;7246:7;7242:23;7238:32;7235:52;;;7283:1;7280;7273:12;7235:52;7315:9;7309:16;7334:28;7356:5;7334:28;:::i;7397:168::-;7437:7;7503:1;7499;7495:6;7491:14;7488:1;7485:21;7480:1;7473:9;7466:17;7462:45;7459:71;;;7510:18;;:::i;:::-;-1:-1:-1;7550:9:1;;7397:168::o;7570:267::-;7609:4;7638:9;;;7663:10;;-1:-1:-1;;;7682:19:1;;7675:27;;7659:44;7656:70;;;7706:18;;:::i;:::-;-1:-1:-1;;;;;7753:27:1;;7746:35;;7738:44;;7735:70;;;7785:18;;:::i;:::-;-1:-1:-1;;7822:9:1;;7570:267::o;7842:217::-;7882:1;7908;7898:132;;7952:10;7947:3;7943:20;7940:1;7933:31;7987:4;7984:1;7977:15;8015:4;8012:1;8005:15;7898:132;-1:-1:-1;8044:9:1;;7842:217::o;8064:184::-;8134:6;8187:2;8175:9;8166:7;8162:23;8158:32;8155:52;;;8203:1;8200;8193:12;8155:52;-1:-1:-1;8226:16:1;;8064:184;-1:-1:-1;8064:184:1:o;8253:188::-;8332:13;;-1:-1:-1;;;;;8374:42:1;;8364:53;;8354:81;;8431:1;8428;8421:12;8354:81;8253:188;;;:::o;8446:450::-;8533:6;8541;8549;8602:2;8590:9;8581:7;8577:23;8573:32;8570:52;;;8618:1;8615;8608:12;8570:52;8641:40;8671:9;8641:40;:::i;:::-;8631:50;;8700:49;8745:2;8734:9;8730:18;8700:49;:::i;:::-;8690:59;;8792:2;8781:9;8777:18;8771:25;8836:10;8829:5;8825:22;8818:5;8815:33;8805:61;;8862:1;8859;8852:12;8805:61;8885:5;8875:15;;;8446:450;;;;;:::o;9210:127::-;9271:10;9266:3;9262:20;9259:1;9252:31;9302:4;9299:1;9292:15;9326:4;9323:1;9316:15;9342:251;9412:6;9465:2;9453:9;9444:7;9440:23;9436:32;9433:52;;;9481:1;9478;9471:12;9433:52;9513:9;9507:16;9532:31;9557:5;9532:31;:::i;9978:135::-;10017:3;-1:-1:-1;;10038:17:1;;10035:43;;;10058:18;;:::i;:::-;-1:-1:-1;10105:1:1;10094:13;;9978:135::o;10118:128::-;10158:3;10189:1;10185:6;10182:1;10179:13;10176:39;;;10195:18;;:::i;:::-;-1:-1:-1;10231:9:1;;10118:128::o;10251:265::-;10290:3;10318:9;;;10343:10;;-1:-1:-1;;;;;10362:27:1;;;10355:35;;10339:52;10336:78;;;10394:18;;:::i;:::-;-1:-1:-1;;;10441:19:1;;;10434:27;;10426:36;;10423:62;;;10465:18;;:::i;:::-;-1:-1:-1;;10501:9:1;;10251:265::o;10708:416::-;-1:-1:-1;;;;;10949:15:1;;;10931:34;;11001:15;;10996:2;10981:18;;10974:43;11053:2;11048;11033:18;;11026:30;;;10874:4;;11073:45;;11099:18;;11091:6;11073:45;:::i

Swarm Source

ipfs://cd8a9eb3ac97d2581e7db9966bd2022ed3071b3e504d9c104ef955c4bf829ec8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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