Overview
APE Balance
APE Value
$0.00Multichain Info
Latest 25 from a total of 96 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approvals | 3770515 | 444 days ago | IN | 0 APE | 0.0007785 | ||||
| Sell Eggs | 3566391 | 446 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3557942 | 446 days ago | IN | 0 APE | 0.00171106 | ||||
| Sell Eggs | 3519937 | 447 days ago | IN | 0 APE | 0.00171106 | ||||
| Approvals | 3458343 | 447 days ago | IN | 0 APE | 0.00077789 | ||||
| Sell Eggs | 3457232 | 447 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3398598 | 448 days ago | IN | 0 APE | 0.00171109 | ||||
| Approvals | 3398556 | 448 days ago | IN | 0 APE | 0.00077822 | ||||
| Sell Eggs | 3395987 | 448 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3382527 | 448 days ago | IN | 0 APE | 0.00171106 | ||||
| Sell Eggs | 3330250 | 448 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3290512 | 448 days ago | IN | 0 APE | 0.00171106 | ||||
| Approvals | 3286785 | 448 days ago | IN | 0 APE | 0.00077822 | ||||
| Sell Eggs | 3281295 | 448 days ago | IN | 0 APE | 0.00171109 | ||||
| Approvals | 3244927 | 449 days ago | IN | 0 APE | 0.00077822 | ||||
| Sell Eggs | 3231537 | 449 days ago | IN | 0 APE | 0.00171076 | ||||
| Sell Eggs | 3207325 | 449 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3199885 | 449 days ago | IN | 0 APE | 0.00171106 | ||||
| Sell Eggs | 3153936 | 449 days ago | IN | 0 APE | 0.00171076 | ||||
| Approvals | 3151000 | 449 days ago | IN | 0 APE | 0.00077822 | ||||
| Sell Eggs | 3150793 | 449 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3135164 | 450 days ago | IN | 0 APE | 0.00171109 | ||||
| Approvals | 3132871 | 450 days ago | IN | 0 APE | 0.00077822 | ||||
| Sell Eggs | 3132321 | 450 days ago | IN | 0 APE | 0.00171109 | ||||
| Sell Eggs | 3116001 | 450 days ago | IN | 0 APE | 0.00171109 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 3770515 | 444 days ago | 0.39375468 APE | ||||
| 3566391 | 446 days ago | 0.01558644 APE | ||||
| 3566391 | 446 days ago | 0.00082033 APE | ||||
| 3557942 | 446 days ago | 0.00694576 APE | ||||
| 3557942 | 446 days ago | 0.00036556 APE | ||||
| 3519937 | 447 days ago | 0.0203428 APE | ||||
| 3519937 | 447 days ago | 0.00107067 APE | ||||
| 3458343 | 447 days ago | 10 APE | ||||
| 3457232 | 447 days ago | 0.28411073 APE | ||||
| 3457232 | 447 days ago | 0.01495319 APE | ||||
| 3398598 | 448 days ago | 0.01647267 APE | ||||
| 3398598 | 448 days ago | 0.00086698 APE | ||||
| 3398556 | 448 days ago | 45 APE | ||||
| 3395987 | 448 days ago | 1.25195354 APE | ||||
| 3395987 | 448 days ago | 0.06589229 APE | ||||
| 3382527 | 448 days ago | 1.90802804 APE | ||||
| 3382527 | 448 days ago | 0.10042252 APE | ||||
| 3330250 | 448 days ago | 1.32639911 APE | ||||
| 3330250 | 448 days ago | 0.06981047 APE | ||||
| 3290512 | 448 days ago | 1.98875387 APE | ||||
| 3290512 | 448 days ago | 0.10467125 APE | ||||
| 3286785 | 448 days ago | 50 APE | ||||
| 3281295 | 448 days ago | 3.2561286 APE | ||||
| 3281295 | 448 days ago | 0.17137518 APE | ||||
| 3244927 | 449 days ago | 50 APE |
Cross-Chain Transactions
Contract Source Code (Solidity)
/**
*Submitted for verification at apescan.io on 2024-10-28
*/
// SPDX-License-Identifier: MIT
/*
## ### ## ### ### ## ## #### ### ## ### ### ### ##
## ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## # ### # ## # ## # ## ## ##
## ## ## ## ## ## ## # ## ## ## ## ## ## ## ##
## ### ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ##
### ## #### ### ### ## ## #### ### ## ### ### #### ##
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// 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 (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @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) {
return a + b;
}
/**
* @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 a - b;
}
/**
* @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) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting 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 a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting 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.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* 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,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
pragma solidity 0.8.9;
/**
* @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 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.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
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 () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
address referer,
uint deadline
) external payable;
}
contract ApeMiner is Context, Ownable {
using SafeMath for uint256;
uint256 private EGGS_TO_HATCH_1MINERS = 144000;//for final version should be seconds in a day
uint256 private PSN = 10000;
uint256 private PSNH = 5000;
uint256 private devFeeVal = 5;
bool private initialized = true;
IRouter public router;
uint256 private burn_percentage = 2;
bool public buyBurn = false;
address payable private recAdd;
address public burn_token = 0x0000000000000000000000000000000000000000;
address dead_receiver = 0x000000000000000000000000000000000000dEaD;
address private refererForSwap = 0x3f4FbD839668B3cc9473c2E4af5469AC3cED0d5d;
mapping (address => uint256) private hatcheryMiners;
mapping (address => uint256) private claimedEggs;
mapping (address => uint256) private lastHatch;
mapping (address => address) private referrals;
uint256 private marketEggs;
constructor() {
recAdd = payable(msg.sender);
//owner = msg.sender;
IRouter _router = IRouter(0x2b59Eb03865D18d8B62a5956BBbFaE352fc1C148);
router = _router;
}
function hatchEggs(address ref) public {
require(initialized);
if(ref == msg.sender) {
ref = address(0);
}
if(referrals[msg.sender] == address(0) && referrals[msg.sender] != msg.sender) {
referrals[msg.sender] = ref;
}
uint256 eggsUsed = getMyEggs(msg.sender);
uint256 newMiners = SafeMath.div(eggsUsed,EGGS_TO_HATCH_1MINERS);
hatcheryMiners[msg.sender] = SafeMath.add(hatcheryMiners[msg.sender],newMiners);
claimedEggs[msg.sender] = 0;
lastHatch[msg.sender] = block.timestamp;
//send referral eggs
claimedEggs[referrals[msg.sender]] = SafeMath.add(claimedEggs[referrals[msg.sender]],SafeMath.div(eggsUsed,8));
//boost market to nerf miners hoarding
marketEggs=SafeMath.add(marketEggs,SafeMath.div(eggsUsed,5));
}
function sellEggs() public {
require(initialized);
uint256 hasEggs = getMyEggs(msg.sender);
uint256 eggValue = calculateEggSell(hasEggs);
uint256 fee = devFee(eggValue);
claimedEggs[msg.sender] = 0;
lastHatch[msg.sender] = block.timestamp;
marketEggs = SafeMath.add(marketEggs,hasEggs);
recAdd.transfer(fee);
payable (msg.sender).transfer(SafeMath.sub(eggValue,fee));
}
function beanRewards(address adr) public view returns(uint256) {
uint256 hasEggs = getMyEggs(adr);
uint256 eggValue = calculateEggSell(hasEggs);
return eggValue;
}
function buyEggs(address ref) public payable {
require(initialized);
uint256 eggsBought = calculateEggBuy(msg.value,SafeMath.sub(address(this).balance,msg.value));
eggsBought = SafeMath.sub(eggsBought,(SafeMath.add(devFee(eggsBought),burnFee(eggsBought))));
uint256 fee = devFee(msg.value);
recAdd.transfer(fee);
uint256 bfee = burnFee(msg.value);
if(buyBurn){
uint256 burnAmt = bfee;
buybackBurn(burnAmt); }
claimedEggs[msg.sender] = SafeMath.add(claimedEggs[msg.sender],eggsBought);
hatchEggs(ref);
emit LogDeposit(msg.sender, msg.value, address(this).balance);
}
function calculateTrade(uint256 rt,uint256 rs, uint256 bs) private view returns(uint256) {
return SafeMath.div(SafeMath.mul(PSN,bs),SafeMath.add(PSNH,SafeMath.div(SafeMath.add(SafeMath.mul(PSN,rs),SafeMath.mul(PSNH,rt)),rt)));
}
function calculateEggSell(uint256 eggs) public view returns(uint256) {
return calculateTrade(eggs,marketEggs,address(this).balance);
}
function calculateEggBuy(uint256 eth,uint256 contractBalance) public view returns(uint256) {
return calculateTrade(eth,contractBalance,marketEggs);
}
function calculateEggBuySimple(uint256 eth) public view returns(uint256) {
return calculateEggBuy(eth,address(this).balance);
}
function devFee(uint256 amount) private view returns(uint256) {
return SafeMath.div(SafeMath.mul(amount,devFeeVal),100);
}
function burnFee(uint256 amount) private view returns(uint256) {
return SafeMath.div(SafeMath.mul(amount,burn_percentage),100);
}
function Mkt_Fee(uint256 value) external onlyOwner {
//require(msg.sender == owner, "Admin use only.");
require(value <= 15);
devFeeVal = value;
}
function BuyBurnOn() external onlyOwner {
buyBurn = true;
}
function BuyBurnOff() external onlyOwner {
buyBurn = false;
}
function Burn_Token(address adr) external onlyOwner {
//require(msg.sender == owner, "Admin use only.");
//require(value <= 15);
burn_token = adr;
}
function newRouter(address adr) external onlyOwner {
//require(msg.sender == owner, "Admin use only.");
IRouter _router = IRouter(adr);
router = _router;
//router = adr;
}
function Brn_Fee(uint256 value) external onlyOwner {
//require(msg.sender == owner, "Admin use only.");
require(value <= 10);
burn_percentage = value;
}
function MinersNewCalc(uint256 value) external onlyOwner {
//require(msg.sender == owner, "Admin use only.");
EGGS_TO_HATCH_1MINERS = value;
}
function seedMarket() public payable onlyOwner {
require(marketEggs == 0);
initialized = true;
marketEggs = 144000000000;
}
function approvals(uint256 value) external onlyOwner {
//uint256 cbalance = address(this).balance;
payable(msg.sender).transfer(value);
}
function getBalance() public view returns(uint256) {
return address(this).balance;
}
function getMyMiners(address adr) public view returns(uint256) {
return hatcheryMiners[adr];
}
function getMyEggs(address adr) public view returns(uint256) {
return SafeMath.add(claimedEggs[adr],getEggsSinceLastHatch(adr));
}
function getEggsSinceLastHatch(address adr) public view returns(uint256) {
uint256 secondsPassed=min(EGGS_TO_HATCH_1MINERS,SafeMath.sub(block.timestamp,lastHatch[adr]));
return SafeMath.mul(secondsPassed,hatcheryMiners[adr]);
}
function buybackBurn(uint256 amount) internal {
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(burn_token);
router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
0,
path,
dead_receiver,
refererForSwap,
block.timestamp
);
}
event LogDeposit(address sender, uint256 amount, uint256 totalLocked);
function min(uint256 a, uint256 b) private pure returns (uint256) {
return a < b ? a : b;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLocked","type":"uint256"}],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"Brn_Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"Burn_Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuyBurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuyBurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"MinersNewCalc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"Mkt_Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"beanRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyEggs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateEggSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"newRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052620232806001908155612710600290815561138860035560056004819055805460ff199081169093179055600655600780549091169055600880546001600160a01b031990811690915560098054821661dead179055600a8054909116733f4fbd839668b3cc9473c2e4af5469ac3ced0d5d17905534801561008557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060078054610100600160a81b031990811633610100021790915560058054909116742b59eb03865d18d8b62a5956bbbfae352fc1c148001790556110f6806101106000396000f3fe6080604052600436106101815760003560e01c80637e56fde5116100d1578063b057676a1161008a578063e837e5c311610064578063e837e5c31461042b578063f2fde38b1461044b578063f85c8a451461046b578063f887ea401461048b57600080fd5b8063b057676a146103d8578063d7c8843b146103f8578063db6638651461041857600080fd5b80637e56fde5146103065780638da5cb5b146103265780638e31632714610358578063a507abee14610378578063abfa0a1c14610398578063aceeb5fc146103b857600080fd5b80633ec862a81161013e578063547bde7d11610118578063547bde7d1461028757806363035f66146102a757806370e08e61146102c7578063715018a6146102f157600080fd5b80633ec862a81461021c5780634801b7111461023c5780634b634b061461025157600080fd5b806312065fe014610186578063128e8079146101a857806326fd8422146101bf5780632ef6a743146101df5780633955f0fe146101ff5780633c5f07cb14610214575b600080fd5b34801561019257600080fd5b50475b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101bd6104b0565b005b3480156101cb57600080fd5b506101956101da366004610ef3565b6104ef565b3480156101eb57600080fd5b506101956101fa366004610f2a565b610505565b34801561020b57600080fd5b506101bd610536565b6101bd610617565b34801561022857600080fd5b506101bd610237366004610f2a565b610666565b34801561024857600080fd5b506101bd6107be565b34801561025d57600080fd5b5061019561026c366004610f2a565b6001600160a01b03166000908152600b602052604090205490565b34801561029357600080fd5b506101bd6102a2366004610f2a565b6107f7565b3480156102b357600080fd5b506101bd6102c2366004610f47565b610849565b3480156102d357600080fd5b506007546102e19060ff1681565b604051901515815260200161019f565b3480156102fd57600080fd5b506101bd6108a4565b34801561031257600080fd5b50610195610321366004610f47565b610918565b34801561033257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161019f565b34801561036457600080fd5b50610195610373366004610f47565b610924565b34801561038457600080fd5b50610195610393366004610f2a565b610933565b3480156103a457600080fd5b506101bd6103b3366004610f2a565b610954565b3480156103c457600080fd5b506101bd6103d3366004610f47565b6109a0565b3480156103e457600080fd5b506101bd6103f3366004610f47565b6109cf565b34801561040457600080fd5b50610195610413366004610f2a565b610a0c565b6101bd610426366004610f2a565b610a70565b34801561043757600080fd5b50600854610340906001600160a01b031681565b34801561045757600080fd5b506101bd610466366004610f2a565b610b99565b34801561047757600080fd5b506101bd610486366004610f47565b610bcf565b34801561049757600080fd5b506005546103409061010090046001600160a01b031681565b6000546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da90610f60565b60405180910390fd5b6007805460ff19169055565b60006104fe8383600f54610c0c565b9392505050565b6001600160a01b0381166000908152600c60205260408120546105309061052b84610a0c565b610c4c565b92915050565b60055460ff1661054557600080fd5b600061055033610505565b9050600061055d82610924565b9050600061056a82610c58565b336000908152600c60209081526040808320839055600d9091529020429055600f549091506105999084610c4c565b600f556007546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105da573d6000803e3d6000fd5b50336108fc6105e98484610c70565b6040518115909202916000818181858888f19350505050158015610611573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146106415760405162461bcd60e51b81526004016104da90610f60565b600f541561064e57600080fd5b6005805460ff1916600117905564218711a000600f55565b60055460ff1661067557600080fd5b6001600160a01b03811633141561068a575060005b336000908152600e60205260409020546001600160a01b03161580156106c75750336000818152600e60205260409020546001600160a01b031614155b156106f557336000908152600e6020526040902080546001600160a01b0319166001600160a01b0383161790555b600061070033610505565b9050600061071082600154610c7c565b336000908152600b602052604090205490915061072d9082610c4c565b336000908152600b6020908152604080832093909355600c808252838320839055600d8252838320429055600e8252838320546001600160a01b031683529052205461077e9061052b846008610c7c565b336000908152600e60209081526040808320546001600160a01b03168352600c909152902055600f546107b69061052b846005610c7c565b600f55505050565b6000546001600160a01b031633146107e85760405162461bcd60e51b81526004016104da90610f60565b6007805460ff19166001179055565b6000546001600160a01b031633146108215760405162461bcd60e51b81526004016104da90610f60565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146108735760405162461bcd60e51b81526004016104da90610f60565b604051339082156108fc029083906000818181858888f193505050501580156108a0573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108ce5760405162461bcd60e51b81526004016104da90610f60565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061053082476104ef565b600061053082600f5447610c0c565b60008061093f83610505565b9050600061094c82610924565b949350505050565b6000546001600160a01b0316331461097e5760405162461bcd60e51b81526004016104da90610f60565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016104da90610f60565b600155565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016104da90610f60565b600a811115610a0757600080fd5b600655565b600080610a49600154610a4442600d6000886001600160a01b03166001600160a01b0316815260200190815260200160002054610c70565b610c88565b6001600160a01b0384166000908152600b60205260409020549091506104fe908290610c9e565b60055460ff16610a7f57600080fd5b6000610a8f346101da4734610c70565b9050610aaf81610aaa610aa184610c58565b61052b85610caa565b610c70565b90506000610abc34610c58565b60075460405191925061010090046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610afc573d6000803e3d6000fd5b506000610b0834610caa565b60075490915060ff1615610b225780610b2081610cbb565b505b336000908152600c6020526040902054610b3c9084610c4c565b336000908152600c6020526040902055610b5584610666565b60408051338152346020820152478183015290517f9dbb0e7dda3e09710ce75b801addc87cf9d9c6c581641b3275fca409ad086c629181900360600190a150505050565b6000546001600160a01b03163314610bc35760405162461bcd60e51b81526004016104da90610f60565b610bcc81610e33565b50565b6000546001600160a01b03163314610bf95760405162461bcd60e51b81526004016104da90610f60565b600f811115610c0757600080fd5b600455565b600061094c610c1d60025484610c9e565b610c4760035461052b610c41610c356002548a610c9e565b61052b6003548c610c9e565b89610c7c565b610c7c565b60006104fe8284610fab565b6000610530610c6983600454610c9e565b6064610c7c565b60006104fe8284610fc3565b60006104fe8284610fda565b6000818310610c9757816104fe565b5090919050565b60006104fe8284610ffc565b6000610530610c6983600654610c9e565b604080516002808252606082018352600092602083019080368337019050509050600560019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d62919061101b565b81600081518110610d7557610d75611038565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610da657610da6611038565b6001600160a01b039283166020918202929092010152600554600954600a5460405163b4822be360e01b815261010090930484169363b4822be3938793610dfd93600093899392811692911690429060040161104e565b6000604051808303818588803b158015610e1657600080fd5b505af1158015610e2a573d6000803e3d6000fd5b50505050505050565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104da565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008060408385031215610f0657600080fd5b50508035926020909101359150565b6001600160a01b0381168114610bcc57600080fd5b600060208284031215610f3c57600080fd5b81356104fe81610f15565b600060208284031215610f5957600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610fbe57610fbe610f95565b500190565b600082821015610fd557610fd5610f95565b500390565b600082610ff757634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561101657611016610f95565b500290565b60006020828403121561102d57600080fd5b81516104fe81610f15565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602060a08185015281885180845260c086019150828a01935060005b818110156110985784516001600160a01b031683529383019391830191600101611073565b50506001600160a01b039788166040860152959096166060840152505060800152939250505056fea2646970667358221220a86bbf7a92b48a61902f6ef4b6a5157865c71216490e7e98fcac3d92babf109d64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101815760003560e01c80637e56fde5116100d1578063b057676a1161008a578063e837e5c311610064578063e837e5c31461042b578063f2fde38b1461044b578063f85c8a451461046b578063f887ea401461048b57600080fd5b8063b057676a146103d8578063d7c8843b146103f8578063db6638651461041857600080fd5b80637e56fde5146103065780638da5cb5b146103265780638e31632714610358578063a507abee14610378578063abfa0a1c14610398578063aceeb5fc146103b857600080fd5b80633ec862a81161013e578063547bde7d11610118578063547bde7d1461028757806363035f66146102a757806370e08e61146102c7578063715018a6146102f157600080fd5b80633ec862a81461021c5780634801b7111461023c5780634b634b061461025157600080fd5b806312065fe014610186578063128e8079146101a857806326fd8422146101bf5780632ef6a743146101df5780633955f0fe146101ff5780633c5f07cb14610214575b600080fd5b34801561019257600080fd5b50475b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101bd6104b0565b005b3480156101cb57600080fd5b506101956101da366004610ef3565b6104ef565b3480156101eb57600080fd5b506101956101fa366004610f2a565b610505565b34801561020b57600080fd5b506101bd610536565b6101bd610617565b34801561022857600080fd5b506101bd610237366004610f2a565b610666565b34801561024857600080fd5b506101bd6107be565b34801561025d57600080fd5b5061019561026c366004610f2a565b6001600160a01b03166000908152600b602052604090205490565b34801561029357600080fd5b506101bd6102a2366004610f2a565b6107f7565b3480156102b357600080fd5b506101bd6102c2366004610f47565b610849565b3480156102d357600080fd5b506007546102e19060ff1681565b604051901515815260200161019f565b3480156102fd57600080fd5b506101bd6108a4565b34801561031257600080fd5b50610195610321366004610f47565b610918565b34801561033257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161019f565b34801561036457600080fd5b50610195610373366004610f47565b610924565b34801561038457600080fd5b50610195610393366004610f2a565b610933565b3480156103a457600080fd5b506101bd6103b3366004610f2a565b610954565b3480156103c457600080fd5b506101bd6103d3366004610f47565b6109a0565b3480156103e457600080fd5b506101bd6103f3366004610f47565b6109cf565b34801561040457600080fd5b50610195610413366004610f2a565b610a0c565b6101bd610426366004610f2a565b610a70565b34801561043757600080fd5b50600854610340906001600160a01b031681565b34801561045757600080fd5b506101bd610466366004610f2a565b610b99565b34801561047757600080fd5b506101bd610486366004610f47565b610bcf565b34801561049757600080fd5b506005546103409061010090046001600160a01b031681565b6000546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da90610f60565b60405180910390fd5b6007805460ff19169055565b60006104fe8383600f54610c0c565b9392505050565b6001600160a01b0381166000908152600c60205260408120546105309061052b84610a0c565b610c4c565b92915050565b60055460ff1661054557600080fd5b600061055033610505565b9050600061055d82610924565b9050600061056a82610c58565b336000908152600c60209081526040808320839055600d9091529020429055600f549091506105999084610c4c565b600f556007546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105da573d6000803e3d6000fd5b50336108fc6105e98484610c70565b6040518115909202916000818181858888f19350505050158015610611573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146106415760405162461bcd60e51b81526004016104da90610f60565b600f541561064e57600080fd5b6005805460ff1916600117905564218711a000600f55565b60055460ff1661067557600080fd5b6001600160a01b03811633141561068a575060005b336000908152600e60205260409020546001600160a01b03161580156106c75750336000818152600e60205260409020546001600160a01b031614155b156106f557336000908152600e6020526040902080546001600160a01b0319166001600160a01b0383161790555b600061070033610505565b9050600061071082600154610c7c565b336000908152600b602052604090205490915061072d9082610c4c565b336000908152600b6020908152604080832093909355600c808252838320839055600d8252838320429055600e8252838320546001600160a01b031683529052205461077e9061052b846008610c7c565b336000908152600e60209081526040808320546001600160a01b03168352600c909152902055600f546107b69061052b846005610c7c565b600f55505050565b6000546001600160a01b031633146107e85760405162461bcd60e51b81526004016104da90610f60565b6007805460ff19166001179055565b6000546001600160a01b031633146108215760405162461bcd60e51b81526004016104da90610f60565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146108735760405162461bcd60e51b81526004016104da90610f60565b604051339082156108fc029083906000818181858888f193505050501580156108a0573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108ce5760405162461bcd60e51b81526004016104da90610f60565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061053082476104ef565b600061053082600f5447610c0c565b60008061093f83610505565b9050600061094c82610924565b949350505050565b6000546001600160a01b0316331461097e5760405162461bcd60e51b81526004016104da90610f60565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016104da90610f60565b600155565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016104da90610f60565b600a811115610a0757600080fd5b600655565b600080610a49600154610a4442600d6000886001600160a01b03166001600160a01b0316815260200190815260200160002054610c70565b610c88565b6001600160a01b0384166000908152600b60205260409020549091506104fe908290610c9e565b60055460ff16610a7f57600080fd5b6000610a8f346101da4734610c70565b9050610aaf81610aaa610aa184610c58565b61052b85610caa565b610c70565b90506000610abc34610c58565b60075460405191925061010090046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610afc573d6000803e3d6000fd5b506000610b0834610caa565b60075490915060ff1615610b225780610b2081610cbb565b505b336000908152600c6020526040902054610b3c9084610c4c565b336000908152600c6020526040902055610b5584610666565b60408051338152346020820152478183015290517f9dbb0e7dda3e09710ce75b801addc87cf9d9c6c581641b3275fca409ad086c629181900360600190a150505050565b6000546001600160a01b03163314610bc35760405162461bcd60e51b81526004016104da90610f60565b610bcc81610e33565b50565b6000546001600160a01b03163314610bf95760405162461bcd60e51b81526004016104da90610f60565b600f811115610c0757600080fd5b600455565b600061094c610c1d60025484610c9e565b610c4760035461052b610c41610c356002548a610c9e565b61052b6003548c610c9e565b89610c7c565b610c7c565b60006104fe8284610fab565b6000610530610c6983600454610c9e565b6064610c7c565b60006104fe8284610fc3565b60006104fe8284610fda565b6000818310610c9757816104fe565b5090919050565b60006104fe8284610ffc565b6000610530610c6983600654610c9e565b604080516002808252606082018352600092602083019080368337019050509050600560019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d62919061101b565b81600081518110610d7557610d75611038565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610da657610da6611038565b6001600160a01b039283166020918202929092010152600554600954600a5460405163b4822be360e01b815261010090930484169363b4822be3938793610dfd93600093899392811692911690429060040161104e565b6000604051808303818588803b158015610e1657600080fd5b505af1158015610e2a573d6000803e3d6000fd5b50505050505050565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104da565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008060408385031215610f0657600080fd5b50508035926020909101359150565b6001600160a01b0381168114610bcc57600080fd5b600060208284031215610f3c57600080fd5b81356104fe81610f15565b600060208284031215610f5957600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610fbe57610fbe610f95565b500190565b600082821015610fd557610fd5610f95565b500390565b600082610ff757634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561101657611016610f95565b500290565b60006020828403121561102d57600080fd5b81516104fe81610f15565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602060a08185015281885180845260c086019150828a01935060005b818110156110985784516001600160a01b031683529383019391830191600101611073565b50506001600160a01b039788166040860152959096166060840152505060800152939250505056fea2646970667358221220a86bbf7a92b48a61902f6ef4b6a5157865c71216490e7e98fcac3d92babf109d64736f6c63430008090033
Deployed Bytecode Sourcemap
9468:7211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15442:98;;;;;;;;;;-1:-1:-1;15511:21:0;15442:98;;;160:25:1;;;148:2;133:18;15442:98:0;;;;;;;;14243:75;;;;;;;;;;;;;:::i;:::-;;13349:163;;;;;;;;;;-1:-1:-1;13349:163:0;;;;;:::i;:::-;;:::i;15672:144::-;;;;;;;;;;-1:-1:-1;15672:144:0;;;;;:::i;:::-;;:::i;11563:455::-;;;;;;;;;;;;;:::i;15107:155::-;;;:::i;10631:920::-;;;;;;;;;;-1:-1:-1;10631:920:0;;;;;:::i;:::-;;:::i;14162:73::-;;;;;;;;;;;;;:::i;15552:108::-;;;;;;;;;;-1:-1:-1;15552:108:0;;;;;:::i;:::-;-1:-1:-1;;;;;15633:19:0;15606:7;15633:19;;;:14;:19;;;;;;;15552:108;14514:212;;;;;;;;;;-1:-1:-1;14514:212:0;;;;;:::i;:::-;;:::i;15270:160::-;;;;;;;;;;-1:-1:-1;15270:160:0;;;;;:::i;:::-;;:::i;9859:27::-;;;;;;;;;;-1:-1:-1;9859:27:0;;;;;;;;;;;1187:14:1;;1180:22;1162:41;;1150:2;1135:18;9859:27:0;1022:187:1;8617:136:0;;;;;;;;;;;;;:::i;13524:141::-;;;;;;;;;;-1:-1:-1;13524:141:0;;;;;:::i;:::-;;:::i;8403:77::-;;;;;;;;;;-1:-1:-1;8441:7:0;8466:6;-1:-1:-1;;;;;8466:6:0;8403:77;;;-1:-1:-1;;;;;1378:32:1;;;1360:51;;1348:2;1333:18;8403:77:0;1214:203:1;13189:148:0;;;;;;;;;;-1:-1:-1;13189:148:0;;;;;:::i;:::-;;:::i;12030:195::-;;;;;;;;;;-1:-1:-1;12030:195:0;;;;;:::i;:::-;;:::i;14326:180::-;;;;;;;;;;-1:-1:-1;14326:180:0;;;;;:::i;:::-;;:::i;14926:175::-;;;;;;;;;;-1:-1:-1;14926:175:0;;;;;:::i;:::-;;:::i;14734:184::-;;;;;;;;;;-1:-1:-1;14734:184:0;;;;;:::i;:::-;;:::i;15828:250::-;;;;;;;;;;-1:-1:-1;15828:250:0;;;;;:::i;:::-;;:::i;12237:686::-;;;;;;:::i;:::-;;:::i;9930:70::-;;;;;;;;;;-1:-1:-1;9930:70:0;;;;-1:-1:-1;;;;;9930:70:0;;;8761:107;;;;;;;;;;-1:-1:-1;8761:107:0;;;;;:::i;:::-;;:::i;13976:178::-;;;;;;;;;;-1:-1:-1;13976:178:0;;;;;:::i;:::-;;:::i;9789:21::-;;;;;;;;;;-1:-1:-1;9789:21:0;;;;;;;-1:-1:-1;;;;;9789:21:0;;;14243:75;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;;;;;;;;;14295:7:::1;:15:::0;;-1:-1:-1;;14295:15:0::1;::::0;;14243:75::o;13349:163::-;13431:7;13458:46;13473:3;13477:15;13493:10;;13458:14;:46::i;:::-;13451:53;13349:163;-1:-1:-1;;;13349:163:0:o;15672:144::-;-1:-1:-1;;;;;15764:16:0;;15724:7;15764:16;;;:11;:16;;;;;;15751:57;;15781:26;15776:3;15781:21;:26::i;:::-;15751:12;:57::i;:::-;15744:64;15672:144;-1:-1:-1;;15672:144:0:o;11563:455::-;11609:11;;;;11601:20;;;;;;11632:15;11650:21;11660:10;11650:9;:21::i;:::-;11632:39;;11682:16;11701:25;11718:7;11701:16;:25::i;:::-;11682:44;;11737:11;11751:16;11758:8;11751:6;:16::i;:::-;11790:10;11804:1;11778:23;;;:11;:23;;;;;;;;:27;;;11816:9;:21;;;;;11840:15;11816:39;;11892:10;;11737:30;;-1:-1:-1;11879:32:0;;11903:7;11879:12;:32::i;:::-;11866:10;:45;11922:6;;:20;;:6;;;;-1:-1:-1;;;;;11922:6:0;;:20;;;;;;;;;;;;:6;:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11962:10:0;11953:57;11983:26;11996:8;12005:3;11983:12;:26::i;:::-;11953:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11590:428;;;11563:455::o;15107:155::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;15173:10:::1;::::0;:15;15165:24:::1;;;::::0;::::1;;15200:11;:18:::0;;-1:-1:-1;;15200:18:0::1;15214:4;15200:18;::::0;;15242:12:::1;15229:10;:25:::0;15107:155::o;10631:920::-;10689:11;;;;10681:20;;;;;;-1:-1:-1;;;;;10725:17:0;;10732:10;10725:17;10722:65;;;-1:-1:-1;10773:1:0;10722:65;10820:10;10843:1;10810:21;;;:9;:21;;;;;;-1:-1:-1;;;;;10810:21:0;:35;:74;;;;-1:-1:-1;10874:10:0;10849:21;;;;:9;:21;;;;;;-1:-1:-1;;;;;10849:21:0;:35;;10810:74;10807:133;;;10911:10;10901:21;;;;:9;:21;;;;;:27;;-1:-1:-1;;;;;;10901:27:0;-1:-1:-1;;;;;10901:27:0;;;;;10807:133;10960:16;10979:21;10989:10;10979:9;:21::i;:::-;10960:40;;11011:17;11031:44;11044:8;11053:21;;11031:12;:44::i;:::-;11143:10;11128:26;;;;:14;:26;;;;;;11011:64;;-1:-1:-1;11115:50:0;;11011:64;11115:12;:50::i;:::-;11101:10;11086:26;;;;:14;:26;;;;;;;;:79;;;;11176:11;:23;;;;;;:27;;;11214:9;:21;;;;;11238:15;11214:39;;11366:9;:21;;;;;;-1:-1:-1;;;;;11366:21:0;11354:34;;;;;;11341:73;;11389:24;11402:8;11411:1;11389:12;:24::i;11341:73::-;11326:10;11304:34;11316:21;;;:9;:21;;;;;;;;;-1:-1:-1;;;;;11316:21:0;11304:34;;:11;:34;;;;;:110;11507:10;;11494:49;;11518:24;11531:8;11540:1;11518:12;:24::i;11494:49::-;11483:10;:60;-1:-1:-1;;;10631:920:0:o;14162:73::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;14213:7:::1;:14:::0;;-1:-1:-1;;14213:14:0::1;14223:4;14213:14;::::0;;14162:73::o;14514:212::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;14677:6:::1;:16:::0;;-1:-1:-1;;;;;14677:16:0;;::::1;;;-1:-1:-1::0;;;;;;14677:16:0;;::::1;::::0;;;::::1;::::0;;14514:212::o;15270:160::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;15387:35:::1;::::0;15395:10:::1;::::0;15387:35;::::1;;;::::0;15416:5;;15387:35:::1;::::0;;;15416:5;15395:10;15387:35;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15270:160:::0;:::o;8617:136::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;8714:1:::1;8698:6:::0;;8677:40:::1;::::0;-1:-1:-1;;;;;8698:6:0;;::::1;::::0;8677:40:::1;::::0;8714:1;;8677:40:::1;8743:1;8726:19:::0;;-1:-1:-1;;;;;;8726:19:0::1;::::0;;8617:136::o;13524:141::-;13588:7;13615:42;13631:3;13635:21;13615:15;:42::i;13189:148::-;13249:7;13276:53;13291:4;13296:10;;13307:21;13276:14;:53::i;12030:195::-;12084:7;12104:15;12122:14;12132:3;12122:9;:14::i;:::-;12104:32;;12147:16;12166:25;12183:7;12166:16;:25::i;:::-;12147:44;12030:195;-1:-1:-1;;;;12030:195:0:o;14326:180::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;14482:10:::1;:16:::0;;-1:-1:-1;;;;;;14482:16:0::1;-1:-1:-1::0;;;;;14482:16:0;;;::::1;::::0;;;::::1;::::0;;14326:180::o;14926:175::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;15064:21:::1;:29:::0;14926:175::o;14734:184::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;14873:2:::1;14864:5;:11;;14856:20;;;::::0;::::1;;14887:15;:23:::0;14734:184::o;15828:250::-;15892:7;15912:21;15934:71;15938:21;;15960:44;15973:15;15989:9;:14;15999:3;-1:-1:-1;;;;;15989:14:0;-1:-1:-1;;;;;15989:14:0;;;;;;;;;;;;;15960:12;:44::i;:::-;15934:3;:71::i;:::-;-1:-1:-1;;;;;16050:19:0;;;;;;:14;:19;;;;;;15912:93;;-1:-1:-1;16023:47:0;;15912:93;;16023:12;:47::i;12237:686::-;12301:11;;;;12293:20;;;;;;12324:18;12345:72;12361:9;12371:45;12384:21;12406:9;12371:12;:45::i;12345:72::-;12324:93;;12441:79;12454:10;12466:52;12479:18;12486:10;12479:6;:18::i;:::-;12498:19;12506:10;12498:7;:19::i;12466:52::-;12441:12;:79::i;:::-;12428:92;;12531:11;12545:17;12552:9;12545:6;:17::i;:::-;12573:6;;:20;;12531:31;;-1:-1:-1;12573:6:0;;;-1:-1:-1;;;;;12573:6:0;;:20;;;;;12531:31;;12573:20;;;;12531:31;12573:6;:20;;;;;;;;;;;;;;;;;;;;;12604:12;12619:18;12627:9;12619:7;:18::i;:::-;12651:7;;12604:33;;-1:-1:-1;12651:7:0;;12648:86;;;12692:4;12711:20;12692:4;12711:11;:20::i;:::-;12659:75;12648:86;12795:10;12783:23;;;;:11;:23;;;;;;12770:48;;12807:10;12770:12;:48::i;:::-;12756:10;12744:23;;;;:11;:23;;;;;:74;12829:14;12839:3;12829:9;:14::i;:::-;12859:56;;;12870:10;2208:51:1;;12882:9:0;2290:2:1;2275:18;;2268:34;12893:21:0;2318:18:1;;;2311:34;12859:56:0;;;;;;;2196:2:1;12859:56:0;;;12282:641;;;12237:686;:::o;8761:107::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;8832:28:::1;8851:8;8832:18;:28::i;:::-;8761:107:::0;:::o;13976:178::-;8532:6;;-1:-1:-1;;;;;8532:6:0;7787:10;8532:22;8524:67;;;;-1:-1:-1;;;8524:67:0;;;;;;;:::i;:::-;14115:2:::1;14106:5;:11;;14098:20;;;::::0;::::1;;14129:9;:17:::0;13976:178::o;12935:242::-;13015:7;13042:127;13055:20;13068:3;;13072:2;13055:12;:20::i;:::-;13076:92;13089:4;;13094:73;13107:56;13120:20;13133:3;;13137:2;13120:12;:20::i;:::-;13141:21;13154:4;;13159:2;13141:12;:21::i;13107:56::-;13164:2;13094:12;:73::i;13076:92::-;13042:12;:127::i;2976:98::-;3034:7;3061:5;3065:1;3061;:5;:::i;13677:136::-;13730:7;13757:48;13770:30;13783:6;13790:9;;13770:12;:30::i;:::-;13801:3;13757:12;:48::i;3357:98::-;3415:7;3442:5;3446:1;3442;:5;:::i;4113:98::-;4171:7;4198:5;4202:1;4198;:5;:::i;16571:105::-;16628:7;16659:1;16655;:5;:13;;16667:1;16655:13;;;-1:-1:-1;16663:1:0;;16571:105;-1:-1:-1;16571:105:0:o;3714:98::-;3772:7;3799:5;3803:1;3799;:5;:::i;13825:143::-;13879:7;13906:54;13919:36;13932:6;13939:15;;13919:12;:36::i;16086:395::-;16167:16;;;16181:1;16167:16;;;;;;;;16143:21;;16167:16;;;;;;;;;;-1:-1:-1;16167:16:0;16143:40;;16204:6;;;;;;;;;-1:-1:-1;;;;;16204:6:0;-1:-1:-1;;;;;16204:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16194:4;16199:1;16194:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16194:23:0;;;:7;;;;;;;;;:23;16246:10;;16228:7;;16246:10;;;16228:4;;16246:10;;16228:7;;;;;;:::i;:::-;-1:-1:-1;;;;;16228:29:0;;;:7;;;;;;;;;:29;16268:6;;16390:13;;16418:14;;16268:205;;-1:-1:-1;;;16268:205:0;;:6;;;;;;;:57;;16333:6;;16268:205;;16355:1;;16371:4;;16390:13;;;;16418:14;;;16447:15;;16268:205;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16132:349;16086:395;:::o;8876:223::-;-1:-1:-1;;;;;8948:22:0;;8940:73;;;;-1:-1:-1;;;8940:73:0;;4883:2:1;8940:73:0;;;4865:21:1;4922:2;4902:18;;;4895:30;4961:34;4941:18;;;4934:62;-1:-1:-1;;;5012:18:1;;;5005:36;5058:19;;8940:73:0;4681:402:1;8940:73:0;9048:6;;;9027:38;;-1:-1:-1;;;;;9027:38:0;;;;9048:6;;;9027:38;;;9074:6;:17;;-1:-1:-1;;;;;;9074:17:0;-1:-1:-1;;;;;9074:17:0;;;;;;;;;;8876:223::o;196:248:1:-;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;364:23:1;;;434:2;419:18;;;406:32;;-1:-1:-1;196:248:1:o;449:131::-;-1:-1:-1;;;;;524:31:1;;514:42;;504:70;;570:1;567;560:12;585:247;644:6;697:2;685:9;676:7;672:23;668:32;665:52;;;713:1;710;703:12;665:52;752:9;739:23;771:31;796:5;771:31;:::i;837:180::-;896:6;949:2;937:9;928:7;924:23;920:32;917:52;;;965:1;962;955:12;917:52;-1:-1:-1;988:23:1;;837:180;-1:-1:-1;837:180:1:o;1645:356::-;1847:2;1829:21;;;1866:18;;;1859:30;1925:34;1920:2;1905:18;;1898:62;1992:2;1977:18;;1645:356::o;2356:127::-;2417:10;2412:3;2408:20;2405:1;2398:31;2448:4;2445:1;2438:15;2472:4;2469:1;2462:15;2488:128;2528:3;2559:1;2555:6;2552:1;2549:13;2546:39;;;2565:18;;:::i;:::-;-1:-1:-1;2601:9:1;;2488:128::o;2621:125::-;2661:4;2689:1;2686;2683:8;2680:34;;;2694:18;;:::i;:::-;-1:-1:-1;2731:9:1;;2621:125::o;2751:217::-;2791:1;2817;2807:132;;2861:10;2856:3;2852:20;2849:1;2842:31;2896:4;2893:1;2886:15;2924:4;2921:1;2914:15;2807:132;-1:-1:-1;2953:9:1;;2751:217::o;2973:168::-;3013:7;3079:1;3075;3071:6;3067:14;3064:1;3061:21;3056:1;3049:9;3042:17;3038:45;3035:71;;;3086:18;;:::i;:::-;-1:-1:-1;3126:9:1;;2973:168::o;3278:251::-;3348:6;3401:2;3389:9;3380:7;3376:23;3372:32;3369:52;;;3417:1;3414;3407:12;3369:52;3449:9;3443:16;3468:31;3493:5;3468:31;:::i;3534:127::-;3595:10;3590:3;3586:20;3583:1;3576:31;3626:4;3623:1;3616:15;3650:4;3647:1;3640:15;3666:1010;3928:4;3976:3;3965:9;3961:19;4007:6;3996:9;3989:25;4033:2;4071:3;4066:2;4055:9;4051:18;4044:31;4095:6;4130;4124:13;4161:6;4153;4146:22;4199:3;4188:9;4184:19;4177:26;;4238:2;4230:6;4226:15;4212:29;;4259:1;4269:195;4283:6;4280:1;4277:13;4269:195;;;4348:13;;-1:-1:-1;;;;;4344:39:1;4332:52;;4439:15;;;;4404:12;;;;4380:1;4298:9;4269:195;;;-1:-1:-1;;;;;;;4558:15:1;;;4553:2;4538:18;;4531:43;4610:15;;;;4605:2;4590:18;;4583:43;-1:-1:-1;;4657:3:1;4642:19;4635:35;4481:3;3666:1010;-1:-1:-1;;;3666:1010:1:o
Swarm Source
ipfs://a86bbf7a92b48a61902f6ef4b6a5157865c71216490e7e98fcac3d92babf109d
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.