Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UniswapAPR
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-01-26
*/
// File: @openzeppelin\contracts\token\ERC20\IERC20.sol
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see {ERC20Detailed}.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: @openzeppelin\contracts\GSN\Context.sol
pragma solidity ^0.5.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// File: @openzeppelin\contracts\ownership\Ownable.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
_owner = _msgSender();
emit OwnershipTransferred(address(0), _owner);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: @openzeppelin\contracts\math\SafeMath.sol
pragma solidity ^0.5.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*
* _Available since v2.4.0._
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*
* _Available since v2.4.0._
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*
* _Available since v2.4.0._
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
// File: @openzeppelin\contracts\utils\Address.sol
pragma solidity ^0.5.5;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* This test is non-exhaustive, and there may be false-negatives: during the
* execution of a contract's constructor, its address will be reported as
* not containing a contract.
*
* IMPORTANT: It is unsafe to assume that an address for which this
* function returns false is an externally-owned account (EOA) and not a
* contract.
*/
function isContract(address account) internal view returns (bool) {
// This method relies in extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != 0x0 && codehash != accountHash);
}
/**
* @dev Converts an `address` into `address payable`. Note that this is
* simply a type cast: the actual underlying value is not changed.
*
* _Available since v2.4.0._
*/
function toPayable(address account) internal pure returns (address payable) {
return address(uint160(account));
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*
* _Available since v2.4.0._
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-call-value
(bool success, ) = recipient.call.value(amount)("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
pragma solidity ^0.5.0;
interface IUniswapFactory {
function getExchange(address token) external view returns (address exchange);
}
interface IUniswapExchange {
function totalSupply() external view returns (uint256);
}
contract UniswapAPR is Ownable {
using SafeMath for uint;
using Address for address;
address public UNI;
// Ease of use functions, can also use generic lookups for new tokens
address public CDAI;
address public CBAT;
address public CETH;
address public CREP;
address public CSAI;
address public CUSDC;
address public CWBTC;
address public CZRX;
address public IZRX;
address public IREP;
address public IKNC;
address public IBAT;
address public IWBTC;
address public IUSDC;
address public IETH;
address public ISAI;
address public IDAI;
address public ILINK;
address public ISUSD;
address public ADAI;
address public ATUSD;
address public AUSDC;
address public AUSDT;
address public ASUSD;
address public ALEND;
address public ABAT;
address public AETH;
address public ALINK;
address public AKNC;
address public AREP;
address public AMKR;
address public AMANA;
address public AZRX;
address public ASNX;
address public AWBTC;
address public DAI;
address public TUSD;
address public USDC;
address public USDT;
address public SUSD;
address public LEND;
address public BAT;
address public ETH;
address public LINK;
address public KNC;
address public REP;
address public MKR;
address public MANA;
address public ZRX;
address public SNX;
address public WBTC;
constructor() public {
UNI = address(0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95);
CDAI = address(0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643);
CBAT = address(0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E);
CETH = address(0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5);
CREP = address(0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1);
CSAI = address(0xF5DCe57282A584D2746FaF1593d3121Fcac444dC);
CUSDC = address(0x39AA39c021dfbaE8faC545936693aC917d5E7563);
CWBTC = address(0xC11b1268C1A384e55C48c2391d8d480264A3A7F4);
CZRX = address(0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407);
IZRX = address(0xA7Eb2bc82df18013ecC2A6C533fc29446442EDEe);
IREP = address(0xBd56E9477Fc6997609Cf45F84795eFbDAC642Ff1);
IKNC = address(0x1cC9567EA2eB740824a45F8026cCF8e46973234D);
IWBTC = address(0xBA9262578EFef8b3aFf7F60Cd629d6CC8859C8b5);
IUSDC = address(0xF013406A0B1d544238083DF0B93ad0d2cBE0f65f);
IETH = address(0x77f973FCaF871459aa58cd81881Ce453759281bC);
ISAI = address(0x14094949152EDDBFcd073717200DA82fEd8dC960);
IDAI = address(0x493C57C4763932315A328269E1ADaD09653B9081);
ILINK = address(0x1D496da96caf6b518b133736beca85D5C4F9cBc5);
ISUSD = address(0x49f4592E641820e928F9919Ef4aBd92a719B4b49);
ADAI = address(0xfC1E690f61EFd961294b3e1Ce3313fBD8aa4f85d);
ATUSD = address(0x4DA9b813057D04BAef4e5800E36083717b4a0341);
AUSDC = address(0x9bA00D6856a4eDF4665BcA2C2309936572473B7E);
AUSDT = address(0x71fc860F7D3A592A4a98740e39dB31d25db65ae8);
ASUSD = address(0x625aE63000f46200499120B906716420bd059240);
ALEND = address(0x7D2D3688Df45Ce7C552E19c27e007673da9204B8);
ABAT = address(0xE1BA0FB44CCb0D11b80F92f4f8Ed94CA3fF51D00);
AETH = address(0x3a3A65aAb0dd2A17E3F1947bA16138cd37d08c04);
ALINK = address(0xA64BD6C70Cb9051F6A9ba1F163Fdc07E0DfB5F84);
AKNC = address(0x9D91BE44C06d373a8a226E1f3b146956083803eB);
AREP = address(0x71010A9D003445aC60C4e6A7017c1E89A477B438);
AMKR = address(0x7deB5e830be29F91E298ba5FF1356BB7f8146998);
AMANA = address(0x6FCE4A401B6B80ACe52baAefE4421Bd188e76F6f);
AZRX = address(0x6Fb0855c404E09c47C3fBCA25f08d4E41f9F062f);
ASNX = address(0x328C4c80BC7aCa0834Db37e6600A6c49E12Da4DE);
AWBTC = address(0xFC4B8ED459e00e5400be803A9BB3954234FD50e3);
DAI = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);
TUSD = address(0x0000000000085d4780B73119b644AE5ecd22b376);
USDC = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
USDT = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
SUSD = address(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51);
LEND = address(0x80fB784B7eD66730e8b1DBd9820aFD29931aab03);
BAT = address(0x0D8775F648430679A709E98d2b0Cb6250d2887EF);
ETH = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);
LINK = address(0x514910771AF9Ca656af840dff83E8264EcF986CA);
KNC = address(0xdd974D5C2e2928deA5F71b9825b8b646686BD200);
REP = address(0x1985365e9f78359a9B6AD760e32412f4a445E862);
MKR = address(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2);
MANA = address(0x0F5D2fB29fb7d3CFeE444a200298f468908cC942);
ZRX = address(0xE41d2489571d322189246DaFA5ebDe1F4699F498);
SNX = address(0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F);
WBTC = address(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599);
}
function getCDAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CDAI);
}
function getCBATUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CBAT);
}
function getCETHUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CETH);
}
function getCREPUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CREP);
}
function getCSAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CSAI);
}
function getCUSDCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CUSDC);
}
function getCWBTCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CWBTC);
}
function getCZRXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(CZRX);
}
function getIZRXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IZRX);
}
function getIREPUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IREP);
}
function getIKNCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IKNC);
}
function getIWBTCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IWBTC);
}
function getIUSDCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IUSDC);
}
function getIETHUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IETH);
}
function getISAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ISAI);
}
function getIDAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(IDAI);
}
function getILINKUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ILINK);
}
function getISUSDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ISUSD);
}
function getADAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ADAI);
}
function getATUSDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ATUSD);
}
function getAUSDCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AUSDC);
}
function getAUSDTUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AUSDT);
}
function getASUSDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ASUSD);
}
function getALENDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ALEND);
}
function getABATUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ABAT);
}
function getAETHUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AETH);
}
function getALINKUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ALINK);
}
function getAKNCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AKNC);
}
function getAREPUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AREP);
}
function getAMKRUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AMKR);
}
function getAMANAUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AMANA);
}
function getAZRXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AZRX);
}
function getASNXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ASNX);
}
function getAWBTCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(AWBTC);
}
function getDAIUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(DAI);
}
function getTUSDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(TUSD);
}
function getUSDCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(USDC);
}
function getUSDTUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(USDT);
}
function getSUSDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(SUSD);
}
function getLENDUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(LEND);
}
function getBATUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(BAT);
}
function getETHUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ETH);
}
function getLINKUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(LINK);
}
function getKNCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(KNC);
}
function getREPUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(REP);
}
function getMKRUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(MKR);
}
function getMANAUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(MANA);
}
function getZRXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(ZRX);
}
function getSNXUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(SNX);
}
function getWBTCUniROI() public view returns (uint256, uint256) {
return calcUniswapROI(WBTC);
}
function calcUniswapROI(address token) public view returns (uint256, uint256) {
IUniswapFactory factory = IUniswapFactory(UNI);
IUniswapExchange exchange = IUniswapExchange(factory.getExchange(token));
uint totalShares = exchange.totalSupply();
uint ethBalance = address(exchange).balance;
uint ret = 0;
if (ethBalance > 10) {
ret = ethBalance.mul(1000).div(totalShares);
}
return (ret, ethBalance);
}
// incase of half-way error
function inCaseTokenGetsStuck(IERC20 _TokenAddress) onlyOwner public {
uint qty = _TokenAddress.balanceOf(address(this));
_TokenAddress.transfer(msg.sender, qty);
}
// incase of half-way error
function inCaseETHGetsStuck() onlyOwner public{
(bool result, ) = msg.sender.call.value(address(this).balance)("");
require(result, "transfer of ETH failed");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"ABAT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ADAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AETH","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AKNC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALEND","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALINK","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AMANA","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AMKR","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AREP","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ASNX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ASUSD","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ATUSD","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AUSDC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AUSDT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AWBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AZRX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BAT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CBAT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CDAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CETH","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CREP","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CSAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CUSDC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CWBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CZRX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ETH","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IBAT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IDAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IETH","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IKNC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ILINK","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IREP","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ISAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ISUSD","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IUSDC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IWBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IZRX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KNC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LEND","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LINK","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MANA","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MKR","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REP","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SNX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SUSD","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TUSD","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USDT","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ZRX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"calcUniswapROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getABATUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getADAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAETHUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAKNCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getALENDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getALINKUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAMANAUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAMKRUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAREPUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getASNXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getASUSDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getATUSDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAUSDCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAUSDTUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAWBTCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAZRXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBATUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCBATUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCDAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCETHUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCREPUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCSAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCUSDCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCWBTCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCZRXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getETHUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIDAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIETHUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIKNCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getILINKUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIREPUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getISAIUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getISUSDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIUSDCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIWBTCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIZRXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getKNCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLENDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLINKUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMANAUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMKRUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getREPUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSNXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSUSDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTUSDUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUSDCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUSDTUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWBTCUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getZRXUniROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"inCaseETHGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_TokenAddress","type":"address"}],"name":"inCaseTokenGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5062000022620011cd60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a373c0a47dfe034b400b47bdad5fecda2621de6c4d95600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735d3a536e4d6dbd6114cc1ead35777bab948e3643600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736c8c6b02e7b2be14d4fa6022dfd6d75921d90e4e600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ddc2d193948926d02f9b1fe9e1daa0718270ed5600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073158079ee67fce2f58472a96584a73c7ab9ac95c1600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f5dce57282a584d2746faf1593d3121fcac444dc600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507339aa39c021dfbae8fac545936693ac917d5e7563600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c11b1268c1a384e55c48c2391d8d480264a3a7f4600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b3319f5d18bc0d84dd1b4825dcde5d5f7266d407600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a7eb2bc82df18013ecc2a6c533fc29446442edee600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bd56e9477fc6997609cf45f84795efbdac642ff1600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731cc9567ea2eb740824a45f8026ccf8e46973234d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ba9262578efef8b3aff7f60cd629d6cc8859c8b5600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f013406a0b1d544238083df0b93ad0d2cbe0f65f600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507377f973fcaf871459aa58cd81881ce453759281bc601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507314094949152eddbfcd073717200da82fed8dc960601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073493c57c4763932315a328269e1adad09653b9081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731d496da96caf6b518b133736beca85d5c4f9cbc5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507349f4592e641820e928f9919ef4abd92a719b4b49601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1e690f61efd961294b3e1ce3313fbd8aa4f85d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734da9b813057d04baef4e5800e36083717b4a0341601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739ba00d6856a4edf4665bca2c2309936572473b7e601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507371fc860f7d3a592a4a98740e39db31d25db65ae8601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073625ae63000f46200499120b906716420bd059240601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737d2d3688df45ce7c552e19c27e007673da9204b8601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e1ba0fb44ccb0d11b80f92f4f8ed94ca3ff51d00601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733a3a65aab0dd2a17e3f1947ba16138cd37d08c04601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a64bd6c70cb9051f6a9ba1f163fdc07e0dfb5f84601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739d91be44c06d373a8a226e1f3b146956083803eb601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507371010a9d003445ac60c4e6a7017c1e89a477b438601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737deb5e830be29f91e298ba5ff1356bb7f8146998602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736fce4a401b6b80ace52baaefe4421bd188e76f6f602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736fb0855c404e09c47c3fbca25f08d4e41f9f062f602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073328c4c80bc7aca0834db37e6600a6c49e12da4de602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc4b8ed459e00e5400be803a9bb3954234fd50e3602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b175474e89094c44da98b954eedeac495271d0f602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506e085d4780b73119b644ae5ecd22b376602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dac17f958d2ee523a2206206994597c13d831ec7602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507357ab1ec28d129707052df4df418d58a2d46d5f51602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507380fb784b7ed66730e8b1dbd9820afd29931aab03602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730d8775f648430679a709e98d2b0cb6250d2887ef602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073514910771af9ca656af840dff83e8264ecf986ca602d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dd974d5c2e2928dea5f71b9825b8b646686bd200602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731985365e9f78359a9b6ad760e32412f4a445e862602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f8f72aa9304c8b593d555f12ef6589cc3a579a2603060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730f5d2fb29fb7d3cfee444a200298f468908cc942603160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e41d2489571d322189246dafa5ebde1f4699f498603260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732260fac5e5542a773aa44fbcfedf7c193bc2c599603460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011d5565b600033905090565b613b6180620011e56000396000f3fe608060405234801561001057600080fd5b506004361061068f5760003560e01c80638323550b1161036c578063c8e86c55116101de578063e88f7b561161010f578063f2fde38b116100ad578063f84272be11610087578063f84272be14611d5f578063f8b5fff014611d84578063f976dd1514611dce578063ff3c269e14611df35761068f565b8063f2fde38b14611cc7578063f301e78114611d0b578063f60a15ed14611d555761068f565b8063eb22a022116100e9578063eb22a02214611be9578063ec9c37ac14611c33578063ecb4279514611c58578063f07a8ed214611ca25761068f565b8063e88f7b5614611b30578063e8d6101e14611b55578063e992d8d814611b9f5761068f565b8063d695c2161161017c578063e08e19c211610156578063e08e19c214611a52578063e0bab4c414611a77578063e1f2aeff14611ac1578063e2d0fcdd14611b0b5761068f565b8063d695c21614611999578063d9c75e37146119be578063dada70dc14611a085761068f565b8063ce77cf9b116101b8578063ce77cf9b146118e0578063d0d336cd14611905578063d2d229d21461192a578063d40fa8bf1461194f5761068f565b8063c8e86c551461184c578063cda0871014611871578063ce3a2ffe146118bb5761068f565b806398462c17116102b8578063aa00070b11610256578063c2af42ba11610230578063c2af42ba1461176e578063c30c7cae14611793578063c3da7451146117dd578063c54e44eb146118025761068f565b8063aa00070b146116b5578063b315de78146116ff578063bcbe1b52146117245761068f565b80639c0f9d46116102925780639c0f9d46146115d7578063a22db74c146115fc578063a37b9e7f14611646578063a8713847146116905761068f565b806398462c17146115435780639af798d1146115685780639be0587e1461158d5761068f565b80638f32d59b11610325578063946687bb116102ff578063946687bb14611465578063973f67661461148a57806397c193c5146114af578063982e2adf146114f95761068f565b80638f32d59b146113d457806390b2ee81146113f657806393f4d94a146114405761068f565b80638323550b1461123d578063841552b214611287578063878f7603146112ac57806389257a12146112f657806389a30271146113405780638da5cb5b1461138a5761068f565b806342d8871c11610505578063609b1f2e116104515780636eeb823f116103ef57806372142a2b116103c957806372142a2b1461113a57806373ace9e3146111845780637f8e4f64146111a95780638322fff2146111f35761068f565b80636eeb823f146110e6578063710393041461110b578063715018a6146111305761068f565b806361fd71941161042b57806361fd71941461100857806363a6894014611052578063641a13881461109c578063657af581146110c15761068f565b8063609b1f2e14610f745780636109682014610f995780636162c9d814610fe35761068f565b8063541bcb76116104be57806354c194f71161049857806354c194f714610e8157806355d2cb5a14610ea657806357c7b09914610ecb5780635b7ab89114610f2a5761068f565b8063541bcb7614610ded578063548c4ea814610e3757806354a3b83114610e5c5761068f565b806342d8871c14610c7b57806343d39c8b14610ca057806349386b5e14610cea5780634bd3105d14610d345780634dede3de14610d59578063536f263214610da35761068f565b80631c7685e8116105df5780633801a6491161057d5780633aed61d0116105575780633aed61d014610b9d5780633d31a4af14610bc25780633fa6a66b14610c0c57806340e0991b14610c565761068f565b80633801a64914610b095780633892838f14610b2e57806339ec407b14610b535761068f565b80632dee448b116105b95780632dee448b14610a315780632e8d6e1814610a56578063354c671714610a9a57806336cc9e7f14610ae45761068f565b80631c7685e8146109785780631cc16a6a1461099d57806328e8452d146109e75761068f565b8063137a43db1161064c57806319b770731161062657806319b770731461089a5780631aae0959146108bf5780631b1be2bf146108e45780631b6b6d231461092e5761068f565b8063137a43db146107e157806315d8eeba1461080657806318b3b509146108505761068f565b8063024a75621461069457806306276b6c146106b9578063062f67b2146106de5780630792f57b146107285780630b58a7a31461074d5780630dc0849a14610797575b600080fd5b61069c611e3d565b604051808381526020018281526020019250505060405180910390f35b6106c1611e73565b604051808381526020018281526020019250505060405180910390f35b6106e6611ea9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610730611ecf565b604051808381526020018281526020019250505060405180910390f35b610755611f05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61079f611f2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e9611f51565b604051808381526020018281526020019250505060405180910390f35b61080e611f87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610858611fad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a2611fd3565b604051808381526020018281526020019250505060405180910390f35b6108c7612009565b604051808381526020018281526020019250505060405180910390f35b6108ec61203f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610936612065565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61098061208b565b604051808381526020018281526020019250505060405180910390f35b6109a56120c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109ef6120e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a3961210d565b604051808381526020018281526020019250505060405180910390f35b610a9860048036036020811015610a6c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612143565b005b610aa2612340565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610aec612366565b604051808381526020018281526020019250505060405180910390f35b610b1161239c565b604051808381526020018281526020019250505060405180910390f35b610b366123d2565b604051808381526020018281526020019250505060405180910390f35b610b5b612408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ba561242e565b604051808381526020018281526020019250505060405180910390f35b610bca612464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c1461248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c5e6124b0565b604051808381526020018281526020019250505060405180910390f35b610c836124e6565b604051808381526020018281526020019250505060405180910390f35b610ca861251c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610cf2612542565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d3c612568565b604051808381526020018281526020019250505060405180910390f35b610d6161259e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dab6125c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610df56125ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3f612610565b604051808381526020018281526020019250505060405180910390f35b610e64612646565b604051808381526020018281526020019250505060405180910390f35b610e8961267c565b604051808381526020018281526020019250505060405180910390f35b610eae6126b2565b604051808381526020018281526020019250505060405180910390f35b610f0d60048036036020811015610ee157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e8565b604051808381526020018281526020019250505060405180910390f35b610f326128b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610f7c6128dd565b604051808381526020018281526020019250505060405180910390f35b610fa1612913565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610feb612939565b604051808381526020018281526020019250505060405180910390f35b61101061296f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61105a612995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110a46129bb565b604051808381526020018281526020019250505060405180910390f35b6110c96129f1565b604051808381526020018281526020019250505060405180910390f35b6110ee612a27565b604051808381526020018281526020019250505060405180910390f35b611113612a5d565b604051808381526020018281526020019250505060405180910390f35b611138612a93565b005b611142612bcc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61118c612bf2565b604051808381526020018281526020019250505060405180910390f35b6111b1612c28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111fb612c4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611245612c74565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61128f612c9a565b604051808381526020018281526020019250505060405180910390f35b6112b4612cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112fe612cf6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611348612d1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611392612d42565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113dc612d6b565b604051808215151515815260200191505060405180910390f35b6113fe612dc9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611448612def565b604051808381526020018281526020019250505060405180910390f35b61146d612e25565b604051808381526020018281526020019250505060405180910390f35b611492612e5b565b604051808381526020018281526020019250505060405180910390f35b6114b7612e91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611501612eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61154b612edd565b604051808381526020018281526020019250505060405180910390f35b611570612f13565b604051808381526020018281526020019250505060405180910390f35b611595612f49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6115df612f6f565b604051808381526020018281526020019250505060405180910390f35b611604612fa5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61164e612fcb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611698612ff1565b604051808381526020018281526020019250505060405180910390f35b6116bd613027565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61170761304d565b604051808381526020018281526020019250505060405180910390f35b61172c613083565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6117766130a9565b604051808381526020018281526020019250505060405180910390f35b61179b6130df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6117e5613105565b604051808381526020018281526020019250505060405180910390f35b61180a61313b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611854613161565b604051808381526020018281526020019250505060405180910390f35b611879613197565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6118c36131bd565b604051808381526020018281526020019250505060405180910390f35b6118e86131f3565b604051808381526020018281526020019250505060405180910390f35b61190d613229565b604051808381526020018281526020019250505060405180910390f35b61193261325f565b604051808381526020018281526020019250505060405180910390f35b611957613295565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6119a16132bb565b604051808381526020018281526020019250505060405180910390f35b6119c66132f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a10613317565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a5a61333d565b604051808381526020018281526020019250505060405180910390f35b611a7f613373565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611ac9613399565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611b136133bf565b604051808381526020018281526020019250505060405180910390f35b611b386133f5565b604051808381526020018281526020019250505060405180910390f35b611b5d61342b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611ba7613451565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611bf1613477565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611c3b61349d565b604051808381526020018281526020019250505060405180910390f35b611c606134d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611caa6134f9565b604051808381526020018281526020019250505060405180910390f35b611d0960048036036020811015611cdd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061352f565b005b611d136135b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611d5d6135db565b005b611d6761374b565b604051808381526020018281526020019250505060405180910390f35b611d8c613781565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611dd66137a7565b604051808381526020018281526020019250505060405180910390f35b611dfb6137dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080611e6b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080611ea1602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611efd601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611f7f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612001603160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612037600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806120b9601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061213b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b61214b612d6b565b6121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d602081101561226657600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561230057600080fd5b505af1158015612314573d6000803e3d6000fd5b505050506040513d602081101561232a57600080fd5b8101908080519060200190929190505050505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612394600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806123ca601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612400601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061245c603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806124de601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612514602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612596602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061263e602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612674602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806126aa602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806126e0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166306f2bf62866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561279157600080fd5b505afa1580156127a5573d6000803e3d6000fd5b505050506040513d60208110156127bb57600080fd5b8101908080519060200190929190505050905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561281657600080fd5b505afa15801561282a573d6000803e3d6000fd5b505050506040513d602081101561284057600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff163190506000809050600a8211156128a7576128a4836128966103e88561380390919063ffffffff16565b61388990919063ffffffff16565b90505b8082965096505050505050915091565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061290b603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612967602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806129e9600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a1f601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a55603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a8b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b612a9b612d6b565b612b0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612c20602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612cc8602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612dad6138d3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612e1d602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612e53600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612e89600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612f0b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612f41602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612f9d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061301f602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061307b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806130d7601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080613133600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061318f600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806131eb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613221601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b60008061328d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806132e9601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061336b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806133ed601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613423601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806134cb603260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080613527601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b613537612d6b565b6135a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6135b2816138db565b50565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6135e3612d6b565b613655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d80600081146136cc576040519150601f19603f3d011682016040523d82523d6000602084013e6136d1565b606091505b5050905080613748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600080613779600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806137d5600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156138165760009050613883565b600082840290508284828161382757fe5b041461387e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b0c6021913960400191505060405180910390fd5b809150505b92915050565b60006138cb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a1f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ae66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290613acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a90578082015181840152602081019050613a75565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ad757fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582024a8c11c1045f4949652f6d303a8f5dde8355550e5bb5ee36ed01e545a6f691164736f6c634300050c0032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061068f5760003560e01c80638323550b1161036c578063c8e86c55116101de578063e88f7b561161010f578063f2fde38b116100ad578063f84272be11610087578063f84272be14611d5f578063f8b5fff014611d84578063f976dd1514611dce578063ff3c269e14611df35761068f565b8063f2fde38b14611cc7578063f301e78114611d0b578063f60a15ed14611d555761068f565b8063eb22a022116100e9578063eb22a02214611be9578063ec9c37ac14611c33578063ecb4279514611c58578063f07a8ed214611ca25761068f565b8063e88f7b5614611b30578063e8d6101e14611b55578063e992d8d814611b9f5761068f565b8063d695c2161161017c578063e08e19c211610156578063e08e19c214611a52578063e0bab4c414611a77578063e1f2aeff14611ac1578063e2d0fcdd14611b0b5761068f565b8063d695c21614611999578063d9c75e37146119be578063dada70dc14611a085761068f565b8063ce77cf9b116101b8578063ce77cf9b146118e0578063d0d336cd14611905578063d2d229d21461192a578063d40fa8bf1461194f5761068f565b8063c8e86c551461184c578063cda0871014611871578063ce3a2ffe146118bb5761068f565b806398462c17116102b8578063aa00070b11610256578063c2af42ba11610230578063c2af42ba1461176e578063c30c7cae14611793578063c3da7451146117dd578063c54e44eb146118025761068f565b8063aa00070b146116b5578063b315de78146116ff578063bcbe1b52146117245761068f565b80639c0f9d46116102925780639c0f9d46146115d7578063a22db74c146115fc578063a37b9e7f14611646578063a8713847146116905761068f565b806398462c17146115435780639af798d1146115685780639be0587e1461158d5761068f565b80638f32d59b11610325578063946687bb116102ff578063946687bb14611465578063973f67661461148a57806397c193c5146114af578063982e2adf146114f95761068f565b80638f32d59b146113d457806390b2ee81146113f657806393f4d94a146114405761068f565b80638323550b1461123d578063841552b214611287578063878f7603146112ac57806389257a12146112f657806389a30271146113405780638da5cb5b1461138a5761068f565b806342d8871c11610505578063609b1f2e116104515780636eeb823f116103ef57806372142a2b116103c957806372142a2b1461113a57806373ace9e3146111845780637f8e4f64146111a95780638322fff2146111f35761068f565b80636eeb823f146110e6578063710393041461110b578063715018a6146111305761068f565b806361fd71941161042b57806361fd71941461100857806363a6894014611052578063641a13881461109c578063657af581146110c15761068f565b8063609b1f2e14610f745780636109682014610f995780636162c9d814610fe35761068f565b8063541bcb76116104be57806354c194f71161049857806354c194f714610e8157806355d2cb5a14610ea657806357c7b09914610ecb5780635b7ab89114610f2a5761068f565b8063541bcb7614610ded578063548c4ea814610e3757806354a3b83114610e5c5761068f565b806342d8871c14610c7b57806343d39c8b14610ca057806349386b5e14610cea5780634bd3105d14610d345780634dede3de14610d59578063536f263214610da35761068f565b80631c7685e8116105df5780633801a6491161057d5780633aed61d0116105575780633aed61d014610b9d5780633d31a4af14610bc25780633fa6a66b14610c0c57806340e0991b14610c565761068f565b80633801a64914610b095780633892838f14610b2e57806339ec407b14610b535761068f565b80632dee448b116105b95780632dee448b14610a315780632e8d6e1814610a56578063354c671714610a9a57806336cc9e7f14610ae45761068f565b80631c7685e8146109785780631cc16a6a1461099d57806328e8452d146109e75761068f565b8063137a43db1161064c57806319b770731161062657806319b770731461089a5780631aae0959146108bf5780631b1be2bf146108e45780631b6b6d231461092e5761068f565b8063137a43db146107e157806315d8eeba1461080657806318b3b509146108505761068f565b8063024a75621461069457806306276b6c146106b9578063062f67b2146106de5780630792f57b146107285780630b58a7a31461074d5780630dc0849a14610797575b600080fd5b61069c611e3d565b604051808381526020018281526020019250505060405180910390f35b6106c1611e73565b604051808381526020018281526020019250505060405180910390f35b6106e6611ea9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610730611ecf565b604051808381526020018281526020019250505060405180910390f35b610755611f05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61079f611f2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e9611f51565b604051808381526020018281526020019250505060405180910390f35b61080e611f87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610858611fad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a2611fd3565b604051808381526020018281526020019250505060405180910390f35b6108c7612009565b604051808381526020018281526020019250505060405180910390f35b6108ec61203f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610936612065565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61098061208b565b604051808381526020018281526020019250505060405180910390f35b6109a56120c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109ef6120e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a3961210d565b604051808381526020018281526020019250505060405180910390f35b610a9860048036036020811015610a6c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612143565b005b610aa2612340565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610aec612366565b604051808381526020018281526020019250505060405180910390f35b610b1161239c565b604051808381526020018281526020019250505060405180910390f35b610b366123d2565b604051808381526020018281526020019250505060405180910390f35b610b5b612408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ba561242e565b604051808381526020018281526020019250505060405180910390f35b610bca612464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c1461248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c5e6124b0565b604051808381526020018281526020019250505060405180910390f35b610c836124e6565b604051808381526020018281526020019250505060405180910390f35b610ca861251c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610cf2612542565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d3c612568565b604051808381526020018281526020019250505060405180910390f35b610d6161259e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dab6125c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610df56125ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3f612610565b604051808381526020018281526020019250505060405180910390f35b610e64612646565b604051808381526020018281526020019250505060405180910390f35b610e8961267c565b604051808381526020018281526020019250505060405180910390f35b610eae6126b2565b604051808381526020018281526020019250505060405180910390f35b610f0d60048036036020811015610ee157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e8565b604051808381526020018281526020019250505060405180910390f35b610f326128b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610f7c6128dd565b604051808381526020018281526020019250505060405180910390f35b610fa1612913565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610feb612939565b604051808381526020018281526020019250505060405180910390f35b61101061296f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61105a612995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110a46129bb565b604051808381526020018281526020019250505060405180910390f35b6110c96129f1565b604051808381526020018281526020019250505060405180910390f35b6110ee612a27565b604051808381526020018281526020019250505060405180910390f35b611113612a5d565b604051808381526020018281526020019250505060405180910390f35b611138612a93565b005b611142612bcc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61118c612bf2565b604051808381526020018281526020019250505060405180910390f35b6111b1612c28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111fb612c4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611245612c74565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61128f612c9a565b604051808381526020018281526020019250505060405180910390f35b6112b4612cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112fe612cf6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611348612d1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611392612d42565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113dc612d6b565b604051808215151515815260200191505060405180910390f35b6113fe612dc9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611448612def565b604051808381526020018281526020019250505060405180910390f35b61146d612e25565b604051808381526020018281526020019250505060405180910390f35b611492612e5b565b604051808381526020018281526020019250505060405180910390f35b6114b7612e91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611501612eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61154b612edd565b604051808381526020018281526020019250505060405180910390f35b611570612f13565b604051808381526020018281526020019250505060405180910390f35b611595612f49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6115df612f6f565b604051808381526020018281526020019250505060405180910390f35b611604612fa5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61164e612fcb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611698612ff1565b604051808381526020018281526020019250505060405180910390f35b6116bd613027565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61170761304d565b604051808381526020018281526020019250505060405180910390f35b61172c613083565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6117766130a9565b604051808381526020018281526020019250505060405180910390f35b61179b6130df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6117e5613105565b604051808381526020018281526020019250505060405180910390f35b61180a61313b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611854613161565b604051808381526020018281526020019250505060405180910390f35b611879613197565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6118c36131bd565b604051808381526020018281526020019250505060405180910390f35b6118e86131f3565b604051808381526020018281526020019250505060405180910390f35b61190d613229565b604051808381526020018281526020019250505060405180910390f35b61193261325f565b604051808381526020018281526020019250505060405180910390f35b611957613295565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6119a16132bb565b604051808381526020018281526020019250505060405180910390f35b6119c66132f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a10613317565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a5a61333d565b604051808381526020018281526020019250505060405180910390f35b611a7f613373565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611ac9613399565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611b136133bf565b604051808381526020018281526020019250505060405180910390f35b611b386133f5565b604051808381526020018281526020019250505060405180910390f35b611b5d61342b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611ba7613451565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611bf1613477565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611c3b61349d565b604051808381526020018281526020019250505060405180910390f35b611c606134d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611caa6134f9565b604051808381526020018281526020019250505060405180910390f35b611d0960048036036020811015611cdd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061352f565b005b611d136135b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611d5d6135db565b005b611d6761374b565b604051808381526020018281526020019250505060405180910390f35b611d8c613781565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611dd66137a7565b604051808381526020018281526020019250505060405180910390f35b611dfb6137dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080611e6b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080611ea1602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611efd601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611f7f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612001603160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612037600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806120b9601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061213b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b61214b612d6b565b6121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d602081101561226657600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561230057600080fd5b505af1158015612314573d6000803e3d6000fd5b505050506040513d602081101561232a57600080fd5b8101908080519060200190929190505050505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612394600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806123ca601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612400601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061245c603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806124de601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612514602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612596602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061263e602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612674602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806126aa602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806126e0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166306f2bf62866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561279157600080fd5b505afa1580156127a5573d6000803e3d6000fd5b505050506040513d60208110156127bb57600080fd5b8101908080519060200190929190505050905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561281657600080fd5b505afa15801561282a573d6000803e3d6000fd5b505050506040513d602081101561284057600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff163190506000809050600a8211156128a7576128a4836128966103e88561380390919063ffffffff16565b61388990919063ffffffff16565b90505b8082965096505050505050915091565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061290b603060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612967602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806129e9600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a1f601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a55603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612a8b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b612a9b612d6b565b612b0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612c20602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612cc8602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612dad6138d3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612e1d602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612e53600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612e89600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612f0b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080612f41602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612f9d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061301f602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061307b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806130d7601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080613133600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061318f600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806131eb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613221601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b60008061328d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806132e9601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061336b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806133ed601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600080613423601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806134cb603260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b603160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080613527601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b613537612d6b565b6135a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6135b2816138db565b50565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6135e3612d6b565b613655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d80600081146136cc576040519150601f19603f3d011682016040523d82523d6000602084013e6136d1565b606091505b5050905080613748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600080613779600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806137d5600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126e8565b915091509091565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156138165760009050613883565b600082840290508284828161382757fe5b041461387e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b0c6021913960400191505060405180910390fd5b809150505b92915050565b60006138cb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a1f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ae66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290613acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a90578082015181840152602081019050613a75565b50505050905090810190601f168015613abd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ad757fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582024a8c11c1045f4949652f6d303a8f5dde8355550e5bb5ee36ed01e545a6f691164736f6c634300050c0032
Deployed Bytecode Sourcemap
15433:11779:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15433:11779:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20546:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;25478:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16823:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23424:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16167:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16221;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22268:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16670:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16085:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25814:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21116:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16194:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16772:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22962:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15927:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15794:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25026:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;26800:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26800:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16381:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20774:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22154;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22040;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16141:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;26152:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16848:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15980:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23768:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;25364;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16112:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16486:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23996:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16949:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16248:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15535:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24798:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23882;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;24112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20888;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;26268:491;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26268:491:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16722:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25702:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15689:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25590:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16512:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15901;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21466:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22846:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;26040:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21002:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5800:140;;;:::i;:::-;;15663:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24458:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16433:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16747:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16592:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24912:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15637:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16328;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16618;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4989:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5355:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15875:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24340:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20660:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21808:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16407:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16538:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25140:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;24684:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16007:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21348:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15849:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15767:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25252:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16302:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24570:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16459:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23078:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15953:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21924:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16644:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21580:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16033:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22616:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22730:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22382;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16899:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22498:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15715:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16059;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24226:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16567:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16275:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23310:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23654;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16924:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16798;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15741:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25928:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16873:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23538:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6095:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6095:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16696:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27026:183;;;:::i;:::-;;21232:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15821:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21694:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16354:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20546:108;20592:7;20601;20626:20;20641:4;;;;;;;;;;;20626:14;:20::i;:::-;20619:27;;;;20546:108;;:::o;25478:106::-;25523:7;25532;25557:19;25572:3;;;;;;;;;;;25557:14;:19::i;:::-;25550:26;;;;25478:106;;:::o;16823:18::-;;;;;;;;;;;;;:::o;23424:108::-;23470:7;23479;23504:20;23519:4;;;;;;;;;;;23504:14;:20::i;:::-;23497:27;;;;23424:108;;:::o;16167:20::-;;;;;;;;;;;;;:::o;16221:::-;;;;;;;;;;;;;:::o;22268:108::-;22314:7;22323;22348:20;22363:4;;;;;;;;;;;22348:14;:20::i;:::-;22341:27;;;;22268:108;;:::o;16670:19::-;;;;;;;;;;;;;:::o;16085:20::-;;;;;;;;;;;;;:::o;25814:108::-;25860:7;25869;25894:20;25909:4;;;;;;;;;;;25894:14;:20::i;:::-;25887:27;;;;25814:108;;:::o;21116:110::-;21163:7;21172;21197:21;21212:5;;;;;;;;;;;21197:14;:21::i;:::-;21190:28;;;;21116:110;;:::o;16194:20::-;;;;;;;;;;;;;:::o;16772:19::-;;;;;;;;;;;;;:::o;22962:110::-;23009:7;23018;23043:21;23058:5;;;;;;;;;;;23043:14;:21::i;:::-;23036:28;;;;22962:110;;:::o;15927:19::-;;;;;;;;;;;;;:::o;15794:20::-;;;;;;;;;;;;;:::o;25026:108::-;25072:7;25081;25106:20;25121:4;;;;;;;;;;;25106:14;:20::i;:::-;25099:27;;;;25026:108;;:::o;26800:187::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26880:8;26891:13;:23;;;26923:4;26891:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26891:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26891:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26891:38:0;;;;;;;;;;;;;;;;26880:49;;26940:13;:22;;;26963:10;26975:3;26940:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26940:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26940:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26940:39:0;;;;;;;;;;;;;;;;;5258:1;26800:187;:::o;16381:19::-;;;;;;;;;;;;;:::o;20774:108::-;20820:7;20829;20854:20;20869:4;;;;;;;;;;;20854:14;:20::i;:::-;20847:27;;;;20774:108;;:::o;22154:::-;22200:7;22209;22234:20;22249:4;;;;;;;;;;;22234:14;:20::i;:::-;22227:27;;;;22154:108;;:::o;22040:::-;22086:7;22095;22120:20;22135:4;;;;;;;;;;;22120:14;:20::i;:::-;22113:27;;;;22040:108;;:::o;16141:19::-;;;;;;;;;;;;;:::o;26152:108::-;26198:7;26207;26232:20;26247:4;;;;;;;;;;;26232:14;:20::i;:::-;26225:27;;;;26152:108;;:::o;16848:18::-;;;;;;;;;;;;;:::o;15980:20::-;;;;;;;;;;;;;:::o;23768:108::-;23814:7;23823;23848:20;23863:4;;;;;;;;;;;23848:14;:20::i;:::-;23841:27;;;;23768:108;;:::o;25364:::-;25410:7;25419;25444:20;25459:4;;;;;;;;;;;25444:14;:20::i;:::-;25437:27;;;;25364:108;;:::o;16112:20::-;;;;;;;;;;;;;:::o;16486:19::-;;;;;;;;;;;;;:::o;23996:110::-;24043:7;24052;24077:21;24092:5;;;;;;;;;;;24077:14;:21::i;:::-;24070:28;;;;23996:110;;:::o;16949:19::-;;;;;;;;;;;;;:::o;16248:20::-;;;;;;;;;;;;;:::o;15535:18::-;;;;;;;;;;;;;:::o;24798:108::-;24844:7;24853;24878:20;24893:4;;;;;;;;;;;24878:14;:20::i;:::-;24871:27;;;;24798:108;;:::o;23882:::-;23928:7;23937;23962:20;23977:4;;;;;;;;;;;23962:14;:20::i;:::-;23955:27;;;;23882:108;;:::o;24112:::-;24158:7;24167;24192:20;24207:4;;;;;;;;;;;24192:14;:20::i;:::-;24185:27;;;;24112:108;;:::o;20888:::-;20934:7;20943;20968:20;20983:4;;;;;;;;;;;20968:14;:20::i;:::-;20961:27;;;;20888:108;;:::o;26268:491::-;26328:7;26337;26357:23;26399:3;;;;;;;;;;;26357:46;;26414:25;26459:7;:19;;;26479:5;26459:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26459:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26459:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26459:26:0;;;;;;;;;;;;;;;;26414:72;;26499:16;26518:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26518:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26518:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26518:22:0;;;;;;;;;;;;;;;;26499:41;;26551:15;26577:8;26569:25;;;26551:43;;26605:8;26616:1;26605:12;;26645:2;26632:10;:15;26628:89;;;26668:37;26693:11;26668:20;26683:4;26668:10;:14;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;26662:43;;26628:89;26735:3;26740:10;26727:24;;;;;;;;;26268:491;;;:::o;16722:18::-;;;;;;;;;;;;;:::o;25702:106::-;25747:7;25756;25781:19;25796:3;;;;;;;;;;;25781:14;:19::i;:::-;25774:26;;;;25702:106;;:::o;15689:19::-;;;;;;;;;;;;;:::o;25590:106::-;25635:7;25644;25669:19;25684:3;;;;;;;;;;;25669:14;:19::i;:::-;25662:26;;;;25590:106;;:::o;16512:19::-;;;;;;;;;;;;;:::o;15901:::-;;;;;;;;;;;;;:::o;21466:108::-;21512:7;21521;21546:20;21561:4;;;;;;;;;;;21546:14;:20::i;:::-;21539:27;;;;21466:108;;:::o;22846:110::-;22893:7;22902;22927:21;22942:5;;;;;;;;;;;22927:14;:21::i;:::-;22920:28;;;;22846:110;;:::o;26040:106::-;26085:7;26094;26119:19;26134:3;;;;;;;;;;;26119:14;:19::i;:::-;26112:26;;;;26040:106;;:::o;21002:108::-;21048:7;21057;21082:20;21097:4;;;;;;;;;;;21082:14;:20::i;:::-;21075:27;;;;21002:108;;:::o;5800:140::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5899:1;5862:40;;5883:6;;;;;;;;;;;5862:40;;;;;;;;;;;;5930:1;5913:6;;:19;;;;;;;;;;;;;;;;;;5800:140::o;15663:19::-;;;;;;;;;;;;;:::o;24458:106::-;24503:7;24512;24537:19;24552:3;;;;;;;;;;;24537:14;:19::i;:::-;24530:26;;;;24458:106;;:::o;16433:19::-;;;;;;;;;;;;;:::o;16747:18::-;;;;;;;;;;;;;:::o;16592:19::-;;;;;;;;;;;;;:::o;24912:108::-;24958:7;24967;24992:20;25007:4;;;;;;;;;;;24992:14;:20::i;:::-;24985:27;;;;24912:108;;:::o;15637:19::-;;;;;;;;;;;;;:::o;16328:::-;;;;;;;;;;;;;:::o;16618:::-;;;;;;;;;;;;;:::o;4989:79::-;5027:7;5054:6;;;;;;;;;;;5047:13;;4989:79;:::o;5355:94::-;5395:4;5435:6;;;;;;;;;;;5419:22;;:12;:10;:12::i;:::-;:22;;;5412:29;;5355:94;:::o;15875:19::-;;;;;;;;;;;;;:::o;24340:110::-;24387:7;24396;24421:21;24436:5;;;;;;;;;;;24421:14;:21::i;:::-;24414:28;;;;24340:110;;:::o;20660:108::-;20706:7;20715;20740:20;20755:4;;;;;;;;;;;20740:14;:20::i;:::-;20733:27;;;;20660:108;;:::o;21808:110::-;21855:7;21864;21889:21;21904:5;;;;;;;;;;;21889:14;:21::i;:::-;21882:28;;;;21808:110;;:::o;16407:19::-;;;;;;;;;;;;;:::o;16538:20::-;;;;;;;;;;;;;:::o;25140:106::-;25185:7;25194;25219:19;25234:3;;;;;;;;;;;25219:14;:19::i;:::-;25212:26;;;;25140:106;;:::o;24684:108::-;24730:7;24739;24764:20;24779:4;;;;;;;;;;;24764:14;:20::i;:::-;24757:27;;;;24684:108;;:::o;16007:19::-;;;;;;;;;;;;;:::o;21348:108::-;21394:7;21403;21428:20;21443:4;;;;;;;;;;;21428:14;:20::i;:::-;21421:27;;;;21348:108;;:::o;15849:19::-;;;;;;;;;;;;;:::o;15767:20::-;;;;;;;;;;;;;:::o;25252:106::-;25297:7;25306;25331:19;25346:3;;;;;;;;;;;25331:14;:19::i;:::-;25324:26;;;;25252:106;;:::o;16302:19::-;;;;;;;;;;;;;:::o;24570:108::-;24616:7;24625;24650:20;24665:4;;;;;;;;;;;24650:14;:20::i;:::-;24643:27;;;;24570:108;;:::o;16459:20::-;;;;;;;;;;;;;:::o;23078:110::-;23125:7;23134;23159:21;23174:5;;;;;;;;;;;23159:14;:21::i;:::-;23152:28;;;;23078:110;;:::o;15953:20::-;;;;;;;;;;;;;:::o;21924:110::-;21971:7;21980;22005:21;22020:5;;;;;;;;;;;22005:14;:21::i;:::-;21998:28;;;;21924:110;;:::o;16644:19::-;;;;;;;;;;;;;:::o;21580:108::-;21626:7;21635;21660:20;21675:4;;;;;;;;;;;21660:14;:20::i;:::-;21653:27;;;;21580:108;;:::o;16033:19::-;;;;;;;;;;;;;:::o;22616:108::-;22662:7;22671;22696:20;22711:4;;;;;;;;;;;22696:14;:20::i;:::-;22689:27;;;;22616:108;;:::o;22730:110::-;22777:7;22786;22811:21;22826:5;;;;;;;;;;;22811:14;:21::i;:::-;22804:28;;;;22730:110;;:::o;23194:::-;23241:7;23250;23275:21;23290:5;;;;;;;;;;;23275:14;:21::i;:::-;23268:28;;;;23194:110;;:::o;22382:::-;22429:7;22438;22463:21;22478:5;;;;;;;;;;;22463:14;:21::i;:::-;22456:28;;;;22382:110;;:::o;16899:18::-;;;;;;;;;;;;;:::o;22498:110::-;22545:7;22554;22579:21;22594:5;;;;;;;;;;;22579:14;:21::i;:::-;22572:28;;;;22498:110;;:::o;15715:19::-;;;;;;;;;;;;;:::o;16059:::-;;;;;;;;;;;;;:::o;24226:108::-;24272:7;24281;24306:20;24321:4;;;;;;;;;;;24306:14;:20::i;:::-;24299:27;;;;24226:108;;:::o;16567:18::-;;;;;;;;;;;;;:::o;16275:20::-;;;;;;;;;;;;;:::o;23310:108::-;23356:7;23365;23390:20;23405:4;;;;;;;;;;;23390:14;:20::i;:::-;23383:27;;;;23310:108;;:::o;23654:::-;23700:7;23709;23734:20;23749:4;;;;;;;;;;;23734:14;:20::i;:::-;23727:27;;;;23654:108;;:::o;16924:18::-;;;;;;;;;;;;;:::o;16798:::-;;;;;;;;;;;;;:::o;15741:19::-;;;;;;;;;;;;;:::o;25928:106::-;25973:7;25982;26007:19;26022:3;;;;;;;;;;;26007:14;:19::i;:::-;26000:26;;;;25928:106;;:::o;16873:19::-;;;;;;;;;;;;;:::o;23538:110::-;23585:7;23594;23619:21;23634:5;;;;;;;;;;;23619:14;:21::i;:::-;23612:28;;;;23538:110;;:::o;6095:109::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6168:28;6187:8;6168:18;:28::i;:::-;6095:109;:::o;16696:19::-;;;;;;;;;;;;;:::o;27026:183::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27084:11;27101:10;:15;;27131:4;27123:21;;;27101:48;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;27083:66:0;;;27168:6;27160:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5258:1;27026:183::o;21232:110::-;21279:7;21288;21313:21;21328:5;;;;;;;;;;;21313:14;:21::i;:::-;21306:28;;;;21232:110;;:::o;15821:19::-;;;;;;;;;;;;;:::o;21694:108::-;21740:7;21749;21774:20;21789:4;;;;;;;;;;;21774:14;:20::i;:::-;21767:27;;;;21694:108;;:::o;16354:20::-;;;;;;;;;;;;;:::o;8831:471::-;8889:7;9139:1;9134;:6;9130:47;;;9164:1;9157:8;;;;9130:47;9189:9;9205:1;9201;:5;9189:17;;9234:1;9229;9225;:5;;;;;;:10;9217:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9293:1;9286:8;;;8831:471;;;;;:::o;9770:132::-;9828:7;9855:39;9859:1;9862;9855:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9848:46;;9770:132;;;;:::o;3738:98::-;3783:15;3818:10;3811:17;;3738:98;:::o;6310:229::-;6404:1;6384:22;;:8;:22;;;;6376:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6494:8;6465:38;;6486:6;;;;;;;;;;;6465:38;;;;;;;;;;;;6523:8;6514:6;;:17;;;;;;;;;;;;;;;;;;6310:229;:::o;10432:345::-;10518:7;10617:1;10613;:5;10620:12;10605:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10605:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10644:9;10660:1;10656;:5;;;;;;10644:17;;10768:1;10761:8;;;10432:345;;;;;:::o
Swarm Source
bzzr://24a8c11c1045f4949652f6d303a8f5dde8355550e5bb5ee36ed01e545a6f6911
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.