Contract 0x0786c3a78f5133f08c1c70953b8b10376bc6dcad

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x67c7987affcdef817b4c5faf9cc987a8783cc677ef53a4d6e57b26975dd68aa5_pull Bank Of_e_...287190152022-01-22 11:03:084 days 10 hrs ago0x5c146cd18fa53914580573c9b9604588529406ca IN  0x0786c3a78f5133f08c1c70953b8b10376bc6dcad0 FTM0.0404864
0x889a6bb23fb655a8c4e46d7266f576b84bec1000d68eb83f547ef183171bbaae_push Bank Of_e_...286763892022-01-21 22:43:234 days 22 hrs ago0x5c146cd18fa53914580573c9b9604588529406ca IN  0x0786c3a78f5133f08c1c70953b8b10376bc6dcad0 FTM0.071195172672
0xe468fe0b579868521834b1d04ea870e4fe55a4fe0fb75593bd3f69dba8cc958f_push Bank Of_e_...281163792022-01-16 7:28:4910 days 14 hrs ago0x5c146cd18fa53914580573c9b9604588529406ca IN  0x0786c3a78f5133f08c1c70953b8b10376bc6dcad0 FTM0.0067605
0x3af1fc32333c5f265e249f24681c807d7ccc06bad5fcd2292f2a05dc9ec8e7bf0x60806040280035842022-01-15 4:55:3011 days 16 hrs ago0x5c146cd18fa53914580573c9b9604588529406ca IN  Create: tvlGuru0 FTM0.607515711
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x3af1fc32333c5f265e249f24681c807d7ccc06bad5fcd2292f2a05dc9ec8e7bf280035842022-01-15 4:55:3011 days 16 hrs ago 0x5c146cd18fa53914580573c9b9604588529406ca  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
tvlGuru

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 1337 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2022-01-15
*/

//(C) Sam, FTM1337, kcc.guru 0-9999
//file://tvlGuru.sol
//ftm.guru : On-chain Total Value Locked Finder
//Version: 5
//Author: Sam4x, 543#3017, Guru Network
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.6;
pragma abicoder v2;
//All tvlGuru Compliant contracts must implement the ITVL interface
interface ITVL{
	function tvl() external view returns(uint256);
}
interface LPT
{
	function getReserves() external view returns (uint112, uint112, uint32);
	function balanceOf(address) external view returns (uint256);
	function totalSupply() external view returns (uint256);
	function decimals() external view returns (uint8);
	function token0() external view returns (address);
	function token1() external view returns (address);
	function transfer(address, uint) external;
}
contract tvlGuru
{
	/*
	 -	Personal Functions must begin with an "_".
			example: "_bankOf_e_usd"
			exception: EXPORTs
	 -	Term after the last "_" represents units.
			example: "_tvl_e_usd"
	 -	Universal functions must not begin with an "_".
			example: "p_t_coin_usd"
	 -	"_bankOf..." refers to personal datastores.
	 		example: "... _bankOf_t_coin_usd"
	 -	Structures of banks are public.
	 		example: "struct t_coin_usd ..."
	 -	Elementary bank structures must have "asset", "pool" and "dec" keys.
	 		example: "{address asset; address pool; uint8 dec; ...}"
	 - 	Follows modularity and consistency of algorithm & nomenclature.
	 		example: "... _bankOf_t_coin_usd" v/s
	 -	Convention for Universal TVL Finder
			example: "function tvlOf_..."
	 -	Convention for Self.TVL Finder
			example: "function _tvlOf_..."
	 -	Convention for Self.TVL.total
			example: "function _tvl_..."
	*/
	constructor(address[3] memory uwl, uint8 d)
    {
        DAO=msg.sender;
        setUWLD(uwl, d);
    }

	address public usd;
	address public wcoin;
	address public wcoinusd;
	uint8 public usd_d;
	address payable public DAO;
	modifier dao{require(msg.sender==DAO);_;}

	function setUWLD(address[3] memory uwl, uint8 d) public dao{
		usd=uwl[0];
		wcoin=uwl[1];
		wcoinusd=uwl[2];
        usd_d=d;
	}




	//Bank
	address[] public _bankOf_e_usd;
	//Edit: Push & Pull
	function _pushBankOf_e_usd(address asset) public dao
	{_bankOf_e_usd.push(asset);}
	function _pullBankOf_e_usd(uint n) public dao
	{
		_bankOf_e_usd[n]=_bankOf_e_usd[_bankOf_e_usd.length-1];
		_bankOf_e_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_e_usd(address q) public view returns(uint256)
	{
		uint256 tvl =  ITVL(q).tvl();
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_e_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_e_usd(_bankOf_e_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_e_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_e_usd.length;i++)
		{ tvl+= tvlOf_e_usd(_bankOf_e_usd[i]); }
		return tvl;
	}







	//Find USD worth of coin ; 1e18 === $1
	function coinusd() public view returns(uint256)
	{
		LPT lpt=LPT(wcoinusd);
		(uint256 a, uint256 b,) = lpt.getReserves();
		uint256 p = wcoin==lpt.token0()?
			(1e18* (b* 10**(18-usd_d)) ) /a :
			(1e18* (a* 10**(18-usd_d)) ) /b ;
		return(p);
	}

	//Calculator for Native coin locked
	address[] public  _bankOf_coin;
	function _pushBankOf_coin(address asset) public dao {_bankOf_coin.push(asset);}
	function _pullBankOf_coin(uint n) public dao
	{
		_bankOf_coin[n]=_bankOf_coin[_bankOf_coin.length-1];
		_bankOf_coin.pop();
	}
	//Universal TVL Finder
	function tvlOf_coin_usd(address q) public view returns(uint256)
	{
		return ((address(q).balance)*coinusd())/1e18;
	}
	//Self.TVL Finder
	function _tvlOf_coin_usd(uint256 n) public view returns(uint256)
	{
		return(tvlOf_coin_usd(_bankOf_coin[n]));
	}
	//Self.TVL.total
	function _tvl_coin_usd() public view returns(uint256)
	{
		uint256 tvl = 0;
		for(uint i;i<_bankOf_coin.length;i++)
		{ tvl+= tvlOf_coin_usd(_bankOf_coin[i]); }
		return(tvl);
	}


	//Simple pairs
	//Find USD worth of a simple token via USD pair
	function p_t_usd(address u, address lp) public view returns(uint256)
	{
		LPT lpt=LPT(lp);
		(uint256 a, uint256 b,) = lpt.getReserves();
		//pf: price of token in coin; 1e18 === 1coin
		address _t = lpt.token1();
		uint256 p;
		if(u==_t)
		{
			uint8 u_d = LPT(_t).decimals();
			uint8 t_d = LPT(lpt.token0()).decimals();
			p = (1e18* (b* 10**(18-u_d)) ) / (a* 10**(18-t_d)) ;
		}
		else
		{
			uint8 u_d = LPT(lpt.token0()).decimals();
			uint8 t_d = LPT(_t).decimals();
			p = (1e18* (a* 10**(18-u_d)) ) / (b* 10**(18-t_d)) ;
		}
		return p;
	}
	//Blob
	struct t_usd {address asset; address pool; uint8 dec; address u; address lp;}
	//Bank
	t_usd[] public _bankOf_t_usd;
	//Edit: Push & Pull
	function _pushBankOf_t_usd(address asset, address pool, uint8 dec, address u, address lp) public dao
	{_bankOf_t_usd.push(t_usd({asset: asset, pool: pool, dec: dec, u:u, lp: lp}));}
	function _pullBankOf_t_usd(uint n) public dao
	{
		_bankOf_t_usd[n]=_bankOf_t_usd[_bankOf_t_usd.length-1];
		_bankOf_t_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_t_usd(t_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_t_usd(q.u, q.lp)
			) / 1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_t_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_t_usd(_bankOf_t_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_t_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_t_usd.length;i++)
		{ tvl+= tvlOf_t_usd(_bankOf_t_usd[i]); }
		return tvl;
	}



	//Find USD worth of a simple token via coin pair via coinusd()
	function p_t_coin_usd(address lp) public view returns(uint256)
	{
		LPT lpt=LPT(lp);
		(uint256 a, uint256 b,) = lpt.getReserves();
		//pf: price of token in coin; 1e18 === 1coin
		uint256 pf;
		uint8 t_d;
		address _t = lpt.token1();
		if(wcoin==_t)
		{
			t_d = LPT(lpt.token0()).decimals();
			pf = (1e18*b) / (a * 10**(18-t_d)) ;
		}
		else
		{
			t_d = LPT(_t).decimals();
			pf = (1e18*a) / (b * 10**(18-t_d)) ;
		}
		uint256 p = (pf * coinusd()) /1e18;
		return p;
	}
	//Blob
	struct t_coin_usd {address asset; address pool; uint8 dec; address lp;}
	//Bank
	t_coin_usd[] public _bankOf_t_coin_usd;
	//Edit: Push & Pull
	function _pushBankOf_t_coin_usd(address asset, address pool, uint8 dec, address lp) public dao
	{_bankOf_t_coin_usd.push(t_coin_usd({asset: asset, pool: pool, dec: dec, lp: lp}));}
	function _pullBankOf_t_coin_usd(uint n) public dao
	{
		_bankOf_t_coin_usd[n]=_bankOf_t_coin_usd[_bankOf_t_coin_usd.length-1];
		_bankOf_t_coin_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_t_coin_usd(t_coin_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_t_coin_usd(q.lp)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_t_coin_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_t_coin_usd(_bankOf_t_coin_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_t_coin_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_t_coin_usd.length;i++)
		{ tvl+= tvlOf_t_coin_usd(_bankOf_t_coin_usd[i]); }
		return tvl;
	}



	//Token-Token pairs
	//Find USD worth of a simple token in Token-Token pairs via USD pair
	//bt: base token, qt: queried token
	//Assumes: Token qt does not have a direct USD or coin pair. Uses bt to calculate.
	function p_t_tt_usd(address qt, address lp_tt, address lp_bt_u, address u) public view returns(uint256)
	{
		LPT lpt=LPT(lp_tt);
		uint256 a;
		uint256 b;//base reserve
		uint8 qd;
		uint8 bd;
		address _t = lpt.token0();
		address bt;
		if(qt == _t)
		{
			bt = lpt.token1();
			(a,b,) = lpt.getReserves();
		}
		else
		{
			bt = _t;
			(b,a,) = lpt.getReserves();
		}
		qd = LPT(qt).decimals();
		bd = LPT(bt).decimals();
		uint256 p_bt = p_t_usd(u, lp_bt_u);
		uint256 p = (p_bt * (b*10**(18-bd))) /(a*10**(18-qd));
		return p;
	}
	//Blob
	struct t_tt_usd {address asset; address pool; uint8 dec; address lp_tt; address lp_bt_u; address u;}
	//Bank
	t_tt_usd[] public _bankOf_t_tt_usd;
	//Edit: Push & Pull
	function _pushBankOf_t_tt_usd(address asset, address pool, uint8 dec, address lp_tt, address lp_bt_u, address u) public dao
	{_bankOf_t_tt_usd.push(t_tt_usd({asset: asset, pool: pool, dec: dec, lp_tt: lp_tt, lp_bt_u:lp_bt_u, u:u}));}
	function _pullBankOf_t_tt_usd(uint n) public dao
	{
		_bankOf_t_tt_usd[n]=_bankOf_t_tt_usd[_bankOf_t_tt_usd.length-1];
		_bankOf_t_tt_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_t_tt_usd(t_tt_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_t_tt_usd(q.asset, q.lp_tt, q.lp_bt_u, q.u)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_t_tt_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_t_tt_usd(_bankOf_t_tt_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_t_tt_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_t_tt_usd.length;i++)
		{ tvl+= tvlOf_t_tt_usd(_bankOf_t_tt_usd[i]); }
		return tvl;
	}



	//Find USD worth of a simple token in Token-Token pairs via coin pair via coinusd()
	//Assumes: Token qt does not have a direct USD or coin pair. Uses bt to calculate.
	function p_t_tt_coin_usd(address qt, address lp_tt, address lp_bt_f) public view returns(uint256)
	{
		LPT lpt=LPT(lp_tt);
		uint256 a;
		uint256 b;//base reserve
		uint8 ad;
		uint8 bd;
		address _t = lpt.token0();
		address bt;
		if(qt == _t)
		{
			bt = lpt.token1();
			(a,b,) = lpt.getReserves();
		}
		else
		{
			bt = _t;
			(b,a,) = lpt.getReserves();
		}
		ad = LPT(qt).decimals();
		bd = LPT(bt).decimals();
		uint256 p_bt = p_t_coin_usd(lp_bt_f);
		uint256 p = ( ((p_bt * (b*10**(18-bd))) /(a*10**(18-bd))) * coinusd()) /1e18;
		return p;
	}
	//Blob
	struct t_tt_coin_usd {address asset; address pool; uint8 dec; address lp_tt; address lp_bt_f;}
	//Bank
	t_tt_coin_usd[] public _bankOf_t_tt_coin_usd;
	//Edit: Push & Pull
	function _pushBankOf_t_tt_coin_usd(address asset, address pool, uint8 dec, address lp_tt, address lp_bt_f) public dao
	{_bankOf_t_tt_coin_usd.push(t_tt_coin_usd({asset: asset, pool: pool, dec: dec, lp_tt: lp_tt, lp_bt_f:lp_bt_f}));}
	function _pullBankOf_t_tt_coin_usd(uint n) public dao
	{
		_bankOf_t_tt_coin_usd[n]=_bankOf_t_tt_coin_usd[_bankOf_t_tt_coin_usd.length-1];
		_bankOf_t_tt_coin_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_t_tt_coin_usd(t_tt_coin_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_t_tt_coin_usd(q.asset, q.lp_tt, q.lp_bt_f)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_t_tt_coin_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_t_tt_coin_usd(_bankOf_t_tt_coin_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_t_tt_coin_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_t_tt_coin_usd.length;i++)
		{ tvl+= tvlOf_t_tt_coin_usd(_bankOf_t_tt_coin_usd[i]); }
		return tvl;
	}




	//Find USD worth of a Liquidity token via USD pair
	function p_lpt_usd(address u, address lp) public view returns(uint256)
	{
		LPT lpt=LPT(lp);
		(uint256 a, uint256 b,) = lpt.getReserves();
		uint256 ts = lpt.totalSupply();
		uint8 u_d = LPT(u).decimals();
		//p: price of token in USD; 1e18 === $1
		uint256 p = u==lpt.token0()?
			(2e18*(a* 10**(18-u_d) ))/ts :
			(2e18*(b* 10**(18-u_d) ))/ts ;
		return p;
	}
	//Blob
	struct lpt_usd {address asset; address pool; uint8 dec; address u; address lp;}
	//Bank
	lpt_usd[] public _bankOf_lpt_usd;
	//Edit: Push & Pull
	function _pushBankOf_lpt_usd(address asset, address pool, uint8 dec, address u, address lp) public dao
	{_bankOf_lpt_usd.push(lpt_usd({asset: asset, pool: pool, dec: dec, u: u, lp:lp}));}
	function _pullBankOf_lpt_usd(uint n) public dao
	{
		_bankOf_lpt_usd[n]=_bankOf_lpt_usd[_bankOf_lpt_usd.length-1];
		_bankOf_lpt_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_lpt_usd(lpt_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_lpt_usd(q.lp, q.lp)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_lpt_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_lpt_usd(_bankOf_lpt_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_lpt_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_lpt_usd.length;i++)
		{ tvl+= tvlOf_lpt_usd(_bankOf_lpt_usd[i]); }
		return tvl;
	}




	//Find USD worth of a Liquidity token via coin pair via coinusd()
	function p_lpt_coin_usd(address lp) public view returns(uint256)
	{
		LPT lpt=LPT(lp);
		(uint256 a, uint256 b,) = lpt.getReserves();
		uint256 ts = lpt.totalSupply();
		//pf: price of token in coin; 1e18 === 1coin
		uint256 pf = wcoin==lpt.token0()?
			(2e18*a)/ts :
			(2e18*b)/ts ;
		uint256 p = (pf * coinusd()) /1e18;
		return p;
	}
	//Blob
	struct lpt_coin_usd {address asset; address pool; uint8 dec; address lp;}
	//Bank
	lpt_coin_usd[] public _bankOf_lpt_coin_usd;
	//Edit: Push & Pull
	function _pushBankOf_lpt_coin_usd(address asset, address pool, uint8 dec, address lp) public dao
	{_bankOf_lpt_coin_usd.push(lpt_coin_usd({asset: asset, pool: pool, dec: dec, lp:lp}));}
	function _pullBankOf_lpt_coin_usd(uint n) public dao
	{
		_bankOf_lpt_coin_usd[n]=_bankOf_lpt_coin_usd[_bankOf_lpt_coin_usd.length-1];
		_bankOf_lpt_coin_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_lpt_coin_usd(lpt_coin_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_lpt_coin_usd(q.lp)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_lpt_coin_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_lpt_coin_usd(_bankOf_lpt_coin_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_lpt_coin_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_lpt_coin_usd.length;i++)
		{ tvl+= tvlOf_lpt_coin_usd(_bankOf_lpt_coin_usd[i]); }
		return tvl;
	}




	//Token-Token pairs
	//Find USD worth of a Liquidity token of a token-token pool via USD pair
	//bt: token with known USD-pair lp_bt_u
	function p_lpt_tt_usd(address bt, address lp_tt, address lp_bt_u, address u) public view returns(uint256)
	{
		LPT lpt=LPT(lp_tt);
		address _t = lpt.token0();
		uint256 b;
		uint8 bd = LPT(bt).decimals();
		if(bt == _t){(b,,) = lpt.getReserves();}
		else{(,b,) = lpt.getReserves();}
		uint256 ts = lpt.totalSupply();
		//pu: price of token in USD; 1e18 === $1
		uint256 pu = p_t_usd(u,lp_bt_u);
		uint256 p = (2*pu * (b*10**(18-bd))) / ts;
		return p;
	}
	//Blob
	struct lpt_tt_usd {address asset; address pool; uint8 dec; address lp_tt; address lp_tt_b; address lp_bt_u; address u;}
	//Bank
	lpt_tt_usd[] public _bankOf_lpt_tt_usd;
	//Edit: Push & Pull
	function _pushBankOf_lpt_tt_usd(address asset, address pool, uint8 dec, address lp_tt, address lp_tt_b, address lp_bt_u, address u) public dao
	{_bankOf_lpt_tt_usd.push(lpt_tt_usd({asset: asset, pool: pool, dec: dec, lp_tt: lp_tt, lp_tt_b: lp_tt_b, lp_bt_u: lp_bt_u, u:u}));}
	function _pullBankOf_lpt_tt_usd(uint n) public dao
	{
		_bankOf_lpt_tt_usd[n]=_bankOf_lpt_tt_usd[_bankOf_lpt_tt_usd.length-1];
		_bankOf_lpt_tt_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_lpt_tt_usd(lpt_tt_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_lpt_tt_usd(q.lp_tt_b, q.lp_tt, q.lp_bt_u, q.u)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_lpt_tt_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_lpt_tt_usd(_bankOf_lpt_tt_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_lpt_tt_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_lpt_tt_usd.length;i++)
		{ tvl+= tvlOf_lpt_tt_usd(_bankOf_lpt_tt_usd[i]); }
		return tvl;
	}




	//Find USD worth of a Liquidity token of a token-token pool via USD pair via coinusd()
	function p_lpt_tt_coin_usd(address bt, address lp_tt, address lp_bt_f) public view returns(uint256)
	{
		LPT lpt=LPT(lp_tt);
		address _t = lpt.token0();
		uint256 b;
		uint8 bd = LPT(bt).decimals();
		if(bt == _t){(b,,) = lpt.getReserves();}
		else{(,b,) = lpt.getReserves();}
		uint256 ts = lpt.totalSupply();
		//pf: price of token in coin; 1e18 === 1coin
		uint256 pfu = p_t_coin_usd(lp_bt_f);
		uint256 p = (2*pfu * (b*10**(18-bd))) / ts;
		return p;
	}
	//Blob
	struct lpt_tt_coin_usd {address asset; address pool; uint8 dec; address lp_tt; address lp_tt_b; address lp_bt_f;}
	//Bank
	lpt_tt_coin_usd[] public _bankOf_lpt_tt_coin_usd;
	//Edit: Push & Pull
	function _pushBankOf_lpt_tt_coin_usd(address asset, address pool, uint8 dec, address lp_tt, address lp_tt_b, address lp_bt_f) public dao
	{_bankOf_lpt_tt_coin_usd.push(lpt_tt_coin_usd({asset: asset, pool: pool, dec: dec, lp_tt: lp_tt, lp_tt_b: lp_tt_b, lp_bt_f: lp_bt_f}));}
	function _pullBankOf_lpt_tt_coin_usd(uint n) public dao
	{
		_bankOf_lpt_tt_coin_usd[n]=_bankOf_lpt_tt_coin_usd[_bankOf_lpt_tt_coin_usd.length-1];
		_bankOf_lpt_tt_coin_usd.pop();
	}
	//Universal TVL Finder
	function tvlOf_lpt_tt_coin_usd(lpt_tt_coin_usd memory q) public view returns(uint256)
	{
		uint256 tvl = (
			LPT(q.asset).balanceOf(q.pool) * 10**(18-q.dec)
			* p_lpt_tt_coin_usd(q.lp_tt_b, q.lp_tt, q.lp_bt_f)
			) /1e18;
		return tvl;
	}
	//Self.TVL Finder
	function _tvlOf_lpt_tt_coin_usd(uint256 n) public view returns(uint256)
	{
		uint256 tvl = tvlOf_lpt_tt_coin_usd(_bankOf_lpt_tt_coin_usd[n]);
		return tvl;
	}
	//Self.TVL.total
	function _tvl_lpt_tt_coin_usd() public view returns(uint256)
	{
		uint256 tvl;
		for(uint i;i<_bankOf_lpt_tt_coin_usd.length;i++)
		{ tvl+= tvlOf_lpt_tt_coin_usd(_bankOf_lpt_tt_coin_usd[i]); }
		return tvl;
	}


	//WRAPPERS - Sub-TVL categories

	//POOL2
	//Blob
	//struct _bankOf_pool2_usd_ {
		//Cannot use nested arrays in solidity! Use plain variables.
		uint256[] _bankOf_pool2_usd_e_usd;
        uint256[] _bankOf_pool2_usd_coin_usd;
        uint256[] _bankOf_pool2_usd_t_usd;
        uint256[] _bankOf_pool2_usd_t_coin_usd;
        uint256[] _bankOf_pool2_usd_t_tt_usd;
        uint256[] _bankOf_pool2_usd_t_tt_coin_usd;
        uint256[] _bankOf_pool2_usd_lpt_usd;
        uint256[] _bankOf_pool2_usd_lpt_coin_usd;
		uint256[] _bankOf_pool2_usd_lpt_tt_usd;
		uint256[] _bankOf_pool2_usd_lpt_tt_coin_usd;
	//}
	//Bank
		//pool2_usd public _bankOf_pool2_usd;
	//Edit: Post Update
	function _puBankOf_pool2_usd(
		uint256[] memory _e_usd,
        uint256[] memory _coin_usd,
        uint256[] memory _t_usd,
        uint256[] memory _t_coin_usd,
        uint256[] memory _t_tt_usd,
        uint256[] memory _t_tt_coin_usd,
        uint256[] memory _lpt_usd,
        uint256[] memory _lpt_coin_usd,
		uint256[] memory _lpt_tt_usd,
		uint256[] memory _lpt_tt_coin_usd
	) public dao
	{
		_bankOf_pool2_usd_e_usd = _e_usd;
        _bankOf_pool2_usd_coin_usd = _coin_usd;
        _bankOf_pool2_usd_t_usd = _t_usd;
        _bankOf_pool2_usd_t_coin_usd = _t_coin_usd;
        _bankOf_pool2_usd_t_tt_usd = _t_tt_usd;
        _bankOf_pool2_usd_t_tt_coin_usd = _t_tt_coin_usd;
        _bankOf_pool2_usd_lpt_usd = _lpt_usd;
        _bankOf_pool2_usd_lpt_coin_usd = _lpt_coin_usd;
		_bankOf_pool2_usd_lpt_tt_usd = _lpt_tt_usd;
		_bankOf_pool2_usd_lpt_tt_coin_usd = _lpt_tt_coin_usd;
	}
	//Universal TVL Finder
		//Use Elementary "function public view tvlOf_...(...) returns(uint256){...}"
	//Self.TVL Finder
	function _tvlOf_pool2_usd() public view returns(uint256){return _tvl_pool2_usd();}
	//Self.TVL.total
	function _tvl_pool2_usd() public view returns(uint256)
	{
		uint256 tvl;


		for(uint i;i<_bankOf_pool2_usd_e_usd.length;i++)
		{ tvl+= _tvlOf_e_usd(_bankOf_pool2_usd_e_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_coin_usd.length;i++)
		{ tvl+= _tvlOf_coin_usd(_bankOf_pool2_usd_coin_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_t_usd.length;i++)
		{ tvl+= _tvlOf_t_usd(_bankOf_pool2_usd_t_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_t_coin_usd.length;i++)
		{ tvl+= _tvlOf_t_coin_usd(_bankOf_pool2_usd_t_coin_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_t_tt_usd.length;i++)
		{ tvl+= _tvlOf_t_tt_usd(_bankOf_pool2_usd_t_tt_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_t_tt_coin_usd.length;i++)
		{ tvl+= _tvlOf_t_tt_coin_usd(_bankOf_pool2_usd_t_tt_coin_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_lpt_usd.length;i++)
		{ tvl+= _tvlOf_lpt_usd(_bankOf_pool2_usd_lpt_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_lpt_coin_usd.length;i++)
		{ tvl+= _tvlOf_lpt_coin_usd(_bankOf_pool2_usd_lpt_coin_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_lpt_tt_usd.length;i++)
		{ tvl+= _tvlOf_lpt_tt_usd(_bankOf_pool2_usd_lpt_tt_usd[i]); }

		for(uint i;i<_bankOf_pool2_usd_lpt_tt_coin_usd.length;i++)
		{ tvl+= _tvlOf_lpt_tt_coin_usd(_bankOf_pool2_usd_lpt_tt_coin_usd[i]); }


		return tvl;
	}



	//STAKING
	//Blob
	//struct _bankOf_staking_usd_ {
		//Cannot use nested arrays in solidity! Use plain variables.
		uint256[] _bankOf_staking_usd_e_usd;
        uint256[] _bankOf_staking_usd_coin_usd;
        uint256[] _bankOf_staking_usd_t_usd;
        uint256[] _bankOf_staking_usd_t_coin_usd;
        uint256[] _bankOf_staking_usd_t_tt_usd;
        uint256[] _bankOf_staking_usd_t_tt_coin_usd;
        uint256[] _bankOf_staking_usd_lpt_usd;
        uint256[] _bankOf_staking_usd_lpt_coin_usd;
		uint256[] _bankOf_staking_usd_lpt_tt_usd;
		uint256[] _bankOf_staking_usd_lpt_tt_coin_usd;
	//}
	//Bank
		//staking_usd public _bankOf_staking_usd;
	//Edit: Post Update
	function _puBankOf_staking_usd(
		uint256[] memory _e_usd,
        uint256[] memory _coin_usd,
        uint256[] memory _t_usd,
        uint256[] memory _t_coin_usd,
        uint256[] memory _t_tt_usd,
        uint256[] memory _t_tt_coin_usd,
        uint256[] memory _lpt_usd,
        uint256[] memory _lpt_coin_usd,
		uint256[] memory _lpt_tt_usd,
		uint256[] memory _lpt_tt_coin_usd
	) public dao
	{
		_bankOf_staking_usd_e_usd = _e_usd;
        _bankOf_staking_usd_coin_usd = _coin_usd;
        _bankOf_staking_usd_t_usd = _t_usd;
        _bankOf_staking_usd_t_coin_usd = _t_coin_usd;
        _bankOf_staking_usd_t_tt_usd = _t_tt_usd;
        _bankOf_staking_usd_t_tt_coin_usd = _t_tt_coin_usd;
        _bankOf_staking_usd_lpt_usd = _lpt_usd;
        _bankOf_staking_usd_lpt_coin_usd = _lpt_coin_usd;
		_bankOf_staking_usd_lpt_tt_usd = _lpt_tt_usd;
		_bankOf_staking_usd_lpt_tt_coin_usd = _lpt_tt_coin_usd;
	}
	//Universal TVL Finder
		//Use Elementary "function public view tvlOf_...(...) returns(uint256){...}"
	//Self.TVL Finder
	function _tvlOf_staking_usd() public view returns(uint256){return _tvl_staking_usd();}
	//Self.TVL.total
	function _tvl_staking_usd() public view returns(uint256)
	{
		uint256 tvl;


		for(uint i;i<_bankOf_staking_usd_e_usd.length;i++)
		{ tvl+= _tvlOf_e_usd(_bankOf_staking_usd_e_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_coin_usd.length;i++)
		{ tvl+= _tvlOf_coin_usd(_bankOf_staking_usd_coin_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_t_usd.length;i++)
		{ tvl+= _tvlOf_t_usd(_bankOf_staking_usd_t_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_t_coin_usd.length;i++)
		{ tvl+= _tvlOf_t_coin_usd(_bankOf_staking_usd_t_coin_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_t_tt_usd.length;i++)
		{ tvl+= _tvlOf_t_tt_usd(_bankOf_staking_usd_t_tt_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_t_tt_coin_usd.length;i++)
		{ tvl+= _tvlOf_t_tt_coin_usd(_bankOf_staking_usd_t_tt_coin_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_lpt_usd.length;i++)
		{ tvl+= _tvlOf_lpt_usd(_bankOf_staking_usd_lpt_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_lpt_coin_usd.length;i++)
		{ tvl+= _tvlOf_lpt_coin_usd(_bankOf_staking_usd_lpt_coin_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_lpt_tt_usd.length;i++)
		{ tvl+= _tvlOf_lpt_tt_usd(_bankOf_staking_usd_lpt_tt_usd[i]); }

		for(uint i;i<_bankOf_staking_usd_lpt_tt_coin_usd.length;i++)
		{ tvl+= _tvlOf_lpt_tt_coin_usd(_bankOf_staking_usd_lpt_tt_coin_usd[i]); }


		return tvl;
	}

	//EXPORTS
	//Self.TVL.pool2
	function pool2() public view returns(uint256){_tvl_pool2_usd();}
	//Self.TVL.staking
	function staking() public view returns(uint256){_tvl_staking_usd();}
	//Self.TVL.global
	function tvl() public view returns(uint256)
	{
		return(0
            + _tvl_e_usd()
            + _tvl_coin_usd()
            + _tvl_t_usd()
            + _tvl_t_coin_usd()
            + _tvl_t_tt_usd()
            + _tvl_t_tt_coin_usd()
            + _tvl_lpt_usd()
            + _tvl_lpt_coin_usd()
			+ _tvl_lpt_tt_usd()
			+ _tvl_lpt_tt_coin_usd()
        );
	}

    //For Donations
	/*
     * We would be immensely pleased if you use this code to calculate on-chain TVL
        in your Decentralized Finance and Smart Contract Blockchain projects.
        If you have any suggestions or feedback, do create a pull request or write
        to us directly at any of our public Community channels.

        Cheers,
        Sam [x4mas | sam4x]
        Architect, Guru Network

	 * Community Mediums:
		https://discord.com/invite/QpyfMarNrV
		https://twitter.com/kucino
		https://t.me/kccguru

	 * Other Products:
		KUCINO CASINO - The First and Most used Casino of KCC
		ELITE - ftm.guru is an indie growth-hacker for Fantom, providing numerous tools for
		Opera users, institutions & developers alike.

     * Please keep this notice intact if you fork, reuse or derive codes from this contract.

	 */
	function rescue(address tokenAddress, uint256 tokens) public dao
	{
		if(tokenAddress==address(0)) {DAO.call{value:tokens}("");}
		else if(tokenAddress!=address(0)) { LPT(tokenAddress).transfer(DAO, tokens);}
	}
	function reset() public dao{selfdestruct(DAO);}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[3]","name":"uwl","type":"address[3]"},{"internalType":"uint8","name":"d","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"DAO","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_coin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_e_usd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_lpt_coin_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_lpt_tt_coin_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_lpt_tt_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_lpt_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_t_coin_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_t_tt_coin_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_t_tt_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_bankOf_t_usd","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_e_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_tt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_tt_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_tt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_tt_coin_usd","type":"uint256[]"}],"name":"_puBankOf_pool2_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_e_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_tt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_t_tt_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_coin_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_tt_usd","type":"uint256[]"},{"internalType":"uint256[]","name":"_lpt_tt_coin_usd","type":"uint256[]"}],"name":"_puBankOf_staking_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_coin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_e_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_lpt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_lpt_tt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_lpt_tt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_lpt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_t_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_t_tt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_t_tt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_pullBankOf_t_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"_pushBankOf_coin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"_pushBankOf_e_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"name":"_pushBankOf_lpt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"name":"_pushBankOf_lpt_tt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"name":"_pushBankOf_lpt_tt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"name":"_pushBankOf_lpt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"name":"_pushBankOf_t_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"name":"_pushBankOf_t_tt_coin_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"name":"_pushBankOf_t_tt_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"name":"_pushBankOf_t_usd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_e_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_lpt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_lpt_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_lpt_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_lpt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvlOf_pool2_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvlOf_staking_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_t_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_t_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_t_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"_tvlOf_t_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_e_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_lpt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_lpt_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_lpt_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_lpt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_pool2_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_staking_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_t_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_t_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_t_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tvl_t_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinusd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"}],"name":"p_lpt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bt","type":"address"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"name":"p_lpt_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bt","type":"address"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"name":"p_lpt_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"name":"p_lpt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"}],"name":"p_t_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"qt","type":"address"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"name":"p_t_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"qt","type":"address"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"name":"p_t_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"name":"p_t_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[3]","name":"uwl","type":"address[3]"},{"internalType":"uint8","name":"d","type":"uint8"}],"name":"setUWLD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tvl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"q","type":"address"}],"name":"tvlOf_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"q","type":"address"}],"name":"tvlOf_e_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"internalType":"struct tvlGuru.lpt_coin_usd","name":"q","type":"tuple"}],"name":"tvlOf_lpt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"internalType":"struct tvlGuru.lpt_tt_coin_usd","name":"q","type":"tuple"}],"name":"tvlOf_lpt_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_tt_b","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"internalType":"struct tvlGuru.lpt_tt_usd","name":"q","type":"tuple"}],"name":"tvlOf_lpt_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"internalType":"struct tvlGuru.lpt_usd","name":"q","type":"tuple"}],"name":"tvlOf_lpt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp","type":"address"}],"internalType":"struct tvlGuru.t_coin_usd","name":"q","type":"tuple"}],"name":"tvlOf_t_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_f","type":"address"}],"internalType":"struct tvlGuru.t_tt_coin_usd","name":"q","type":"tuple"}],"name":"tvlOf_t_tt_coin_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"lp_tt","type":"address"},{"internalType":"address","name":"lp_bt_u","type":"address"},{"internalType":"address","name":"u","type":"address"}],"internalType":"struct tvlGuru.t_tt_usd","name":"q","type":"tuple"}],"name":"tvlOf_t_tt_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint8","name":"dec","type":"uint8"},{"internalType":"address","name":"u","type":"address"},{"internalType":"address","name":"lp","type":"address"}],"internalType":"struct tvlGuru.t_usd","name":"q","type":"tuple"}],"name":"tvlOf_t_usd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usd_d","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wcoin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wcoinusd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620059d5380380620059d58339810160408190526200003491620000e9565b600380546001600160a01b031916331790556200005282826200005a565b505062000193565b6003546001600160a01b031633146200007257600080fd5b8151600080546001600160a01b03199081166001600160a01b039384161790915560208401516001805483169184169190911790556040909301516002805490941691161760ff60a01b1916600160a01b60ff9290921691909102179055565b805160ff81168114620000e457600080fd5b919050565b60008060808385031215620000fc578182fd5b83601f8401126200010b578182fd5b604051606081016001600160401b03811182821017156200012857fe5b604052808460608101878111156200013e578586fd5b855b6003811015620001775782516001600160a01b038116811462000161578788fd5b8452602093840193929092019160010162000140565b508395506200018681620000d2565b9450505050509250929050565b61583280620001a36000396000f3fe608060405234801561001057600080fd5b50600436106105c15760003560e01c80638a6de180116102f8578063c2f6b5751161019c578063e5328e06116100ee578063edb0f3b0116100a2578063f834f8921161007c578063f834f89214610b6a578063fa6efffa14610b7d578063fcc2366314610b85576105c1565b8063edb0f3b014610b31578063f359387b14610b44578063f72fa5f614610b57576105c1565b8063e79dd3c6116100d3578063e79dd3c614610b0e578063ea3fdcca14610b16578063ebb573af14610b29576105c1565b8063e5328e0614610ae1578063e6a1a23814610ae9576105c1565b8063d2bb78b211610150578063d6b532a51161012a578063d6b532a514610abe578063d6d2209714610ad1578063d826f88f14610ad9576105c1565b8063d2bb78b214610a90578063d52e6e7714610aa3578063d63a6ccd14610ab6576105c1565b8063cff39da911610181578063cff39da914610a62578063d0c67d7e14610a75578063d27a7ab014610a88576105c1565b8063c2f6b57514610a29578063cb0faa3514610a3c576105c1565b8063a52dc97311610255578063b4be677611610209578063b8962768116101e3578063b8962768146109fb578063b941d3e014610a0e578063ba6a4d8d14610a16576105c1565b8063b4be6776146109c2578063b51cfde0146109d5578063b723be3a146109e8576105c1565b8063aee1b8db1161023a578063aee1b8db14610994578063b1e9c811146109a7578063b3fe6450146109ba576105c1565b8063a52dc9731461096e578063aa8aed7514610981576105c1565b806396ce4c0d116102ac57806398fabd3a1161029157806398fabd3a146109565780639c4d130b1461095e578063a0f4fb9314610966576105c1565b806396ce4c0d1461093b5780639724e85414610943576105c1565b80638e7ed9ae116102dd5780638e7ed9ae146109025780638fc20e84146109155780639102993c14610928576105c1565b80638a6de180146108dc5780638e15a9ed146108ef576105c1565b806336b340f61161046a578063688ab24a116103bc57806370f0b51f1161037057806381cc06381161034a57806381cc0638146108a3578063829f26b3146108b657806386528038146108c9576105c1565b806370f0b51f146108755780637a4e4ecf1461087d57806381158c2f14610890576105c1565b80636c4ceb88116103a15780636c4ceb881461083c5780636d810ee31461084f5780636ebf42fd14610862576105c1565b8063688ab24a1461082c57806369bbf0c714610834576105c1565b80634cf088d91161041e57806361bc4c5c116103f857806361bc4c5c146107fe578063643385de1461081157806365efd63614610824576105c1565b80634cf088d9146107ce5780635afcc15e146107d6578063600422b3146107e9576105c1565b806342a7549b1161044f57806342a7549b146107a05780634769204a146107b35780634c160c38146107c6576105c1565b806336b340f61461077a5780633d7712b51461078d576105c1565b8063245e5cfa116105235780632b1a0de6116104d75780632dbf73b8116104b15780632dbf73b8146107415780633328130514610754578063346119a114610767576105c1565b80632b1a0de6146107065780632b667a8f146107195780632bffab011461072c576105c1565b806327f8adf71161050857806327f8adf7146106ac57806328e49a1f146106d057806329f72c90146106f3576105c1565b8063245e5cfa1461068657806324e5d31314610699576105c1565b80631498124b1161057a57806316b808691161055f57806316b808691461064d57806317749dbc146106605780631e2b612c14610673576105c1565b80631498124b14610630578063159fb69214610645576105c1565b80630b91ef93116105ab5780630b91ef93146106025780630d0fb49f146106155780631447681414610628576105c1565b80623e2813146105c65780630692b801146105ef575b600080fd5b6105d96105d4366004615521565b610b98565b6040516105e691906157be565b60405180910390f35b6105d96105fd36600461565e565b610c56565b6105d961061036600461553c565b610cf3565b6105d961062336600461565e565b610d16565b6105d9610da0565b61064361063e36600461565e565b610fec565b005b6105d961112b565b61064361065b36600461524a565b6112d2565b6105d961066e36600461565e565b61149f565b6105d9610681366004615600565b611529565b61064361069436600461565e565b611547565b6105d96106a7366004615004565b611626565b6106bf6106ba36600461565e565b61169a565b6040516105e6959493929190615708565b6106e36106de36600461565e565b6116f1565b6040516105e694939291906156da565b6105d961070136600461565e565b61173e565b6105d961071436600461565e565b611770565b6106e361072736600461565e565b6117e2565b6107346117f2565b6040516105e691906157c7565b61064361074f366004615159565b611802565b6105d9610762366004615004565b611956565b61064361077536600461565e565b611b3d565b610643610788366004615119565b611c9c565b6105d961079b3660046150be565b611db4565b6106436107ae36600461530a565b612070565b6105d96107c136600461565e565b6120e7565b6105d9612165565b6105d9612191565b6105d96107e436600461565e565b61219f565b6107f1612211565b6040516105e691906156ad565b61064361080c3660046151c9565b612220565b61064361081f366004615159565b6123b1565b6107f1612505565b6105d9612514565b6105d9612540565b6105d961084a36600461503c565b61256c565b6105d961085d366004615557565b6129af565b6106bf61087036600461565e565b6129d7565b6105d96129e7565b61064361088b3660046152df565b612a7e565b61064361089e366004615119565b612b9d565b6107f16108b136600461565e565b612cb5565b6105d96108c4366004615074565b612cdf565b6106436108d736600461565e565b613037565b6106436108ea366004615004565b613156565b6106436108fd36600461565e565b6131bf565b610643610910366004615159565b61329e565b6106436109233660046153a1565b6133f2565b6105d9610936366004615600565b6134dd565b6105d9613500565b6106bf61095136600461565e565b61350f565b6107f161351f565b6105d961352e565b6105d961355a565b61064361097c36600461565e565b613586565b61064361098f366004615004565b613705565b6106436109a23660046153a1565b61376e565b6106436109b536600461565e565b61384b565b6105d9613914565b6106436109d03660046151c9565b61393f565b6107f16109e336600461565e565b613ad0565b6106436109f636600461565e565b613ae0565b6105d9610a09366004615600565b613b8d565b6105d9613bab565b6105d9610a243660046150be565b613bb5565b6105d9610a3736600461565e565b613efc565b610a4f610a4a36600461565e565b613f0f565b6040516105e6979695949392919061577a565b6105d9610a7036600461565e565b613f78565b6105d9610a8336600461553c565b613ff6565b6105d961401e565b6105d9610a9e366004615004565b6141c4565b6105d9610ab1366004615521565b6141f1565b6107f161420a565b6105d9610acc36600461565e565b614219565b6105d9614246565b610643614272565b6105d9614297565b610afc610af736600461565e565b6142f7565b6040516105e69695949392919061573d565b6105d9614356565b610afc610b2436600461565e565b614360565b6105d9614370565b6105d9610b3f366004615004565b61439c565b610643610b5236600461565e565b614684565b6105d9610b65366004615074565b614779565b610643610b7836600461565e565b614a33565b6105d9614abb565b6105d9610b9336600461503c565b614ae7565b600080670de0b6b3a7640000610bb1846060015161439c565b846040015160120360ff16600a0a85600001516001600160a01b03166370a0823187602001516040518263ffffffff1660e01b8152600401610bf391906156ad565b60206040518083038186803b158015610c0b57600080fd5b505afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c439190615676565b020281610c4c57fe5b049150505b919050565b600080610cec600c8481548110610c6957fe5b60009182526020918290206040805160e08101825260069390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff16918301919091526002810154831660608301526003810154831660808301526004810154831660a08301526005015490911660c08201526129af565b9392505050565b600080670de0b6b3a7640000610bb1846080015185606001518660a00151614779565b600080610cec60088481548110610d2957fe5b60009182526020918290206040805160c08101825260059390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff16918301919091526002810154831660608301526003810154831660808301526004015490911660a0820152613ff6565b60008060005b600e54811015610ddc57610dd0600e8281548110610dc057fe5b9060005260206000200154614219565b90910190600101610da6565b5060005b600f54811015610e1657610e0a600f8281548110610dfa57fe5b906000526020600020015461173e565b90910190600101610de0565b5060005b601054811015610e5057610e4460108281548110610e3457fe5b90600052602060002001546120e7565b90910190600101610e1a565b5060005b601154811015610e8a57610e7e60118281548110610e6e57fe5b906000526020600020015461219f565b90910190600101610e54565b5060005b601254811015610ec457610eb860128281548110610ea857fe5b9060005260206000200154610d16565b90910190600101610e8e565b5060005b601354811015610efe57610ef260138281548110610ee257fe5b9060005260206000200154613f78565b90910190600101610ec8565b5060005b601454811015610f3857610f2c60148281548110610f1c57fe5b9060005260206000200154613efc565b90910190600101610f02565b5060005b601554811015610f7257610f6660158281548110610f5657fe5b9060005260206000200154611770565b90910190600101610f3c565b5060005b601654811015610fac57610fa060168281548110610f9057fe5b9060005260206000200154610c56565b90910190600101610f76565b5060005b601754811015610fe657610fda60178281548110610fca57fe5b906000526020600020015461149f565b90910190600101610fb0565b50905090565b6003546001600160a01b0316331461100357600080fd5b60068054600019810190811061101557fe5b90600052602060002090600402016006828154811061103057fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b19909116179055600280850154908301805483169185169190911790556003938401549390910180549091169290911691909117905560068054806110cb57fe5b60008281526020902060046000199092019182020180546001600160a01b0319908116825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805482169055600390910180549091169055905550565b600254604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691839182918491630902f1ac91600480820192606092909190829003018186803b15801561119057600080fd5b505afa1580156111a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c8919061561b565b506001600160701b031691506001600160701b031691506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112529190615020565b6001546001600160a01b0390811691161461129a5781600260149054906101000a900460ff1660120360ff16600a0a8402670de0b6b3a7640000028161129457fe5b046112c9565b82600260149054906101000a900460ff1660120360ff16600a0a8302670de0b6b3a764000002816112c757fe5b045b94505050505090565b6003546001600160a01b031633146112e957600080fd5b6040805160e0810182526001600160a01b0398891681529688166020880190815260ff968716918801918252948816606088019081529388166080880190815292881660a0880190815291881660c08801908152600c8054600181018255600091909152975160069098027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c781018054998b166001600160a01b03199a8b1617905595517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c8870180549351909816600160a01b0260ff60a01b19918b16938a1693909317169190911790955591517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c984018054918816918716919091179055517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8ca83018054918716918616919091179055517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8cb8201805491861691851691909117905590517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8cc9091018054919093169116179055565b600080610cec600d84815481106114b257fe5b60009182526020918290206040805160c08101825260059390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff16918301919091526002810154831660608301526003810154831660808301526004015490911660a0820152610cf3565b600080670de0b6b3a7640000610bb18460600151856080015161256c565b6003546001600160a01b0316331461155e57600080fd5b60098054600019810190811061157057fe5b90600052602060002090600402016009828154811061158b57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b19909116179055600280850154908301805483169185169190911790556003938401549390910180549091169290911691909117905560098054806110cb57fe5b600080826001600160a01b031663e5328e066040518163ffffffff1660e01b815260040160206040518083038186803b15801561166257600080fd5b505afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190615676565b600981815481106116aa57600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b03928316945082821693600160a01b90920460ff1692918216911685565b6007818154811061170157600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03918216935081831692600160a01b900460ff16911684565b600061176a6005838154811061175057fe5b6000918252602090912001546001600160a01b03166141c4565b92915050565b600080610cec600b848154811061178357fe5b60009182526020918290206040805160808101825260039390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff16918301919091526002015490911660608201526141f1565b600b818154811061170157600080fd5b600254600160a01b900460ff1681565b6003546001600160a01b0316331461181957600080fd5b6040805160a0810182526001600160a01b0396871681529486166020860190815260ff9485169186019182529286166060860190815291861660808601908152600a8054600181018255600091909152955160049096027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8810180549789166001600160a01b031998891617905593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9850180549351909616600160a01b0260ff60a01b19918916938816939093171691909117909355517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa8201805491861691851691909117905590517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2ab9091018054919093169116179055565b600080829050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561199857600080fd5b505afa1580156119ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d0919061561b565b506001600160701b031691506001600160701b031691506000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2257600080fd5b505afa158015611a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5a9190615676565b90506000846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acf9190615020565b6001546001600160a01b03908116911614611afd578183671bc16d674ec800000281611af757fe5b04611b12565b8184671bc16d674ec800000281611b1057fe5b045b90506000670de0b6b3a7640000611b2761112b565b830281611b3057fe5b0498975050505050505050565b6003546001600160a01b03163314611b5457600080fd5b600880546000198101908110611b6657fe5b906000526020600020906005020160088281548110611b8157fe5b60009182526020909120825460059092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b199091161790556002808501549083018054831691851691909117905560038085015490830180548316918516919091179055600493840154939091018054909116929091169190911790556008805480611c3257fe5b60008281526020902060056000199092019182020180546001600160a01b0319908116825560018201805474ffffffffffffffffffffffffffffffffffffffffff191690556002820180548216905560038201805482169055600490910180549091169055905550565b6003546001600160a01b03163314611cb357600080fd5b604080516080810182526001600160a01b0395861681529385166020850190815260ff9384169185019182529185166060850190815260078054600181018255600091909152945160039095027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549688166001600160a01b031997881617905592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c689840180549351909516600160a01b0260ff60a01b1991881693871693909317169190911790925590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a9091018054919093169116179055565b6000808490506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611df557600080fd5b505afa158015611e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2d9190615020565b9050600080886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6b57600080fd5b505afa158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea3919061568e565b9050826001600160a01b0316896001600160a01b03161415611f4257836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611ef857600080fd5b505afa158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f30919061561b565b50506001600160701b03169150611fc1565b836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611f7b57600080fd5b505afa158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb3919061561b565b506001600160701b03169250505b6000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ffc57600080fd5b505afa158015612010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120349190615676565b90506000612042888a61256c565b90506000828460120360ff16600a0a860283600202028161205f57fe5b049c9b505050505050505050505050565b6003546001600160a01b0316331461208757600080fd5b8151600080546001600160a01b03199081166001600160a01b039384161790915560208401516001805483169184169190911790556040909301516002805490941691161760ff60a01b1916600160a01b60ff9290921691909102179055565b600080610cec600684815481106120fa57fe5b60009182526020918290206040805160a08101825260049390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff1691830191909152600281015483166060830152600301549091166080820152611529565b60008060005b600654811015610fe657612185600682815481106120fa57fe5b9091019060010161216b565b600061219b61401e565b5090565b600080610cec600784815481106121b257fe5b60009182526020918290206040805160808101825260039390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff1691830191909152600201549091166060820152610b98565b6001546001600160a01b031681565b6003546001600160a01b0316331461223757600080fd5b6040805160c0810182526001600160a01b0397881681529587166020870190815260ff958616918701918252938716606087019081529287166080870190815291871660a08701908152600d8054600181018255600091909152965160059097027fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb581018054988a166001600160a01b0319998a1617905594517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb6860180549351909716600160a01b0260ff60a01b19918a1693891693909317169190911790945590517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb783018054918716918616919091179055517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb88201805491861691851691909117905590517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb99091018054919093169116179055565b6003546001600160a01b031633146123c857600080fd5b6040805160a0810182526001600160a01b0396871681529486166020860190815260ff948516918601918252928616606086019081529186166080860190815260068054600181018255600091909152955160049096027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f810180549789166001600160a01b031998891617905593517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40850180549351909616600160a01b0260ff60a01b19918916938816939093171691909117909355517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418201805491861691851691909117905590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d429091018054919093169116179055565b6002546001600160a01b031681565b60008060005b600d54811015610fe657612534600d82815481106114b257fe5b9091019060010161251a565b60008060005b600854811015610fe65761256060088281548110610d2957fe5b90910190600101612546565b600080829050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156125ae57600080fd5b505afa1580156125c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e6919061561b565b506001600160701b031691506001600160701b031691506000836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561263857600080fd5b505afa15801561264c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126709190615020565b90506000816001600160a01b0316886001600160a01b0316141561281b576000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c957600080fd5b505afa1580156126dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612701919061568e565b90506000866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561273e57600080fd5b505afa158015612752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127769190615020565b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ae57600080fd5b505afa1580156127c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e6919061568e565b90508060120360ff16600a0a86028260120360ff16600a0a8602670de0b6b3a7640000028161281157fe5b04925050506129a4565b6000856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561285657600080fd5b505afa15801561286a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288e9190615020565b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c657600080fd5b505afa1580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe919061568e565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561293b57600080fd5b505afa15801561294f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612973919061568e565b90508060120360ff16600a0a85028260120360ff16600a0a8702670de0b6b3a7640000028161299e57fe5b04925050505b979650505050505050565b600080670de0b6b3a7640000610bb1846080015185606001518660a001518760c00151611db4565b600a81815481106116aa57600080fd5b60008060005b600a54811015610fe657612a72600a8281548110612a0757fe5b60009182526020918290206040805160a08101825260049390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff1691830191909152600281015483166060830152600301549091166080820152613b8d565b909101906001016129ed565b6003546001600160a01b03163314612a9557600080fd5b6001600160a01b038216612b0a576003546040516001600160a01b03909116908290612ac0906156aa565b60006040518083038185875af1925050503d8060008114612afd576040519150601f19603f3d011682016040523d82523d6000602084013e612b02565b606091505b505050612b99565b6001600160a01b03821615612b99576003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038481169263a9059cbb92612b66929091169085906004016156c1565b600060405180830381600087803b158015612b8057600080fd5b505af1158015612b94573d6000803e3d6000fd5b505050505b5050565b6003546001600160a01b03163314612bb457600080fd5b604080516080810182526001600160a01b0395861681529385166020850190815260ff93841691850191825291851660608501908152600b8054600181018255600091909152945160039095027f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9810180549688166001600160a01b031997881617905592517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba840180549351909516600160a01b0260ff60a01b1991881693871693909317169190911790925590517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb9091018054919093169116179055565b60058181548110612cc557600080fd5b6000918252602090912001546001600160a01b0316905081565b6000808390506000806000806000856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015612d2657600080fd5b505afa158015612d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5e9190615020565b90506000816001600160a01b03168b6001600160a01b03161415612e7657866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612db557600080fd5b505afa158015612dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ded9190615020565b9050866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612e2857600080fd5b505afa158015612e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e60919061561b565b506001600160701b039182169750169450612efc565b819050866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612eb257600080fd5b505afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061561b565b506001600160701b0390811697501694505b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612f3557600080fd5b505afa158015612f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6d919061568e565b9350806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612fa857600080fd5b505afa158015612fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe0919061568e565b92506000612fed8a61439c565b90506000670de0b6b3a764000061300261112b565b60ff601288900316600a0a8a8102908a0285028161301c57fe5b04028161302557fe5b049d9c50505050505050505050505050565b6003546001600160a01b0316331461304e57600080fd5b60078054600019810190811061306057fe5b90600052602060002090600302016007828154811061307b57fe5b60009182526020909120825460039092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b1990911617905560029384015493909101805490911692909116919091179055600780548061310057fe5b60008281526020902060036000199092019182020180546001600160a01b0319908116825560018201805474ffffffffffffffffffffffffffffffffffffffffff19169055600290910180549091169055905550565b6003546001600160a01b0316331461316d57600080fd5b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146131d657600080fd5b600a805460001981019081106131e857fe5b9060005260206000209060040201600a828154811061320357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b199091161790556002808501549083018054831691851691909117905560039384015493909101805490911692909116919091179055600a8054806110cb57fe5b6003546001600160a01b031633146132b557600080fd5b6040805160a0810182526001600160a01b0396871681529486166020860190815260ff948516918601918252928616606086019081529186166080860190815260098054600181018255600091909152955160049096027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af810180549789166001600160a01b031998891617905593517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b0850180549351909616600160a01b0260ff60a01b19918916938816939093171691909117909355517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18201805491861691851691909117905590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b29091018054919093169116179055565b6003546001600160a01b0316331461340957600080fd5b895161341c90600e9060208d0190614d3c565b50885161343090600f9060208c0190614d3c565b5087516134449060109060208b0190614d3c565b5086516134589060119060208a0190614d3c565b50855161346c906012906020890190614d3c565b508451613480906013906020880190614d3c565b508351613494906014906020870190614d3c565b5082516134a8906015906020860190614d3c565b5081516134bc906016906020850190614d3c565b5080516134d0906017906020840190614d3c565b5050505050505050505050565b600080670de0b6b3a7640000610bb1846000015185606001518660800151612cdf565b600061350a610da0565b905090565b600681815481106116aa57600080fd5b6003546001600160a01b031681565b60008060005b600b54811015610fe65761354e600b828154811061178357fe5b90910190600101613534565b60008060005b600c54811015610fe65761357a600c8281548110610c6957fe5b90910190600101613560565b6003546001600160a01b0316331461359d57600080fd5b600c805460001981019081106135af57fe5b9060005260206000209060060201600c82815481106135ca57fe5b60009182526020909120825460069092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b1990911617905560028085015490830180548316918516919091179055600380850154908301805483169185169190911790556004808501549083018054831691851691909117905560059384015493909101805490911692909116919091179055600c80548061369157fe5b60008281526020902060066000199092019182020180546001600160a01b0319908116825560018201805474ffffffffffffffffffffffffffffffffffffffffff19169055600282018054821690556003820180548216905560048201805482169055600590910180549091169055905550565b6003546001600160a01b0316331461371c57600080fd5b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461378557600080fd5b89516137989060189060208d0190614d3c565b5088516137ac9060199060208c0190614d3c565b5087516137c090601a9060208b0190614d3c565b5086516137d490601b9060208a0190614d3c565b5085516137e890601c906020890190614d3c565b5084516137fc90601d906020880190614d3c565b50835161381090601e906020870190614d3c565b50825161382490601f906020860190614d3c565b5081516138379060209081850190614d3c565b5080516134d0906021906020840190614d3c565b6003546001600160a01b0316331461386257600080fd5b600b8054600019810190811061387457fe5b9060005260206000209060030201600b828154811061388f57fe5b60009182526020909120825460039092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b1990911617905560029384015493909101805490911692909116919091179055600b80548061310057fe5b600080805b600554811015610fe6576139336005828154811061175057fe5b90910190600101613919565b6003546001600160a01b0316331461395657600080fd5b6040805160c0810182526001600160a01b0397881681529587166020870190815260ff958616918701918252938716606087019081529287166080870190815291871660a0870190815260088054600181018255600091909152965160059097027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee381018054988a166001600160a01b0319998a1617905594517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4860180549351909716600160a01b0260ff60a01b19918a1693891693909317169190911790945590517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee583018054918716918616919091179055517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee68201805491861691851691909117905590517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee79091018054919093169116179055565b60048181548110612cc557600080fd5b6003546001600160a01b03163314613af757600080fd5b600580546000198101908110613b0957fe5b600091825260209091200154600580546001600160a01b039092169183908110613b2f57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506005805480613b6857fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b600080670de0b6b3a7640000610bb184608001518560800151614ae7565b600061219b610da0565b6000808490506000806000806000856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015613bfc57600080fd5b505afa158015613c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c349190615020565b90506000816001600160a01b03168c6001600160a01b03161415613d4c57866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015613c8b57600080fd5b505afa158015613c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc39190615020565b9050866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d36919061561b565b506001600160701b039182169750169450613dd2565b819050866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613d8857600080fd5b505afa158015613d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dc0919061561b565b506001600160701b0390811697501694505b8b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613e0b57600080fd5b505afa158015613e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e43919061568e565b9350806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613e7e57600080fd5b505afa158015613e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb6919061568e565b92506000613ec48a8c61256c565b905060008560120360ff16600a0a88028560120360ff16600a0a8802830281613ee957fe5b049e9d5050505050505050505050505050565b600080610cec600a8481548110612a0757fe5b600c8181548110613f1f57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160a01b03948516965084841695600160a01b90940460ff16949283169391831692918216911687565b600080610cec60098481548110613f8b57fe5b60009182526020918290206040805160a08101825260049390930290910180546001600160a01b039081168452600182015480821695850195909552600160a01b90940460ff16918301919091526002810154831660608301526003015490911660808201526134dd565b600080670de0b6b3a7640000610bb18460000151856060015186608001518760a00151613bb5565b60008060005b60185481101561404a5761403e60188281548110610dc057fe5b90910190600101614024565b5060005b6019548110156140745761406860198281548110610dfa57fe5b9091019060010161404e565b5060005b601a5481101561409e57614092601a8281548110610e3457fe5b90910190600101614078565b5060005b601b548110156140c8576140bc601b8281548110610e6e57fe5b909101906001016140a2565b5060005b601c548110156140f2576140e6601c8281548110610ea857fe5b909101906001016140cc565b5060005b601d5481101561411c57614110601d8281548110610ee257fe5b909101906001016140f6565b5060005b601e548110156141465761413a601e8281548110610f1c57fe5b90910190600101614120565b5060005b601f5481101561417057614164601f8281548110610f5657fe5b9091019060010161414a565b5060005b60205481101561419a5761418e60208281548110610f9057fe5b90910190600101614174565b5060005b602154811015610fe6576141b860218281548110610fca57fe5b9091019060010161419e565b6000670de0b6b3a76400006141d761112b565b836001600160a01b03163102816141ea57fe5b0492915050565b600080670de0b6b3a7640000610bb18460600151611956565b6000546001600160a01b031681565b600080610cec6004848154811061422c57fe5b6000918252602090912001546001600160a01b0316611626565b60008060005b600754811015610fe657614266600782815481106121b257fe5b9091019060010161424c565b6003546001600160a01b0316331461428957600080fd5b6003546001600160a01b0316ff5b60006142a1612514565b6142a961355a565b6142b161352e565b6142b96129e7565b6142c1614370565b6142c9612540565b6142d1614246565b6142d9612165565b6142e1613914565b6142e9614abb565b010101010101010101905090565b6008818154811061430757600080fd5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b03938416955083831694600160a01b90930460ff1693918216928216911686565b600061350a61401e565b600d818154811061430757600080fd5b60008060005b600954811015610fe65761439060098281548110613f8b57fe5b90910190600101614376565b600080829050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156143de57600080fd5b505afa1580156143f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614416919061561b565b506001600160701b031691506001600160701b031691506000806000856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561446b57600080fd5b505afa15801561447f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a39190615020565b6001549091506001600160a01b03808316911614156145c557856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156144f557600080fd5b505afa158015614509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452d9190615020565b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561456557600080fd5b505afa158015614579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061459d919061568e565b91508160120360ff16600a0a850284670de0b6b3a764000002816145bd57fe5b04925061465a565b806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156145fe57600080fd5b505afa158015614612573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614636919061568e565b91508160120360ff16600a0a840285670de0b6b3a7640000028161465657fe5b0492505b6000670de0b6b3a764000061466d61112b565b85028161467657fe5b049998505050505050505050565b6003546001600160a01b0316331461469b57600080fd5b600d805460001981019081106146ad57fe5b9060005260206000209060050201600d82815481106146c857fe5b60009182526020909120825460059092020180546001600160a01b03199081166001600160a01b03938416178255600180850180549184018054841692861692909217808355905460ff600160a01b91829004160260ff60a01b19909116179055600280850154908301805483169185169190911790556003808501549083018054831691851691909117905560049384015493909101805490911692909116919091179055600d805480611c3257fe5b6000808390506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156147ba57600080fd5b505afa1580156147ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147f29190615020565b9050600080876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561483057600080fd5b505afa158015614844573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614868919061568e565b9050826001600160a01b0316886001600160a01b0316141561490757836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156148bd57600080fd5b505afa1580156148d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148f5919061561b565b50506001600160701b03169150614986565b836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561494057600080fd5b505afa158015614954573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614978919061561b565b506001600160701b03169250505b6000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156149c157600080fd5b505afa1580156149d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149f99190615676565b90506000614a068861439c565b90506000828460120360ff16600a0a8602836002020281614a2357fe5b049b9a5050505050505050505050565b6003546001600160a01b03163314614a4a57600080fd5b600480546000198101908110614a5c57fe5b600091825260209091200154600480546001600160a01b039092169183908110614a8257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506004805480613b6857fe5b60008060005b600454811015610fe657614adb6004828154811061422c57fe5b90910190600101614ac1565b600080829050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015614b2957600080fd5b505afa158015614b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b61919061561b565b506001600160701b031691506001600160701b031691506000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015614bb357600080fd5b505afa158015614bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614beb9190615676565b90506000876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015614c2857600080fd5b505afa158015614c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c60919061568e565b90506000856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015614c9d57600080fd5b505afa158015614cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cd59190615020565b6001600160a01b0316896001600160a01b031614614d1157828260120360ff16600a0a8502671bc16d674ec800000281614d0b57fe5b04614d2f565b828260120360ff16600a0a8602671bc16d674ec80000028161467657fe5b9998505050505050505050565b828054828255906000526020600020908101928215614d77579160200282015b82811115614d77578251825591602001919060010190614d5c565b5061219b9291505b8082111561219b5760008155600101614d7f565b8035610c51816157d5565b600082601f830112614dae578081fd5b8135602067ffffffffffffffff80831115614dc557fe5b81830260405183828201018181108482111715614dde57fe5b60405284815283810192508684018288018501891015614dfc578687fd5b8692505b85831015614e1e578035845292840192600192909201918401614e00565b50979650505050505050565b600060808284031215614e3b578081fd5b6040516080810181811067ffffffffffffffff82111715614e5857fe5b6040529050808235614e69816157d5565b81526020830135614e79816157d5565b60208201526040830135614e8c816157ed565b60408201526060830135614e9f816157d5565b6060919091015292915050565b600060c08284031215614ebd578081fd5b60405160c0810181811067ffffffffffffffff82111715614eda57fe5b6040529050808235614eeb816157d5565b81526020830135614efb816157d5565b60208201526040830135614f0e816157ed565b6040820152614f1f60608401614d93565b6060820152614f3060808401614d93565b6080820152614f4160a08401614d93565b60a08201525092915050565b600060a08284031215614f5e578081fd5b60405160a0810181811067ffffffffffffffff82111715614f7b57fe5b6040529050808235614f8c816157d5565b81526020830135614f9c816157d5565b60208201526040830135614faf816157ed565b60408201526060830135614fc2816157d5565b60608201526080830135614fd5816157d5565b6080919091015292915050565b80516001600160701b0381168114610c5157600080fd5b8035610c51816157ed565b600060208284031215615015578081fd5b8135610cec816157d5565b600060208284031215615031578081fd5b8151610cec816157d5565b6000806040838503121561504e578081fd5b8235615059816157d5565b91506020830135615069816157d5565b809150509250929050565b600080600060608486031215615088578081fd5b8335615093816157d5565b925060208401356150a3816157d5565b915060408401356150b3816157d5565b809150509250925092565b600080600080608085870312156150d3578182fd5b84356150de816157d5565b935060208501356150ee816157d5565b925060408501356150fe816157d5565b9150606085013561510e816157d5565b939692955090935050565b6000806000806080858703121561512e578182fd5b8435615139816157d5565b93506020850135615149816157d5565b925060408501356150fe816157ed565b600080600080600060a08688031215615170578283fd5b853561517b816157d5565b9450602086013561518b816157d5565b9350604086013561519b816157ed565b925060608601356151ab816157d5565b915060808601356151bb816157d5565b809150509295509295909350565b60008060008060008060c087890312156151e1578384fd5b86356151ec816157d5565b955060208701356151fc816157d5565b9450604087013561520c816157ed565b9350606087013561521c816157d5565b9250608087013561522c816157d5565b915060a087013561523c816157d5565b809150509295509295509295565b600080600080600080600060e0888a031215615264578485fd5b873561526f816157d5565b9650602088013561527f816157d5565b9550604088013561528f816157ed565b9450606088013561529f816157d5565b935060808801356152af816157d5565b925060a08801356152bf816157d5565b915060c08801356152cf816157d5565b8091505092959891949750929550565b600080604083850312156152f1578182fd5b82356152fc816157d5565b946020939093013593505050565b6000806080838503121561531c578182fd5b83601f84011261532a578182fd5b6040516060810181811067ffffffffffffffff8211171561534757fe5b6040528084606081018781111561535c578586fd5b855b6003811015615387578235615372816157d5565b8452602093840193929092019160010161535e565b5083955061539481614ff9565b9450505050509250929050565b6000806000806000806000806000806101408b8d0312156153c0578384fd5b8a3567ffffffffffffffff808211156153d7578586fd5b6153e38e838f01614d9e565b9b5060208d01359150808211156153f8578586fd5b6154048e838f01614d9e565b9a5060408d0135915080821115615419578586fd5b6154258e838f01614d9e565b995060608d013591508082111561543a578586fd5b6154468e838f01614d9e565b985060808d013591508082111561545b578586fd5b6154678e838f01614d9e565b975060a08d013591508082111561547c578586fd5b6154888e838f01614d9e565b965060c08d013591508082111561549d578586fd5b6154a98e838f01614d9e565b955060e08d01359150808211156154be578485fd5b6154ca8e838f01614d9e565b94506101008d01359150808211156154e0578384fd5b6154ec8e838f01614d9e565b93506101208d0135915080821115615502578283fd5b5061550f8d828e01614d9e565b9150509295989b9194979a5092959850565b600060808284031215615532578081fd5b610cec8383614e2a565b600060c0828403121561554d578081fd5b610cec8383614eac565b600060e08284031215615568578081fd5b60405160e0810181811067ffffffffffffffff8211171561558557fe5b60405261559183614d93565b815261559f60208401614d93565b60208201526155b060408401614ff9565b60408201526155c160608401614d93565b60608201526155d260808401614d93565b60808201526155e360a08401614d93565b60a08201526155f460c08401614d93565b60c08201529392505050565b600060a08284031215615611578081fd5b610cec8383614f4d565b60008060006060848603121561562f578081fd5b61563884614fe2565b925061564660208501614fe2565b9150604084015163ffffffff811681146150b3578182fd5b60006020828403121561566f578081fd5b5035919050565b600060208284031215615687578081fd5b5051919050565b60006020828403121561569f578081fd5b8151610cec816157ed565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152928416602084015260ff919091166040830152909116606082015260800190565b6001600160a01b039586168152938516602085015260ff92909216604084015283166060830152909116608082015260a00190565b6001600160a01b039687168152948616602086015260ff93909316604085015290841660608401528316608083015290911660a082015260c00190565b6001600160a01b039788168152958716602087015260ff949094166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b90815260200190565b60ff91909116815260200190565b6001600160a01b03811681146157ea57600080fd5b50565b60ff811681146157ea57600080fdfea26469706673582212207f7a08270e06cb7400d3a9d9de11f19d406e9e17732f5a24f595bb426e6e10ed64736f6c6343000706003300000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b7500000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c830000000000000000000000002b4c76d0dc16be1c31d4c1dc53bf9b45987fc75c0000000000000000000000000000000000000000000000000000000000000006

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

00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b7500000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c830000000000000000000000002b4c76d0dc16be1c31d4c1dc53bf9b45987fc75c0000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : uwl (address[3]): 0x04068da6c83afcfa0e13ba15a6696662335d5b75,0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83,0x2b4c76d0dc16be1c31d4c1dc53bf9b45987fc75c
Arg [1] : d (uint8): 6

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b75
Arg [1] : 00000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83
Arg [2] : 0000000000000000000000002b4c76d0dc16be1c31d4c1dc53bf9b45987fc75c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006


Deployed ByteCode Sourcemap

807:25733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6823:207;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16112:147;;;;;;:::i;:::-;;:::i;17750:247::-;;;;;;:::i;:::-;;:::i;9051:141::-;;;;;;:::i;:::-;;:::i;20266:1318::-;;;:::i;5009:136::-;;;;;;:::i;:::-;;:::i;:::-;;2989:255;;;:::i;15384:276::-;;;;;;:::i;:::-;;:::i;18020:162::-;;;;;;:::i;:::-;;:::i;5173:198::-;;;;;;:::i;:::-;;:::i;10581:176::-;;;;;;:::i;:::-;;:::i;2463:116::-;;;;;;:::i;:::-;;:::i;10275:44::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;6386:38::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3705:116::-;;;;;;:::i;:::-;;:::i;14181:153::-;;;;;;:::i;:::-;;:::i;13489:42::-;;;;;;:::i;:::-;;:::i;1905:18::-;;;:::i;:::-;;;;;;;:::i;12030:188::-;;;;;;:::i;:::-;;:::i;13044:348::-;;;;;;:::i;:::-;;:::i;8620:151::-;;;;;;:::i;:::-;;:::i;6450:181::-;;;;;;:::i;:::-;;:::i;14709:468::-;;;;;;:::i;:::-;;:::i;2003:134::-;;;;;;:::i;:::-;;:::i;5394:132::-;;;;;;:::i;:::-;;:::i;5548:175::-;;;:::i;24935:68::-;;;:::i;7053:147::-;;;;;;:::i;:::-;;:::i;1854:20::-;;;:::i;:::-;;;;;;;:::i;17258:275::-;;;;;;:::i;:::-;;:::i;4824:182::-;;;;;;:::i;:::-;;:::i;1878:23::-;;;:::i;18204:215::-;;;:::i;9214:187::-;;;:::i;4101:568::-;;;;;;:::i;:::-;;:::i;15852:237::-;;;;;;:::i;:::-;;:::i;11972:32::-;;;;;;:::i;:::-;;:::i;12782:183::-;;;:::i;26272:215::-;;;;;;:::i;:::-;;:::i;13557:186::-;;;;;;:::i;:::-;;:::i;3287:30::-;;;;;;:::i;:::-;;:::i;9581:576::-;;;;;;:::i;:::-;;:::i;6634:161::-;;;;;;:::i;:::-;;:::i;3321:79::-;;;;;;:::i;:::-;;:::i;12221:146::-;;;;;;:::i;:::-;;:::i;10345:233::-;;;;;;:::i;:::-;;:::i;19120:914::-;;;;;;:::i;:::-;;:::i;10785:239::-;;;;;;:::i;:::-;;:::i;20162:82::-;;;:::i;4770:28::-;;;;;;:::i;:::-;;:::i;1927:26::-;;;:::i;14356:203::-;;;:::i;16281:195::-;;;:::i;15663:161::-;;;;;;:::i;:::-;;:::i;2213:83::-;;;;;;:::i;:::-;;:::i;22279:936::-;;;;;;:::i;:::-;;:::i;13746:171::-;;;;;;:::i;:::-;;:::i;3843:184::-;;;:::i;8383:234::-;;;;;;:::i;:::-;;:::i;2157:30::-;;;;;;:::i;:::-;;:::i;3403:131::-;;;;;;:::i;:::-;;:::i;12395:204::-;;;;;;:::i;:::-;;:::i;24847:64::-;;;:::i;7642:557::-;;;;;;:::i;:::-;;:::i;12622:138::-;;;;;;:::i;:::-;;:::i;15320:38::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;11047:156::-;;;;;;:::i;:::-;;:::i;8799:229::-;;;;;;:::i;:::-;;:::i;23451:1360::-;;;:::i;3562:120::-;;;;;;:::i;:::-;;:::i;13945:213::-;;;;;;:::i;:::-;;:::i;1832:18::-;;;:::i;2602:132::-;;;;;;:::i;:::-;;:::i;7222:195::-;;;:::i;26490:47::-;;;:::i;25026:380::-;;;:::i;8323:34::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;23343:86::-;;;:::i;17184:48::-;;;;;;:::i;:::-;;:::i;11225:207::-;;;:::i;5797:494::-;;;;;;:::i;:::-;;:::i;17536:186::-;;;;;;:::i;:::-;;:::i;16576:471::-;;;;;;:::i;:::-;;:::i;2299:136::-;;;;;;:::i;:::-;;:::i;2756:175::-;;;:::i;11496:373::-;;;;;;:::i;:::-;;:::i;6823:207::-;6890:7;6906:11;7006:4;6980:18;6993:1;:4;;;6980:12;:18::i;:::-;6967:1;:5;;;6964:2;:8;6959:14;;:2;:14;6930:1;:7;;;-1:-1:-1;;;;;6926:22:0;;6949:1;:6;;;6926:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;:72;6920:90;;;;;;;-1:-1:-1;;6823:207:0;;;;:::o;16112:147::-;16170:7;16186:11;16200:39;16217:18;16236:1;16217:21;;;;;;;;;;;;;;;;;16200:39;;;;;;;;16217:21;;;;;;;;16200:39;;-1:-1:-1;;;;;16200:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16200:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:39::i;:::-;16186:53;16112:147;-1:-1:-1;;;16112:147:0:o;17750:247::-;17827:7;17843:11;17973:4;17917:48;17935:1;:9;;;17946:1;:7;;;17955:1;:9;;;17917:17;:48::i;9051:141::-;9107:7;9123:11;9137:35;9152:16;9169:1;9152:19;;;;;;;;;;;;;;;;;9137:35;;;;;;;;9152:19;;;;;;;;9137:35;;-1:-1:-1;;;;;9137:35:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9137:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:35::i;20266:1318::-;20312:7;20328:11;20352:6;20348:103;20361:23;:30;20359:32;;20348:103;;;20408:40;20421:23;20445:1;20421:26;;;;;;;;;;;;;;;;20408:12;:40::i;:::-;20402:46;;;;20392:3;;20348:103;;;;20461:6;20457:112;20470:26;:33;20468:35;;20457:112;;;20520:46;20536:26;20563:1;20536:29;;;;;;;;;;;;;;;;20520:15;:46::i;:::-;20514:52;;;;20504:3;;20457:112;;;;20579:6;20575:103;20588:23;:30;20586:32;;20575:103;;;20635:40;20648:23;20672:1;20648:26;;;;;;;;;;;;;;;;20635:12;:40::i;:::-;20629:46;;;;20619:3;;20575:103;;;;20688:6;20684:118;20697:28;:35;20695:37;;20684:118;;;20749:50;20767:28;20796:1;20767:31;;;;;;;;;;;;;;;;20749:17;:50::i;:::-;20743:56;;;;20733:3;;20684:118;;;;20812:6;20808:112;20821:26;:33;20819:35;;20808:112;;;20871:46;20887:26;20914:1;20887:29;;;;;;;;;;;;;;;;20871:15;:46::i;:::-;20865:52;;;;20855:3;;20808:112;;;;20930:6;20926:127;20939:31;:38;20937:40;;20926:127;;;20994:56;21015:31;21047:1;21015:34;;;;;;;;;;;;;;;;20994:20;:56::i;:::-;20988:62;;;;20978:3;;20926:127;;;;21063:6;21059:109;21072:25;:32;21070:34;;21059:109;;;21121:44;21136:25;21162:1;21136:28;;;;;;;;;;;;;;;;21121:14;:44::i;:::-;21115:50;;;;21105:3;;21059:109;;;;21178:6;21174:124;21187:30;:37;21185:39;;21174:124;;;21241:54;21261:30;21292:1;21261:33;;;;;;;;;;;;;;;;21241:19;:54::i;:::-;21235:60;;;;21225:3;;21174:124;;;;21308:6;21304:118;21317:28;:35;21315:37;;21304:118;;;21369:50;21387:28;21416:1;21387:31;;;;;;;;;;;;;;;;21369:17;:50::i;:::-;21363:56;;;;21353:3;;21304:118;;;;21432:6;21428:133;21441:33;:40;21439:42;;21428:133;;;21498:60;21521:33;21555:1;21521:36;;;;;;;;;;;;;;;;21498:22;:60::i;:::-;21492:66;;;;21482:3;;21428:133;;;-1:-1:-1;21576:3:0;-1:-1:-1;20266:1318:0;:::o;5009:136::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;5079:13:::1;5093:20:::0;;-1:-1:-1;;5093:22:0;;;5079:37;::::1;;;;;;;;;;;;;;;5062:13;5076:1;5062:16;;;;;;;;;::::0;;;::::1;::::0;;;:54;;:16:::1;::::0;;::::1;;:54:::0;;-1:-1:-1;;;;;;5062:54:0;;::::1;-1:-1:-1::0;;;;;5062:54:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;5062:54:0;;;::::1;;;-1:-1:-1::0;;;;5062:54:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5121:13:::1;:19:::0;;;::::1;;;;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;5121:19:0;;;;;::::1;;::::0;;-1:-1:-1;;;;;;5121:19:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;5121:19:0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;5009:136:0:o;2989:255::-;3056:8;;3096:17;;;;;;;;3028:7;;-1:-1:-1;;;;;3056:8:0;;3028:7;;;;3056:8;;3096:15;;:17;;;;;;;;;;;;;;;3056:8;3096:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3070:43;-1:-1:-1;;;;;3070:43:0;;;-1:-1:-1;;;;;3070:43:0;;;3118:9;3137:3;-1:-1:-1;;;;;3137:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3130:5;;-1:-1:-1;;;;;3130:5:0;;;:19;;;:94;;3223:1;3212:5;;;;;;;;;;;3209:2;:8;3204:14;;:2;:14;3201:1;:17;3194:4;:25;3193:31;;;;;;3130:94;;;3185:1;3174:5;;;;;;;;;;;3171:2;:8;3166:14;;:2;:14;3163:1;:17;3156:4;:25;3155:31;;;;;;3130:94;3118:106;-1:-1:-1;;;;;2989:255:0;:::o;15384:276::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;15554:103:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;15554:103:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;15530:18:::1;:128:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;15530:128:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;15530:128:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;15530:128:0::1;-1:-1:-1::0;;;;15530:128:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;15384:276::o;18020:162::-;18083:7;18099:11;18113:49;18135:23;18159:1;18135:26;;;;;;;;;;;;;;;;;18113:49;;;;;;;;18135:26;;;;;;;;18113:49;;-1:-1:-1;;;;;18113:49:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18113:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;:49::i;5173:198::-;5230:7;5246:11;5347:4;5320:18;5328:1;:3;;;5333:1;:4;;;5320:7;:18::i;10581:176::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;10667:21:::1;10689:28:::0;;-1:-1:-1;;10689:30:0;;;10667:53;::::1;;;;;;;;;;;;;;;10642:21;10664:1;10642:24;;;;;;;;;::::0;;;::::1;::::0;;;:78;;:24:::1;::::0;;::::1;;:78:::0;;-1:-1:-1;;;;;;10642:78:0;;::::1;-1:-1:-1::0;;;;;10642:78:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;10642:78:0;;;::::1;;;-1:-1:-1::0;;;;10642:78:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;10725:21:::1;:27:::0;;;::::1;;;2463:116:::0;2515:7;2531:11;2551:1;-1:-1:-1;;;;;2546:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10275:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10275:44:0;;;;-1:-1:-1;10275:44:0;;;;-1:-1:-1;;;10275:44:0;;;;;;;;;;;;:::o;6386:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6386:38:0;;;;-1:-1:-1;6386:38:0;;;;-1:-1:-1;;;6386:38:0;;;;;;;:::o;3705:116::-;3761:7;3784:31;3799:12;3812:1;3799:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3799:15:0;3784:14;:31::i;:::-;3777:39;3705:116;-1:-1:-1;;3705:116:0:o;14181:153::-;14241:7;14257:11;14271:43;14290:20;14311:1;14290:23;;;;;;;;;;;;;;;;;14271:43;;;;;;;;14290:23;;;;;;;;14271:43;;-1:-1:-1;;;;;14271:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14271:43:0;;;;;;;;;;;;;;;;;;;;;;:18;:43::i;13489:42::-;;;;;;;;;;;;1905:18;;;-1:-1:-1;;;1905:18:0;;;;;:::o;12030:188::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;12157:58:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;12157:58:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;12136:15:::1;:80:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;12136:80:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;12136:80:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;12136:80:0::1;-1:-1:-1::0;;;;12136:80:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;12030:188::o;13044:348::-;13100:7;13116;13128:2;13116:15;;13137:9;13148;13162:3;-1:-1:-1;;;;;13162:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13136:43;-1:-1:-1;;;;;13136:43:0;;;-1:-1:-1;;;;;13136:43:0;;;13184:10;13197:3;-1:-1:-1;;;;;13197:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13184:30;;13267:10;13287:3;-1:-1:-1;;;;;13287:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13280:5;;-1:-1:-1;;;;;13280:5:0;;;:19;;;:54;;13332:2;13329:1;13324:4;:6;13323:11;;;;;;13280:54;;;13314:2;13311:1;13306:4;:6;13305:11;;;;;;13280:54;13267:67;;13340:9;13370:4;13358:9;:7;:9::i;:::-;13353:2;:14;13352:22;;;;;;;13044:348;-1:-1:-1;;;;;;;;13044:348:0:o;8620:151::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;8696:16:::1;8713:23:::0;;-1:-1:-1;;8713:25:0;;;8696:43;::::1;;;;;;;;;;;;;;;8676:16;8693:1;8676:19;;;;;;;;;::::0;;;::::1;::::0;;;:63;;:19:::1;::::0;;::::1;;:63:::0;;-1:-1:-1;;;;;;8676:63:0;;::::1;-1:-1:-1::0;;;;;8676:63:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;8676:63:0;;;::::1;;;-1:-1:-1::0;;;;8676:63:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8744:16:::1;:22:::0;;;::::1;;;;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;8744:22:0;;;;;::::1;;::::0;;-1:-1:-1;;;;;;8744:22:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;8744:22:0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;8620:151:0:o;6450:181::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;6572:56:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6572:56:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;6548:18:::1;:81:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;6548:81:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;6548:81:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;6548:81:0::1;-1:-1:-1::0;;;;6548:81:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;6450:181::o;14709:468::-;14806:7;14822;14834:5;14822:18;;14845:10;14858:3;-1:-1:-1;;;;;14858:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14845:25;;14875:9;14889:8;14904:2;-1:-1:-1;;;;;14900:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14889:29;;14932:2;-1:-1:-1;;;;;14926:8:0;:2;-1:-1:-1;;;;;14926:8:0;;14923:76;;;14944:3;-1:-1:-1;;;;;14944:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;14936:25:0;;-1:-1:-1;14923:76:0;;;14980:3;-1:-1:-1;;;;;14980:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;14972:25:0;;-1:-1:-1;;14923:76:0;15003:10;15016:3;-1:-1:-1;;;;;15016:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15003:30;;15082:10;15095:18;15103:1;15105:7;15095;:18::i;:::-;15082:31;;15118:9;15157:2;15149;15146;:5;15141:11;;:2;:11;15139:1;:13;15133:2;15131:1;:4;:22;15130:29;;;;;;;14709:468;-1:-1:-1;;;;;;;;;;;;14709:468:0:o;2003:134::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;2071:6;;2075:1:::1;2067:10:::0;;-1:-1:-1;;;;;;2067:10:0;;::::1;-1:-1:-1::0;;;;;2067:10:0;;::::1;;::::0;;;2071:6:::1;2088::::0;::::1;::::0;-1:-1:-1;2082:12:0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;2108:6;;;::::1;::::0;2112:1:::1;2099:15:::0;;;;::::1;::::0;::::1;;-1:-1:-1::0;;;;2125:7:0::1;-1:-1:-1::0;;;2125:7:0::1;::::0;;;::::1;::::0;;;::::1;;::::0;;2003:134::o;5394:132::-;5447:7;5463:11;5477:29;5489:13;5503:1;5489:16;;;;;;;;;;;;;;;;;5477:29;;;;;;;;5489:16;;;;;;;;5477:29;;-1:-1:-1;;;;;5477:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5477:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:11;:29::i;5548:175::-;5590:7;5606:11;5626:6;5622:82;5635:13;:20;5633:22;;5622:82;;;5672:29;5684:13;5698:1;5684:16;;;;;;;5672:29;5666:35;;;;5656:3;;5622:82;;24935:68;24974:7;24983:18;:16;:18::i;:::-;;24935:68;:::o;7053:147::-;7111:7;7127:11;7141:39;7158:18;7177:1;7158:21;;;;;;;;;;;;;;;;;7141:39;;;;;;;;7158:21;;;;;;;;7141:39;;-1:-1:-1;;;;;7141:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7141:39:0;;;;;;;;;;;;;;;;;;;;;;:16;:39::i;1854:20::-;;;-1:-1:-1;;;;;1854:20:0;;:::o;17258:275::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;17427:103:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;17427:103:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;17398:23:::1;:133:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;17398:133:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;17398:133:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;17398:133:0::1;-1:-1:-1::0;;;;17398:133:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;17258:275::o;4824:182::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;4947:56:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;4947:56:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;4928:13:::1;:76:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;4928:76:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;4928:76:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;4928:76:0::1;-1:-1:-1::0;;;;4928:76:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;4824:182::o;1878:23::-;;;-1:-1:-1;;;;;1878:23:0;;:::o;18204:215::-;18256:7;18272:11;18292:6;18288:112;18301:23;:30;18299:32;;18288:112;;;18348:49;18370:23;18394:1;18370:26;;;;;;;18348:49;18342:55;;;;18332:3;;18288:112;;9214:187;9259:7;9275:11;9295:6;9291:91;9304:16;:23;9302:25;;9291:91;;;9344:35;9359:16;9376:1;9359:19;;;;;;;9344:35;9338:41;;;;9328:3;;9291:91;;4101:568;4161:7;4177;4189:2;4177:15;;4198:9;4209;4223:3;-1:-1:-1;;;;;4223:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4197:43;-1:-1:-1;;;;;4197:43:0;;;-1:-1:-1;;;;;4197:43:0;;;4293:10;4306:3;-1:-1:-1;;;;;4306:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4293:25;;4323:9;4343:2;-1:-1:-1;;;;;4340:5:0;:1;-1:-1:-1;;;;;4340:5:0;;4337:315;;;4356:9;4372:2;-1:-1:-1;;;;;4368:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4356:30;;4392:9;4408:3;-1:-1:-1;;;;;4408:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4404:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4392:40;;4483:3;4480:2;:6;4475:12;;:2;:12;4472:1;:15;4461:3;4458:2;:6;4453:12;;:2;:12;4450:1;:15;4443:4;:23;4442:46;;;;;;4438:50;;4337:315;;;;;4513:9;4529:3;-1:-1:-1;;;;;4529:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4525:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4513:40;;4559:9;4575:2;-1:-1:-1;;;;;4571:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4559:30;;4640:3;4637:2;:6;4632:12;;:2;:12;4629:1;:15;4618:3;4615:2;:6;4610:12;;:2;:12;4607:1;:15;4600:4;:23;4599:46;;;;;;4595:50;;4337:315;;;4663:1;4101:568;-1:-1:-1;;;;;;;4101:568:0:o;15852:237::-;15919:7;15935:11;16065:4;16009:48;16022:1;:9;;;16033:1;:7;;;16042:1;:9;;;16053:1;:3;;;16009:12;:48::i;11972:32::-;;;;;;;;;;;;12782:183;12826:7;12842:11;12862:6;12858:88;12871:15;:22;12869:24;;12858:88;;;12910:33;12924:15;12940:1;12924:18;;;;;;;;;;;;;;;;;12910:33;;;;;;;;12924:18;;;;;;;;12910:33;;-1:-1:-1;;;;;12910:33:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12910:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:33::i;:::-;12904:39;;;;12894:3;;12858:88;;26272:215;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;-1:-1:-1;;;;;26347:24:0;::::1;26344:139;;26374:3;::::0;:26:::1;::::0;-1:-1:-1;;;;;26374:3:0;;::::1;::::0;26389:6;;26374:26:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26344:139;;;-1:-1:-1::0;;;;;26414:24:0;::::1;::::0;26411:72:::1;;26469:3;::::0;26442:39:::1;::::0;;;;-1:-1:-1;;;;;26442:26:0;;::::1;::::0;::::1;::::0;:39:::1;::::0;26469:3;;::::1;::::0;26474:6;;26442:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26411:72;26272:215:::0;;:::o;13557:186::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;13683:57:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;13683:57:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;13657:20:::1;:84:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;13657:84:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;13657:84:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;13657:84:0::1;-1:-1:-1::0;;;;13657:84:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;13557:186::o;3287:30::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3287:30:0;;-1:-1:-1;3287:30:0;:::o;9581:576::-;9670:7;9686;9698:5;9686:18;;9709:9;9723;9751:8;9764;9777:10;9790:3;-1:-1:-1;;;;;9790:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9777:25;;9807:10;9831:2;-1:-1:-1;;;;;9825:8:0;:2;-1:-1:-1;;;;;9825:8:0;;9822:140;;;9849:3;-1:-1:-1;;;;;9849:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9844:17;;9876:3;-1:-1:-1;;;;;9876:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;9867:26:0;;;;-1:-1:-1;9867:26:0;;-1:-1:-1;9822:140:0;;;9922:2;9917:7;;9939:3;-1:-1:-1;;;;;9939:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;9930:26:0;;;;-1:-1:-1;9930:26:0;;-1:-1:-1;9822:140:0;9975:2;-1:-1:-1;;;;;9971:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9966:23;;10003:2;-1:-1:-1;;;;;9999:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9994:23;;10022:12;10037:21;10050:7;10037:12;:21::i;:::-;10022:36;;10063:9;10135:4;10123:9;:7;:9::i;:::-;10107:11;10112:2;:5;;;10107:11;:2;:11;10105:13;;;;10087;;10079:22;;10105:13;10078:41;;;;;10077:55;10075:64;;;;;;;9581:576;-1:-1:-1;;;;;;;;;;;;;9581:576:0:o;6634:161::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;6714:18:::1;6733:25:::0;;-1:-1:-1;;6733:27:0;;;6714:47;::::1;;;;;;;;;;;;;;;6692:18;6711:1;6692:21;;;;;;;;;::::0;;;::::1;::::0;;;:69;;:21:::1;::::0;;::::1;;:69:::0;;-1:-1:-1;;;;;;6692:69:0;;::::1;-1:-1:-1::0;;;;;6692:69:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;6692:69:0;;;::::1;;;-1:-1:-1::0;;;;6692:69:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;6766:18:::1;:24:::0;;;::::1;;;;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;6766:24:0;;;;;::::1;;::::0;;-1:-1:-1;;;;;;6766:24:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;6766:24:0;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;6634:161:0:o;3321:79::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;3374:12:::1;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;3374:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;3374:24:0::1;-1:-1:-1::0;;;;;3374:24:0;;;::::1;::::0;;;::::1;::::0;;3321:79::o;12221:146::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;12295:15:::1;12311:22:::0;;-1:-1:-1;;12311:24:0;;;12295:41;::::1;;;;;;;;;;;;;;;12276:15;12292:1;12276:18;;;;;;;;;::::0;;;::::1;::::0;;;:60;;:18:::1;::::0;;::::1;;:60:::0;;-1:-1:-1;;;;;;12276:60:0;;::::1;-1:-1:-1::0;;;;;12276:60:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;12276:60:0;;;::::1;;;-1:-1:-1::0;;;;12276:60:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12341:15:::1;:21:::0;;;::::1;;;10345:233:::0;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;10493:82:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;10493:82:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;10466:21:::1;:110:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;10466:110:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;10466:110:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;10466:110:0::1;-1:-1:-1::0;;;;10466:110:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;10345:233::o;19120:914::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;19536:32;;::::1;::::0;:23:::1;::::0;:32:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19579:38:0;;::::1;::::0;:26:::1;::::0;:38:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19628:32:0;;::::1;::::0;:23:::1;::::0;:32:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19671:42:0;;::::1;::::0;:28:::1;::::0;:42:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19724:38:0;;::::1;::::0;:26:::1;::::0;:38:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19773:48:0;;::::1;::::0;:31:::1;::::0;:48:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19832:36:0;;::::1;::::0;:25:::1;::::0;:36:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19879:46:0;;::::1;::::0;:30:::1;::::0;:46:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19930:42:0;;::::1;::::0;:28:::1;::::0;:42:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;19977:52:0;;::::1;::::0;:33:::1;::::0;:52:::1;::::0;::::1;::::0;::::1;:::i;:::-;;19120:914:::0;;;;;;;;;;:::o;10785:239::-;10858:7;10874:11;11000:4;10948:44;10964:1;:7;;;10973:1;:7;;;10982:1;:9;;;10948:15;:44::i;20162:82::-;20210:7;20226:16;:14;:16::i;:::-;20219:23;;20162:82;:::o;4770:28::-;;;;;;;;;;;;1927:26;;;-1:-1:-1;;;;;1927:26:0;;:::o;14356:203::-;14405:7;14421:11;14441:6;14437:103;14450:20;:27;14448:29;;14437:103;;;14494:43;14513:20;14534:1;14513:23;;;;;;;14494:43;14488:49;;;;14478:3;;14437:103;;16281:195;16328:7;16344:11;16364:6;16360:97;16373:18;:25;16371:27;;16360:97;;;16415:39;16432:18;16451:1;16432:21;;;;;;;16415:39;16409:45;;;;16399:3;;16360:97;;15663:161;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;15743:18:::1;15762:25:::0;;-1:-1:-1;;15762:27:0;;;15743:47;::::1;;;;;;;;;;;;;;;15721:18;15740:1;15721:21;;;;;;;;;::::0;;;::::1;::::0;;;:69;;:21:::1;::::0;;::::1;;:69:::0;;-1:-1:-1;;;;;;15721:69:0;;::::1;-1:-1:-1::0;;;;;15721:69:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;15721:69:0;;;::::1;;;-1:-1:-1::0;;;;15721:69:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15795:18:::1;:24:::0;;;::::1;;;;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;15795:24:0;;;;;::::1;;::::0;;-1:-1:-1;;;;;;15795:24:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;15795:24:0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;15663:161:0:o;2213:83::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;2269:13:::1;:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;2269:25:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;2269:25:0::1;-1:-1:-1::0;;;;;2269:25:0;;;::::1;::::0;;;::::1;::::0;;2213:83::o;22279:936::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;22697:34;;::::1;::::0;:25:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;22742:40:0;;::::1;::::0;:28:::1;::::0;:40:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;22793:34:0;;::::1;::::0;:25:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;22838:44:0;;::::1;::::0;:30:::1;::::0;:44:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;22893:40:0;;::::1;::::0;:28:::1;::::0;:40:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;22944:50:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;23005:38:0;;::::1;::::0;:27:::1;::::0;:38:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;23054:48:0;;::::1;::::0;:32:::1;::::0;:48:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;23107:44:0;;::::1;::::0;:30:::1;::::0;:44;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;23156:54:0;;::::1;::::0;:35:::1;::::0;:54:::1;::::0;::::1;::::0;::::1;:::i;13746:171::-:0;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;13830:20:::1;13851:27:::0;;-1:-1:-1;;13851:29:0;;;13830:51;::::1;;;;;;;;;;;;;;;13806:20;13827:1;13806:23;;;;;;;;;::::0;;;::::1;::::0;;;:75;;:23:::1;::::0;;::::1;;:75:::0;;-1:-1:-1;;;;;;13806:75:0;;::::1;-1:-1:-1::0;;;;;13806:75:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;13806:75:0;;;::::1;;;-1:-1:-1::0;;;;13806:75:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;13886:20:::1;:26:::0;;;::::1;;;3843:184:::0;3888:7;;;3924:83;3937:12;:19;3935:21;;3924:83;;;3973:31;3988:12;4001:1;3988:15;;;;;;;3973:31;3967:37;;;;3957:3;;3924:83;;8383:234;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;8532:82:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;8532:82:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;8510:16:::1;:105:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;8510:105:0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;8510:105:0;;::::1;;::::0;;;;;;;;;;;;;::::1;-1:-1:-1::0;;;8510:105:0::1;-1:-1:-1::0;;;;8510:105:0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;;::::0;;8383:234::o;2157:30::-;;;;;;;;;;;;3403:131;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;3471:12:::1;3484:19:::0;;-1:-1:-1;;3484:21:0;;;3471:35;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;3455:12:::1;:15:::0;;-1:-1:-1;;;;;3471:35:0;;::::1;::::0;3468:1;;3455:15;::::1;;;;;;;;;;;;;:51;;;;;-1:-1:-1::0;;;;;3455:51:0::1;;;;;-1:-1:-1::0;;;;;3455:51:0::1;;;;;;3511:12;:18;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;3511:18:0;;;;;-1:-1:-1;;;;;;3511:18:0::1;::::0;;;;;-1:-1:-1;3403:131:0:o;12395:204::-;12456:7;12472:11;12575:4;12546:21;12556:1;:4;;;12562:1;:4;;;12546:9;:21::i;24847:64::-;24884:7;24893:16;:14;:16::i;7642:557::-;7737:7;7753;7765:5;7753:18;;7776:9;7790;7818:8;7831;7844:10;7857:3;-1:-1:-1;;;;;7857:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7844:25;;7874:10;7898:2;-1:-1:-1;;;;;7892:8:0;:2;-1:-1:-1;;;;;7892:8:0;;7889:140;;;7916:3;-1:-1:-1;;;;;7916:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7911:17;;7943:3;-1:-1:-1;;;;;7943:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7934:26:0;;;;-1:-1:-1;7934:26:0;;-1:-1:-1;7889:140:0;;;7989:2;7984:7;;8006:3;-1:-1:-1;;;;;8006:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7997:26:0;;;;-1:-1:-1;7997:26:0;;-1:-1:-1;7889:140:0;8042:2;-1:-1:-1;;;;;8038:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8033:23;;8070:2;-1:-1:-1;;;;;8066:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8061:23;;8089:12;8104:19;8112:1;8115:7;8104;:19::i;:::-;8089:34;;8128:9;8177:2;8174;:5;8169:11;;:2;:11;8167:1;:13;8159:2;8156;:5;8151:11;;:2;:11;8149:1;:13;8141:4;:22;8140:41;;;;;;;7642:557;-1:-1:-1;;;;;;;;;;;;;;7642:557:0:o;12622:138::-;12677:7;12693:11;12707:33;12721:15;12737:1;12721:18;;;;;;;15320:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15320:38:0;;;;-1:-1:-1;15320:38:0;;;;-1:-1:-1;;;15320:38:0;;;;;;;;;;;;;;;;;;;;:::o;11047:156::-;11108:7;11124:11;11138:45;11158:21;11180:1;11158:24;;;;;;;;;;;;;;;;;11138:45;;;;;;;;11158:24;;;;;;;;11138:45;;-1:-1:-1;;;;;11138:45:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11138:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;:45::i;8799:229::-;8862:7;8878:11;9004:4;8952:44;8963:1;:7;;;8972:1;:7;;;8981:1;:9;;;8992:1;:3;;;8952:10;:44::i;23451:1360::-;23499:7;23515:11;23539:6;23535:107;23548:25;:32;23546:34;;23535:107;;;23597:42;23610:25;23636:1;23610:28;;;;;;;23597:42;23591:48;;;;23581:3;;23535:107;;;;23652:6;23648:116;23661:28;:35;23659:37;;23648:116;;;23713:48;23729:28;23758:1;23729:31;;;;;;;23713:48;23707:54;;;;23697:3;;23648:116;;;;23774:6;23770:107;23783:25;:32;23781:34;;23770:107;;;23832:42;23845:25;23871:1;23845:28;;;;;;;23832:42;23826:48;;;;23816:3;;23770:107;;;;23887:6;23883:122;23896:30;:37;23894:39;;23883:122;;;23950:52;23968:30;23999:1;23968:33;;;;;;;23950:52;23944:58;;;;23934:3;;23883:122;;;;24015:6;24011:116;24024:28;:35;24022:37;;24011:116;;;24076:48;24092:28;24121:1;24092:31;;;;;;;24076:48;24070:54;;;;24060:3;;24011:116;;;;24137:6;24133:131;24146:33;:40;24144:42;;24133:131;;;24203:58;24224:33;24258:1;24224:36;;;;;;;24203:58;24197:64;;;;24187:3;;24133:131;;;;24274:6;24270:113;24283:27;:34;24281:36;;24270:113;;;24334:46;24349:27;24377:1;24349:30;;;;;;;24334:46;24328:52;;;;24318:3;;24270:113;;;;24393:6;24389:128;24402:32;:39;24400:41;;24389:128;;;24458:56;24478:32;24511:1;24478:35;;;;;;;24458:56;24452:62;;;;24442:3;;24389:128;;;;24527:6;24523:122;24536:30;:37;24534:39;;24523:122;;;24590:52;24608:30;24639:1;24608:33;;;;;;;24590:52;24584:58;;;;24574:3;;24523:122;;;;24655:6;24651:137;24664:35;:42;24662:44;;24651:137;;;24723:62;24746:35;24782:1;24746:38;;;;;;;24723:62;24717:68;;;;24707:3;;24651:137;;3562:120;3617:7;3673:4;3662:9;:7;:9::i;:::-;3650:1;-1:-1:-1;;;;;3642:18:0;;3641:30;3640:37;;;;;;;3562:120;-1:-1:-1;;3562:120:0:o;13945:213::-;14016:7;14032:11;14134:4;14106:20;14121:1;:4;;;14106:14;:20::i;1832:18::-;;;-1:-1:-1;;;;;1832:18:0;;:::o;2602:132::-;2655:7;2671:11;2685:29;2697:13;2711:1;2697:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2697:16:0;2685:11;:29::i;7222:195::-;7269:7;7285:11;7305:6;7301:97;7314:18;:25;7312:27;;7301:97;;;7356:39;7373:18;7392:1;7373:21;;;;;;;7356:39;7350:45;;;;7340:3;;7301:97;;26490:47;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;26531:3:::1;::::0;-1:-1:-1;;;;;26531:3:0::1;26518:17;25026:380:::0;25061:7;25368:22;:20;:22::i;:::-;25344:17;:15;:17::i;:::-;25318:19;:17;:19::i;:::-;25288:14;:12;:14::i;:::-;25252:20;:18;:20::i;:::-;25221:15;:13;:15::i;:::-;25188:17;:15;:17::i;:::-;25160:12;:10;:12::i;:::-;25129:15;:13;:15::i;:::-;25101:12;:10;:12::i;:::-;25084:60;:88;:121;:152;:188;:218;:253;:277;:306;;-1:-1:-1;25026:380:0;:::o;8323:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8323:34:0;;;;-1:-1:-1;8323:34:0;;;;-1:-1:-1;;;8323:34:0;;;;;;;;;;;;;;;:::o;23343:86::-;23393:7;23409:18;:16;:18::i;17184:48::-;;;;;;;;;;;;11225:207;11275:7;11291:11;11311:6;11307:106;11320:21;:28;11318:30;;11307:106;;;11365:45;11385:21;11407:1;11385:24;;;;;;;11365:45;11359:51;;;;11349:3;;11307:106;;5797:494;5851:7;5867;5879:2;5867:15;;5888:9;5899;5913:3;-1:-1:-1;;;;;5913:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5887:43;-1:-1:-1;;;;;5887:43:0;;;-1:-1:-1;;;;;5887:43:0;;;5983:10;5998:9;6012:10;6025:3;-1:-1:-1;;;;;6025:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6045:5;;6012:25;;-1:-1:-1;;;;;;6045:9:0;;;:5;;:9;6042:193;;;6075:3;-1:-1:-1;;;;;6075:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6071:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6065:34;;6134:3;6131:2;:6;6126:12;;:2;:12;6122:1;:16;6116:1;6111:4;:6;6110:29;;;;;;6105:34;;6042:193;;;6174:2;-1:-1:-1;;;;;6170:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6164:24;;6223:3;6220:2;:6;6215:12;;:2;:12;6211:1;:16;6205:1;6200:4;:6;6199:29;;;;;;6194:34;;6042:193;6239:9;6269:4;6257:9;:7;:9::i;:::-;6252:2;:14;6251:22;;;;;;;5797:494;-1:-1:-1;;;;;;;;;5797:494:0:o;17536:186::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;17626:23:::1;17650:30:::0;;-1:-1:-1;;17650:32:0;;;17626:57;::::1;;;;;;;;;;;;;;;17599:23;17623:1;17599:26;;;;;;;;;::::0;;;::::1;::::0;;;:84;;:26:::1;::::0;;::::1;;:84:::0;;-1:-1:-1;;;;;;17599:84:0;;::::1;-1:-1:-1::0;;;;;17599:84:0;;::::1;;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;17599:84:0;;;::::1;;;-1:-1:-1::0;;;;17599:84:0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17688:23:::1;:29:::0;;;::::1;;;16576:471:::0;16667:7;16683;16695:5;16683:18;;16706:10;16719:3;-1:-1:-1;;;;;16719:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16706:25;;16736:9;16750:8;16765:2;-1:-1:-1;;;;;16761:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16750:29;;16793:2;-1:-1:-1;;;;;16787:8:0;:2;-1:-1:-1;;;;;16787:8:0;;16784:76;;;16805:3;-1:-1:-1;;;;;16805:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;16797:25:0;;-1:-1:-1;16784:76:0;;;16841:3;-1:-1:-1;;;;;16841:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;16833:25:0;;-1:-1:-1;;16784:76:0;16864:10;16877:3;-1:-1:-1;;;;;16877:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16864:30;;16947:11;16961:21;16974:7;16961:12;:21::i;:::-;16947:35;;16987:9;17027:2;17019;17016;:5;17011:11;;:2;:11;17009:1;:13;17002:3;17000:1;:5;:23;16999:30;;;;;;;16576:471;-1:-1:-1;;;;;;;;;;;16576:471:0:o;2299:136::-;1990:3;;-1:-1:-1;;;;;1990:3:0;1978:10;:15;1970:24;;;;;;2369:13:::1;2383:20:::0;;-1:-1:-1;;2383:22:0;;;2369:37;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;2352:13:::1;:16:::0;;-1:-1:-1;;;;;2369:37:0;;::::1;::::0;2366:1;;2352:16;::::1;;;;;;;;;;;;;:54;;;;;-1:-1:-1::0;;;;;2352:54:0::1;;;;;-1:-1:-1::0;;;;;2352:54:0::1;;;;;;2411:13;:19;;;;;;2756:175:::0;2798:7;2814:11;2834:6;2830:82;2843:13;:20;2841:22;;2830:82;;;2880:29;2892:13;2906:1;2892:16;;;;;;;2880:29;2874:35;;;;2864:3;;2830:82;;11496:373;11558:7;11574;11586:2;11574:15;;11595:9;11606;11620:3;-1:-1:-1;;;;;11620:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11594:43;-1:-1:-1;;;;;11594:43:0;;;-1:-1:-1;;;;;11594:43:0;;;11642:10;11655:3;-1:-1:-1;;;;;11655:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11642:30;;11677:9;11693:1;-1:-1:-1;;;;;11689:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11677:29;;11754:9;11769:3;-1:-1:-1;;;;;11769:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11766:15:0;:1;-1:-1:-1;;;;;11766:15:0;;:84;;11848:2;11840:3;11837:2;:6;11832:12;;:2;:12;11829:1;:15;11823:4;:23;11822:28;;;;;;11766:84;;;11813:2;11805:3;11802:2;:6;11797:12;;:2;:12;11794:1;:15;11788:4;:23;11787:28;;;;11766:84;11754:96;11496:373;-1:-1:-1;;;;;;;;;11496:373:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:138:1;84:20;;113:33;84:20;113:33;:::i;157:908::-;;270:3;263:4;255:6;251:17;247:27;237:2;;292:5;285;278:20;237:2;332:6;319:20;358:4;381:18;418:2;414;411:10;408:2;;;424:9;408:2;462;458;454:11;494:2;488:9;545:2;540;532:6;528:15;524:24;598:6;586:10;583:22;578:2;566:10;563:18;560:46;557:2;;;609:9;557:2;636;629:22;686:18;;;720:15;;;;-1:-1:-1;755:15:1;;;789;;;785:24;;782:33;-1:-1:-1;779:2:1;;;832:5;825;818:20;779:2;858:5;849:14;;872:163;886:2;883:1;880:9;872:163;;;943:17;;931:30;;981:12;;;;904:1;897:9;;;;;1013:12;;872:163;;;-1:-1:-1;1053:6:1;227:838;-1:-1:-1;;;;;;;227:838:1:o;1070:909::-;;1180:4;1168:9;1163:3;1159:19;1155:30;1152:2;;;1202:5;1195;1188:20;1152:2;1239;1233:9;1281:4;1273:6;1269:17;1352:6;1340:10;1337:22;1316:18;1304:10;1301:34;1298:62;1295:2;;;1363:9;1295:2;1390;1383:22;1423:6;-1:-1:-1;1423:6:1;1453:23;;1485:35;1453:23;1485:35;:::i;:::-;1529:23;;1604:2;1589:18;;1576:32;1617:35;1576:32;1617:35;:::i;:::-;1680:2;1668:15;;1661:32;1745:2;1730:18;;1717:32;1758:33;1717:32;1758:33;:::i;:::-;1819:2;1807:15;;1800:32;1884:2;1869:18;;1856:32;1897:35;1856:32;1897:35;:::i;:::-;1960:2;1948:15;;;;1941:32;1142:837;;-1:-1:-1;;1142:837:1:o;1984:997::-;;2097:4;2085:9;2080:3;2076:19;2072:30;2069:2;;;2119:5;2112;2105:20;2069:2;2156;2150:9;2198:4;2190:6;2186:17;2269:6;2257:10;2254:22;2233:18;2221:10;2218:34;2215:62;2212:2;;;2280:9;2212:2;2307;2300:22;2340:6;-1:-1:-1;2340:6:1;2370:23;;2402:35;2370:23;2402:35;:::i;:::-;2446:23;;2521:2;2506:18;;2493:32;2534:35;2493:32;2534:35;:::i;:::-;2597:2;2585:15;;2578:32;2662:2;2647:18;;2634:32;2675:33;2634:32;2675:33;:::i;:::-;2736:2;2724:15;;2717:32;2782:40;2818:2;2803:18;;2782:40;:::i;:::-;2777:2;2769:6;2765:15;2758:65;2857:41;2893:3;2882:9;2878:19;2857:41;:::i;:::-;2851:3;2843:6;2839:16;2832:67;2933:41;2969:3;2958:9;2954:19;2933:41;:::i;:::-;2927:3;2919:6;2915:16;2908:67;;2059:922;;;;:::o;2986:1047::-;;3091:4;3079:9;3074:3;3070:19;3066:30;3063:2;;;3113:5;3106;3099:20;3063:2;3150;3144:9;3192:4;3184:6;3180:17;3263:6;3251:10;3248:22;3227:18;3215:10;3212:34;3209:62;3206:2;;;3274:9;3206:2;3301;3294:22;3334:6;-1:-1:-1;3334:6:1;3364:23;;3396:35;3364:23;3396:35;:::i;:::-;3440:23;;3515:2;3500:18;;3487:32;3528:35;3487:32;3528:35;:::i;:::-;3591:2;3579:15;;3572:32;3656:2;3641:18;;3628:32;3669:33;3628:32;3669:33;:::i;:::-;3730:2;3718:15;;3711:32;3795:2;3780:18;;3767:32;3808:35;3767:32;3808:35;:::i;:::-;3871:2;3859:15;;3852:32;3936:3;3921:19;;3908:33;3950:35;3908:33;3950:35;:::i;:::-;4013:3;4001:16;;;;3994:33;3053:980;;-1:-1:-1;;3053:980:1:o;4038:190::-;4119:13;;-1:-1:-1;;;;;4161:42:1;;4151:53;;4141:2;;4218:1;4215;4208:12;4233:134;4301:20;;4330:31;4301:20;4330:31;:::i;4372:259::-;;4484:2;4472:9;4463:7;4459:23;4455:32;4452:2;;;4505:6;4497;4490:22;4452:2;4549:9;4536:23;4568:33;4595:5;4568:33;:::i;4636:263::-;;4759:2;4747:9;4738:7;4734:23;4730:32;4727:2;;;4780:6;4772;4765:22;4727:2;4817:9;4811:16;4836:33;4863:5;4836:33;:::i;4904:402::-;;;5033:2;5021:9;5012:7;5008:23;5004:32;5001:2;;;5054:6;5046;5039:22;5001:2;5098:9;5085:23;5117:33;5144:5;5117:33;:::i;:::-;5169:5;-1:-1:-1;5226:2:1;5211:18;;5198:32;5239:35;5198:32;5239:35;:::i;:::-;5293:7;5283:17;;;4991:315;;;;;:::o;5311:545::-;;;;5457:2;5445:9;5436:7;5432:23;5428:32;5425:2;;;5478:6;5470;5463:22;5425:2;5522:9;5509:23;5541:33;5568:5;5541:33;:::i;:::-;5593:5;-1:-1:-1;5650:2:1;5635:18;;5622:32;5663:35;5622:32;5663:35;:::i;:::-;5717:7;-1:-1:-1;5776:2:1;5761:18;;5748:32;5789:35;5748:32;5789:35;:::i;:::-;5843:7;5833:17;;;5415:441;;;;;:::o;5861:689::-;;;;;6024:3;6012:9;6003:7;5999:23;5995:33;5992:2;;;6046:6;6038;6031:22;5992:2;6090:9;6077:23;6109:33;6136:5;6109:33;:::i;:::-;6161:5;-1:-1:-1;6218:2:1;6203:18;;6190:32;6231:35;6190:32;6231:35;:::i;:::-;6285:7;-1:-1:-1;6344:2:1;6329:18;;6316:32;6357:35;6316:32;6357:35;:::i;:::-;6411:7;-1:-1:-1;6470:2:1;6455:18;;6442:32;6483:35;6442:32;6483:35;:::i;:::-;5982:568;;;;-1:-1:-1;5982:568:1;;-1:-1:-1;;5982:568:1:o;6555:685::-;;;;;6716:3;6704:9;6695:7;6691:23;6687:33;6684:2;;;6738:6;6730;6723:22;6684:2;6782:9;6769:23;6801:33;6828:5;6801:33;:::i;:::-;6853:5;-1:-1:-1;6910:2:1;6895:18;;6882:32;6923:35;6882:32;6923:35;:::i;:::-;6977:7;-1:-1:-1;7036:2:1;7021:18;;7008:32;7049:33;7008:32;7049:33;:::i;7245:829::-;;;;;;7423:3;7411:9;7402:7;7398:23;7394:33;7391:2;;;7445:6;7437;7430:22;7391:2;7489:9;7476:23;7508:33;7535:5;7508:33;:::i;:::-;7560:5;-1:-1:-1;7617:2:1;7602:18;;7589:32;7630:35;7589:32;7630:35;:::i;:::-;7684:7;-1:-1:-1;7743:2:1;7728:18;;7715:32;7756:33;7715:32;7756:33;:::i;:::-;7808:7;-1:-1:-1;7867:2:1;7852:18;;7839:32;7880:35;7839:32;7880:35;:::i;:::-;7934:7;-1:-1:-1;7993:3:1;7978:19;;7965:33;8007:35;7965:33;8007:35;:::i;:::-;8061:7;8051:17;;;7381:693;;;;;;;;:::o;8079:973::-;;;;;;;8274:3;8262:9;8253:7;8249:23;8245:33;8242:2;;;8296:6;8288;8281:22;8242:2;8340:9;8327:23;8359:33;8386:5;8359:33;:::i;:::-;8411:5;-1:-1:-1;8468:2:1;8453:18;;8440:32;8481:35;8440:32;8481:35;:::i;:::-;8535:7;-1:-1:-1;8594:2:1;8579:18;;8566:32;8607:33;8566:32;8607:33;:::i;:::-;8659:7;-1:-1:-1;8718:2:1;8703:18;;8690:32;8731:35;8690:32;8731:35;:::i;:::-;8785:7;-1:-1:-1;8844:3:1;8829:19;;8816:33;8858:35;8816:33;8858:35;:::i;:::-;8912:7;-1:-1:-1;8971:3:1;8956:19;;8943:33;8985:35;8943:33;8985:35;:::i;:::-;9039:7;9029:17;;;8232:820;;;;;;;;:::o;9057:1117::-;;;;;;;;9269:3;9257:9;9248:7;9244:23;9240:33;9237:2;;;9291:6;9283;9276:22;9237:2;9335:9;9322:23;9354:33;9381:5;9354:33;:::i;:::-;9406:5;-1:-1:-1;9463:2:1;9448:18;;9435:32;9476:35;9435:32;9476:35;:::i;:::-;9530:7;-1:-1:-1;9589:2:1;9574:18;;9561:32;9602:33;9561:32;9602:33;:::i;:::-;9654:7;-1:-1:-1;9713:2:1;9698:18;;9685:32;9726:35;9685:32;9726:35;:::i;:::-;9780:7;-1:-1:-1;9839:3:1;9824:19;;9811:33;9853:35;9811:33;9853:35;:::i;:::-;9907:7;-1:-1:-1;9966:3:1;9951:19;;9938:33;9980:35;9938:33;9980:35;:::i;:::-;10034:7;-1:-1:-1;10093:3:1;10078:19;;10065:33;10107:35;10065:33;10107:35;:::i;:::-;10161:7;10151:17;;;9227:947;;;;;;;;;;:::o;10179:327::-;;;10308:2;10296:9;10287:7;10283:23;10279:32;10276:2;;;10329:6;10321;10314:22;10276:2;10373:9;10360:23;10392:33;10419:5;10392:33;:::i;:::-;10444:5;10496:2;10481:18;;;;10468:32;;-1:-1:-1;;;10266:240:1:o;10511:975::-;;;10661:3;10649:9;10640:7;10636:23;10632:33;10629:2;;;10683:6;10675;10668:22;10629:2;10737:7;10730:4;10719:9;10715:20;10711:34;10701:2;;10764:6;10756;10749:22;10701:2;10802;10796:9;10844:2;10836:6;10832:15;10913:6;10901:10;10898:22;10877:18;10865:10;10862:34;10859:62;10856:2;;;10924:9;10856:2;10951;10944:22;10986:6;11012:9;11055:2;11040:18;;11070:15;;;11067:2;;;11103:6;11095;11088:22;11067:2;11130:6;11145:269;11159:4;11156:1;11153:11;11145:269;;;11232:3;11219:17;11249:33;11276:5;11249:33;:::i;:::-;11295:18;;11336:4;11360:12;;;;11392;;;;;11179:1;11172:9;11145:269;;;11149:3;11433:6;11423:16;;11458:22;11477:2;11458:22;:::i;:::-;11448:32;;;;;;10619:867;;;;;:::o;11491:2580::-;;;;;;;;;;;12006:3;11994:9;11985:7;11981:23;11977:33;11974:2;;;12028:6;12020;12013:22;11974:2;12073:9;12060:23;12102:18;12143:2;12135:6;12132:14;12129:2;;;12164:6;12156;12149:22;12129:2;12192:67;12251:7;12242:6;12231:9;12227:22;12192:67;:::i;:::-;12182:77;;12312:2;12301:9;12297:18;12284:32;12268:48;;12341:2;12331:8;12328:16;12325:2;;;12362:6;12354;12347:22;12325:2;12390:69;12451:7;12440:8;12429:9;12425:24;12390:69;:::i;:::-;12380:79;;12512:2;12501:9;12497:18;12484:32;12468:48;;12541:2;12531:8;12528:16;12525:2;;;12562:6;12554;12547:22;12525:2;12590:69;12651:7;12640:8;12629:9;12625:24;12590:69;:::i;:::-;12580:79;;12712:2;12701:9;12697:18;12684:32;12668:48;;12741:2;12731:8;12728:16;12725:2;;;12762:6;12754;12747:22;12725:2;12790:69;12851:7;12840:8;12829:9;12825:24;12790:69;:::i;:::-;12780:79;;12912:3;12901:9;12897:19;12884:33;12868:49;;12942:2;12932:8;12929:16;12926:2;;;12963:6;12955;12948:22;12926:2;12991:69;13052:7;13041:8;13030:9;13026:24;12991:69;:::i;:::-;12981:79;;13113:3;13102:9;13098:19;13085:33;13069:49;;13143:2;13133:8;13130:16;13127:2;;;13164:6;13156;13149:22;13127:2;13192:69;13253:7;13242:8;13231:9;13227:24;13192:69;:::i;:::-;13182:79;;13314:3;13303:9;13299:19;13286:33;13270:49;;13344:2;13334:8;13331:16;13328:2;;;13365:6;13357;13350:22;13328:2;13393:69;13454:7;13443:8;13432:9;13428:24;13393:69;:::i;:::-;13383:79;;13515:3;13504:9;13500:19;13487:33;13471:49;;13545:2;13535:8;13532:16;13529:2;;;13566:6;13558;13551:22;13529:2;13594:69;13655:7;13644:8;13633:9;13629:24;13594:69;:::i;:::-;13584:79;;13716:3;13705:9;13701:19;13688:33;13672:49;;13746:2;13736:8;13733:16;13730:2;;;13767:6;13759;13752:22;13730:2;13795:69;13856:7;13845:8;13834:9;13830:24;13795:69;:::i;:::-;13785:79;;13917:3;13906:9;13902:19;13889:33;13873:49;;13947:2;13937:8;13934:16;13931:2;;;13968:6;13960;13953:22;13931:2;;13996:69;14057:7;14046:8;14035:9;14031:24;13996:69;:::i;:::-;13986:79;;;11964:2107;;;;;;;;;;;;;:::o;14076:251::-;;14218:3;14206:9;14197:7;14193:23;14189:33;14186:2;;;14240:6;14232;14225:22;14186:2;14268:53;14313:7;14302:9;14268:53;:::i;14332:257::-;;14477:3;14465:9;14456:7;14452:23;14448:33;14445:2;;;14499:6;14491;14484:22;14445:2;14527:56;14575:7;14564:9;14527:56;:::i;14594:900::-;;14734:3;14722:9;14713:7;14709:23;14705:33;14702:2;;;14756:6;14748;14741:22;14702:2;14794;14788:9;14836:3;14828:6;14824:16;14906:6;14894:10;14891:22;14870:18;14858:10;14855:34;14852:62;14849:2;;;14917:9;14849:2;14944;14937:22;14983:31;15004:9;14983:31;:::i;:::-;14975:6;14968:47;15048:40;15084:2;15073:9;15069:18;15048:40;:::i;:::-;15043:2;15035:6;15031:15;15024:65;15122:38;15156:2;15145:9;15141:18;15122:38;:::i;:::-;15117:2;15109:6;15105:15;15098:63;15194:40;15230:2;15219:9;15215:18;15194:40;:::i;:::-;15189:2;15181:6;15177:15;15170:65;15269:41;15305:3;15294:9;15290:19;15269:41;:::i;:::-;15263:3;15255:6;15251:16;15244:67;15345:41;15381:3;15370:9;15366:19;15345:41;:::i;:::-;15339:3;15331:6;15327:16;15320:67;15421:41;15457:3;15446:9;15442:19;15421:41;:::i;:::-;15415:3;15403:16;;15396:67;15407:6;14692:802;-1:-1:-1;;;14692:802:1:o;15499:241::-;;15636:3;15624:9;15615:7;15611:23;15607:33;15604:2;;;15658:6;15650;15643:22;15604:2;15686:48;15726:7;15715:9;15686:48;:::i;16748:474::-;;;;16904:2;16892:9;16883:7;16879:23;16875:32;16872:2;;;16925:6;16917;16910:22;16872:2;16953:42;16985:9;16953:42;:::i;:::-;16943:52;;17014:51;17061:2;17050:9;17046:18;17014:51;:::i;:::-;17004:61;;17108:2;17097:9;17093:18;17087:25;17152:10;17145:5;17141:22;17134:5;17131:33;17121:2;;17183:6;17175;17168:22;17227:190;;17339:2;17327:9;17318:7;17314:23;17310:32;17307:2;;;17360:6;17352;17345:22;17307:2;-1:-1:-1;17388:23:1;;17297:120;-1:-1:-1;17297:120:1:o;17422:194::-;;17545:2;17533:9;17524:7;17520:23;17516:32;17513:2;;;17566:6;17558;17551:22;17513:2;-1:-1:-1;17594:16:1;;17503:113;-1:-1:-1;17503:113:1:o;17621:259::-;;17742:2;17730:9;17721:7;17717:23;17713:32;17710:2;;;17763:6;17755;17748:22;17710:2;17800:9;17794:16;17819:31;17844:5;17819:31;:::i;17885:205::-;18085:3;18076:14::o;18095:226::-;-1:-1:-1;;;;;18259:55:1;;;;18241:74;;18229:2;18214:18;;18196:125::o;18573:305::-;-1:-1:-1;;;;;18773:55:1;;;;18755:74;;18860:2;18845:18;;18838:34;18743:2;18728:18;;18710:168::o;18883:486::-;-1:-1:-1;;;;;19189:15:1;;;19171:34;;19241:15;;;19236:2;19221:18;;19214:43;19305:4;19293:17;;;;19288:2;19273:18;;19266:45;19347:15;;;19342:2;19327:18;;19320:43;19097:3;19082:19;;19064:305::o;19374:567::-;-1:-1:-1;;;;;19708:15:1;;;19690:34;;19760:15;;;19755:2;19740:18;;19733:43;19824:4;19812:17;;;;19807:2;19792:18;;19785:45;19866:15;;19861:2;19846:18;;19839:43;19919:15;;;19913:3;19898:19;;19891:44;19616:3;19601:19;;19583:358::o;19946:648::-;-1:-1:-1;;;;;20308:15:1;;;20290:34;;20360:15;;;20355:2;20340:18;;20333:43;20424:4;20412:17;;;;20407:2;20392:18;;20385:45;20466:15;;;20461:2;20446:18;;20439:43;20519:15;;20513:3;20498:19;;20491:44;20572:15;;;20566:3;20551:19;;20544:44;20216:3;20201:19;;20183:411::o;20599:729::-;-1:-1:-1;;;;;20989:15:1;;;20971:34;;21041:15;;;21036:2;21021:18;;21014:43;21105:4;21093:17;;;;21088:2;21073:18;;21066:45;21147:15;;;21142:2;21127:18;;21120:43;21200:15;;21194:3;21179:19;;21172:44;21253:15;;21247:3;21232:19;;21225:44;21306:15;;;21300:3;21285:19;;21278:44;20897:3;20882:19;;20864:464::o;21333:177::-;21479:25;;;21467:2;21452:18;;21434:76::o;21515:184::-;21687:4;21675:17;;;;21657:36;;21645:2;21630:18;;21612:87::o;21704:156::-;-1:-1:-1;;;;;21785:5:1;21781:54;21774:5;21771:65;21761:2;;21850:1;21847;21840:12;21761:2;21751:109;:::o;21865:116::-;21951:4;21944:5;21940:16;21933:5;21930:27;21920:2;;21971:1;21968;21961:12

Swarm Source

ipfs://7f7a08270e06cb7400d3a9d9de11f19d406e9e17732f5a24f595bb426e6e10ed
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.