Contract 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 19
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Latest 25 Deposits
[ Download CSV Export ]
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
MiniChefV2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2021-08-31 */ /** *Submitted for verification at polygonscan.com on 2021-06-09 */ // Sources flattened with hardhat v2.0.11 https://hardhat.org // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] // SPDX-License-Identifier: MIT pragma solidity 0.6.12; // a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math) library BoringMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");} function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");} function to128(uint256 a) internal pure returns (uint128 c) { require(a <= uint128(-1), "BoringMath: uint128 Overflow"); c = uint128(a); } function to64(uint256 a) internal pure returns (uint64 c) { require(a <= uint64(-1), "BoringMath: uint64 Overflow"); c = uint64(a); } function to32(uint256 a) internal pure returns (uint32 c) { require(a <= uint32(-1), "BoringMath: uint32 Overflow"); c = uint32(a); } } library BoringMath128 { function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } library BoringMath64 { function add(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } library BoringMath32 { function add(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } // File @boringcrypto/boring-solidity/contracts/interfaces/[email protected] pragma solidity 0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); // EIP 2612 function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] pragma solidity 0.6.12; library BoringERC20 { function safeSymbol(IERC20 token) internal view returns(string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41)); return success && data.length > 0 ? abi.decode(data, (string)) : "???"; } function safeName(IERC20 token) internal view returns(string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03)); return success && data.length > 0 ? abi.decode(data, (string)) : "???"; } function safeDecimals(IERC20 token) internal view returns (uint8) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567)); return success && data.length == 32 ? abi.decode(data, (uint8)) : 18; } function safeTransfer(IERC20 token, address to, uint256 amount) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed"); } function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed"); } } // File @boringcrypto/boring-solidity/contracts/[email protected] // Audit on 5-Jan-2021 by Keno and BoringCrypto // P1 - P3: OK pragma solidity 0.6.12; // solhint-disable avoid-low-level-calls // T1 - T4: OK contract BaseBoringBatchable { function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory) { // If the _res length is less than 68, then the transaction failed silently (without a revert message) if (_returnData.length < 68) return "Transaction reverted silently"; assembly { // Slice the sighash. _returnData := add(_returnData, 0x04) } return abi.decode(_returnData, (string)); // All that remains is the revert string } // F3 - F9: OK // F1: External is ok here because this is the batch function, adding it to a batch makes no sense // F2: Calls in the batch may be payable, delegatecall operates in the same context, so each call in the batch has access to msg.value // C1 - C21: OK // C3: The length of the loop is fully under user control, so can't be exploited // C7: Delegatecall is only used on the same contract, so it's safe function batch(bytes[] calldata calls, bool revertOnFail) external payable returns(bool[] memory successes, bytes[] memory results) { // Interactions successes = new bool[](calls.length); results = new bytes[](calls.length); for (uint256 i = 0; i < calls.length; i++) { (bool success, bytes memory result) = address(this).delegatecall(calls[i]); require(success || !revertOnFail, _getRevertMsg(result)); successes[i] = success; results[i] = result; } } } // T1 - T4: OK contract BoringBatchable is BaseBoringBatchable { // F1 - F9: OK // F6: Parameters can be used front-run the permit and the user's permit will fail (due to nonce or other revert) // if part of a batch this could be used to grief once as the second call would not need the permit // C1 - C21: OK function permitToken(IERC20 token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { // Interactions // X1 - X5 token.permit(from, to, amount, deadline, v, r, s); } } // File @boringcrypto/boring-solidity/contracts/[email protected] // Audit on 5-Jan-2021 by Keno and BoringCrypto // P1 - P3: OK pragma solidity 0.6.12; // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Edited by BoringCrypto // T1 - T4: OK contract BoringOwnableData { // V1 - V5: OK address public owner; // V1 - V5: OK address public pendingOwner; } // T1 - T4: OK contract BoringOwnable is BoringOwnableData { // E1: OK event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () public { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } // F1 - F9: OK // C1 - C21: OK function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner { if (direct) { // Checks require(newOwner != address(0) || renounce, "Ownable: zero address"); // Effects emit OwnershipTransferred(owner, newOwner); owner = newOwner; pendingOwner = address(0); } else { // Effects pendingOwner = newOwner; } } // F1 - F9: OK // C1 - C21: OK function claimOwnership() public { address _pendingOwner = pendingOwner; // Checks require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); // Effects emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } // M1 - M5: OK // C1 - C21: OK modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } // File contracts/libraries/SignedSafeMath.sol pragma solidity 0.6.12; library SignedSafeMath { int256 constant private _INT256_MIN = -2**255; /** * @dev Returns the multiplication of two signed integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { // 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; } require(!(a == -1 && b == _INT256_MIN), "SignedSafeMath: multiplication overflow"); int256 c = a * b; require(c / a == b, "SignedSafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two signed 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(int256 a, int256 b) internal pure returns (int256) { require(b != 0, "SignedSafeMath: division by zero"); require(!(b == -1 && a == _INT256_MIN), "SignedSafeMath: division overflow"); int256 c = a / b; return c; } /** * @dev Returns the subtraction of two signed integers, reverting on * overflow. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a), "SignedSafeMath: subtraction overflow"); return c; } /** * @dev Returns the addition of two signed integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a), "SignedSafeMath: addition overflow"); return c; } function toUInt256(int256 a) internal pure returns (uint256) { require(a >= 0, "Integer < 0"); return uint256(a); } } // File contracts/interfaces/IRewarder.sol pragma solidity 0.6.12; interface IRewarder { using BoringERC20 for IERC20; function onSushiReward(uint256 pid, address user, address recipient, uint256 sushiAmount, uint256 newLpAmount) external; function pendingTokens(uint256 pid, address user, uint256 sushiAmount) external view returns (IERC20[] memory, uint256[] memory); } // File contracts/interfaces/IMasterChef.sol pragma solidity 0.6.12; pragma experimental ABIEncoderV2; interface IMasterChef { using BoringERC20 for IERC20; struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. } struct PoolInfo { IERC20 lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. SUSHI to distribute per block. uint256 lastRewardBlock; // Last block number that SUSHI distribution occurs. uint256 accSushiPerShare; // Accumulated SUSHI per share, times 1e12. See below. } function poolInfo(uint256 pid) external view returns (IMasterChef.PoolInfo memory); function totalAllocPoint() external view returns (uint256); function deposit(uint256 _pid, uint256 _amount) external; } // File contracts/MiniChefV2.sol pragma solidity 0.6.12; interface IMigratorChef { // Take the current LP token address and return the new LP token address. // Migrator should have full access to the caller's LP token. function migrate(IERC20 token) external returns (IERC20); } /// @notice The (older) MasterChef contract gives out a constant number of SUSHI tokens per block. /// It is the only address with minting rights for SUSHI. /// The idea for this MasterChef V2 (MCV2) contract is therefore to be the owner of a dummy token /// that is deposited into the MasterChef V1 (MCV1) contract. /// The allocation point for this pool on MCV1 is the total allocation point for all pools that receive double incentives. contract MiniChefV2 is BoringOwnable, BoringBatchable { using BoringMath for uint256; using BoringMath128 for uint128; using BoringERC20 for IERC20; using SignedSafeMath for int256; /// @notice Info of each MCV2 user. /// `amount` LP token amount the user has provided. /// `rewardDebt` The amount of SUSHI entitled to the user. struct UserInfo { uint256 amount; int256 rewardDebt; } /// @notice Info of each MCV2 pool. /// `allocPoint` The amount of allocation points assigned to the pool. /// Also known as the amount of SUSHI to distribute per block. struct PoolInfo { uint128 accSushiPerShare; uint64 lastRewardTime; uint64 allocPoint; } /// @notice Address of SUSHI contract. IERC20 public immutable SUSHI; // @notice The migrator contract. It has a lot of power. Can only be set through governance (owner). IMigratorChef public migrator; /// @notice Info of each MCV2 pool. PoolInfo[] public poolInfo; /// @notice Address of the LP token for each MCV2 pool. IERC20[] public lpToken; /// @notice Address of each `IRewarder` contract in MCV2. IRewarder[] public rewarder; /// @notice Info of each user that stakes LP tokens. mapping (uint256 => mapping (address => UserInfo)) public userInfo; /// @dev Total allocation points. Must be the sum of all allocation points in all pools. uint256 public totalAllocPoint; uint256 public sushiPerSecond; uint256 private constant ACC_SUSHI_PRECISION = 1e12; event Deposit(address indexed user, uint256 indexed pid, uint256 amount, address indexed to); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to); event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to); event Harvest(address indexed user, uint256 indexed pid, uint256 amount); event LogPoolAddition(uint256 indexed pid, uint256 allocPoint, IERC20 indexed lpToken, IRewarder indexed rewarder); event LogSetPool(uint256 indexed pid, uint256 allocPoint, IRewarder indexed rewarder, bool overwrite); event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSushiPerShare); event LogSushiPerSecond(uint256 sushiPerSecond); /// @param _sushi The SUSHI token contract address. constructor(IERC20 _sushi) public { SUSHI = _sushi; } /// @notice Returns the number of MCV2 pools. function poolLength() public view returns (uint256 pools) { pools = poolInfo.length; } /// @notice Add a new LP to the pool. Can only be called by the owner. /// DO NOT add the same LP token more than once. Rewards will be messed up if you do. /// @param allocPoint AP of the new pool. /// @param _lpToken Address of the LP ERC-20 token. /// @param _rewarder Address of the rewarder delegate. function add(uint256 allocPoint, IERC20 _lpToken, IRewarder _rewarder) public onlyOwner { totalAllocPoint = totalAllocPoint.add(allocPoint); lpToken.push(_lpToken); rewarder.push(_rewarder); poolInfo.push(PoolInfo({ allocPoint: allocPoint.to64(), lastRewardTime: block.timestamp.to64(), accSushiPerShare: 0 })); emit LogPoolAddition(lpToken.length.sub(1), allocPoint, _lpToken, _rewarder); } /// @notice Update the given pool's SUSHI allocation point and `IRewarder` contract. Can only be called by the owner. /// @param _pid The index of the pool. See `poolInfo`. /// @param _allocPoint New AP of the pool. /// @param _rewarder Address of the rewarder delegate. /// @param overwrite True if _rewarder should be `set`. Otherwise `_rewarder` is ignored. function set(uint256 _pid, uint256 _allocPoint, IRewarder _rewarder, bool overwrite) public onlyOwner { totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint); poolInfo[_pid].allocPoint = _allocPoint.to64(); if (overwrite) { rewarder[_pid] = _rewarder; } emit LogSetPool(_pid, _allocPoint, overwrite ? _rewarder : rewarder[_pid], overwrite); } /// @notice Sets the sushi per second to be distributed. Can only be called by the owner. /// @param _sushiPerSecond The amount of Sushi to be distributed per second. function setSushiPerSecond(uint256 _sushiPerSecond) public onlyOwner { sushiPerSecond = _sushiPerSecond; emit LogSushiPerSecond(_sushiPerSecond); } /// @notice Set the `migrator` contract. Can only be called by the owner. /// @param _migrator The contract address to set. function setMigrator(IMigratorChef _migrator) public onlyOwner { migrator = _migrator; } /// @notice Migrate LP token to another LP contract through the `migrator` contract. /// @param _pid The index of the pool. See `poolInfo`. function migrate(uint256 _pid) public { require(address(migrator) != address(0), "MasterChefV2: no migrator set"); IERC20 _lpToken = lpToken[_pid]; uint256 bal = _lpToken.balanceOf(address(this)); _lpToken.approve(address(migrator), bal); IERC20 newLpToken = migrator.migrate(_lpToken); require(bal == newLpToken.balanceOf(address(this)), "MasterChefV2: migrated balance must match"); lpToken[_pid] = newLpToken; } /// @notice View function to see pending SUSHI on frontend. /// @param _pid The index of the pool. See `poolInfo`. /// @param _user Address of user. /// @return pending SUSHI reward for a given user. function pendingSushi(uint256 _pid, address _user) external view returns (uint256 pending) { PoolInfo memory pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accSushiPerShare = pool.accSushiPerShare; uint256 lpSupply = lpToken[_pid].balanceOf(address(this)); if (block.timestamp > pool.lastRewardTime && lpSupply != 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(sushiPerSecond).mul(pool.allocPoint) / totalAllocPoint; accSushiPerShare = accSushiPerShare.add(sushiReward.mul(ACC_SUSHI_PRECISION) / lpSupply); } pending = int256(user.amount.mul(accSushiPerShare) / ACC_SUSHI_PRECISION).sub(user.rewardDebt).toUInt256(); } /// @notice Update reward variables for all pools. Be careful of gas spending! /// @param pids Pool IDs of all to be updated. Make sure to update all active pools. function massUpdatePools(uint256[] calldata pids) external { uint256 len = pids.length; for (uint256 i = 0; i < len; ++i) { updatePool(pids[i]); } } /// @notice Update reward variables of the given pool. /// @param pid The index of the pool. See `poolInfo`. /// @return pool Returns the pool that was updated. function updatePool(uint256 pid) public returns (PoolInfo memory pool) { pool = poolInfo[pid]; if (block.timestamp > pool.lastRewardTime) { uint256 lpSupply = lpToken[pid].balanceOf(address(this)); if (lpSupply > 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(sushiPerSecond).mul(pool.allocPoint) / totalAllocPoint; pool.accSushiPerShare = pool.accSushiPerShare.add((sushiReward.mul(ACC_SUSHI_PRECISION) / lpSupply).to128()); } pool.lastRewardTime = block.timestamp.to64(); poolInfo[pid] = pool; emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSushiPerShare); } } /// @notice Deposit LP tokens to MCV2 for SUSHI allocation. /// @param pid The index of the pool. See `poolInfo`. /// @param amount LP token amount to deposit. /// @param to The receiver of `amount` deposit benefit. function deposit(uint256 pid, uint256 amount, address to) public { PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][to]; // Effects user.amount = user.amount.add(amount); user.rewardDebt = user.rewardDebt.add(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION)); // Interactions IRewarder _rewarder = rewarder[pid]; if (address(_rewarder) != address(0)) { _rewarder.onSushiReward(pid, to, to, 0, user.amount); } lpToken[pid].safeTransferFrom(msg.sender, address(this), amount); emit Deposit(msg.sender, pid, amount, to); } /// @notice Withdraw LP tokens from MCV2. /// @param pid The index of the pool. See `poolInfo`. /// @param amount LP token amount to withdraw. /// @param to Receiver of the LP tokens. function withdraw(uint256 pid, uint256 amount, address to) public { PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][msg.sender]; // Effects user.rewardDebt = user.rewardDebt.sub(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION)); user.amount = user.amount.sub(amount); // Interactions IRewarder _rewarder = rewarder[pid]; if (address(_rewarder) != address(0)) { _rewarder.onSushiReward(pid, msg.sender, to, 0, user.amount); } lpToken[pid].safeTransfer(to, amount); emit Withdraw(msg.sender, pid, amount, to); } /// @notice Harvest proceeds for transaction sender to `to`. /// @param pid The index of the pool. See `poolInfo`. /// @param to Receiver of SUSHI rewards. function harvest(uint256 pid, address to) public { PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][msg.sender]; int256 accumulatedSushi = int256(user.amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION); uint256 _pendingSushi = accumulatedSushi.sub(user.rewardDebt).toUInt256(); // Effects user.rewardDebt = accumulatedSushi; // Interactions if (_pendingSushi != 0) { SUSHI.safeTransfer(to, _pendingSushi); } IRewarder _rewarder = rewarder[pid]; if (address(_rewarder) != address(0)) { _rewarder.onSushiReward( pid, msg.sender, to, _pendingSushi, user.amount); } emit Harvest(msg.sender, pid, _pendingSushi); } /// @notice Withdraw LP tokens from MCV2 and harvest proceeds for transaction sender to `to`. /// @param pid The index of the pool. See `poolInfo`. /// @param amount LP token amount to withdraw. /// @param to Receiver of the LP tokens and SUSHI rewards. function withdrawAndHarvest(uint256 pid, uint256 amount, address to) public { PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][msg.sender]; int256 accumulatedSushi = int256(user.amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION); uint256 _pendingSushi = accumulatedSushi.sub(user.rewardDebt).toUInt256(); // Effects user.rewardDebt = accumulatedSushi.sub(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION)); user.amount = user.amount.sub(amount); // Interactions SUSHI.safeTransfer(to, _pendingSushi); IRewarder _rewarder = rewarder[pid]; if (address(_rewarder) != address(0)) { _rewarder.onSushiReward(pid, msg.sender, to, _pendingSushi, user.amount); } lpToken[pid].safeTransfer(to, amount); emit Withdraw(msg.sender, pid, amount, to); emit Harvest(msg.sender, pid, _pendingSushi); } /// @notice Withdraw without caring about rewards. EMERGENCY ONLY. /// @param pid The index of the pool. See `poolInfo`. /// @param to Receiver of the LP tokens. function emergencyWithdraw(uint256 pid, address to) public { UserInfo storage user = userInfo[pid][msg.sender]; uint256 amount = user.amount; user.amount = 0; user.rewardDebt = 0; IRewarder _rewarder = rewarder[pid]; if (address(_rewarder) != address(0)) { _rewarder.onSushiReward(pid, msg.sender, to, 0, 0); } // Note: transfer can fail or succeed if `amount` is zero. lpToken[pid].safeTransfer(to, amount); emit EmergencyWithdraw(msg.sender, pid, amount, to); } }
[{"inputs":[{"internalType":"contract IERC20","name":"_sushi","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"},{"indexed":false,"internalType":"bool","name":"overwrite","type":"bool"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sushiPerSecond","type":"uint256"}],"name":"LogSushiPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSushiPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"SUSHI","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}],"name":"batch","outputs":[{"internalType":"bool[]","name":"successes","type":"bool[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"contract IMigratorChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingSushi","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permitToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"pools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewarder","outputs":[{"internalType":"contract IRewarder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"},{"internalType":"bool","name":"overwrite","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMigratorChef","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sushiPerSecond","type":"uint256"}],"name":"setSushiPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sushiPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"internalType":"struct MiniChefV2.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int256","name":"rewardDebt","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawAndHarvest","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b5060405162002c3038038062002c30833981016040819052620000349162000089565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b031916608052620000b9565b6000602082840312156200009b578081fd5b81516001600160a01b0381168114620000b2578182fd5b9392505050565b60805160601c612b4f620000e16000398061089552806117425280611a155250612b4f6000f3fe6080604052600436106101b75760003560e01c80637c516e94116100ec578063a06e408b1161008a578063c346253d11610064578063c346253d146104be578063d1abb907146104de578063d2423b51146104fe578063e30c39781461051f576101b7565b8063a06e408b14610474578063ab560e1014610489578063ab7de0981461049e576101b7565b80638da5cb5b116100c65780638da5cb5b146103f15780638dbdbe6d1461040657806393f1a40b146104265780639baf58c314610454576101b7565b80637c516e941461039c5780637cd07e47146103bc57806388bba42f146103d1576101b7565b806323cf3118116101595780634e71e0c8116101335780634e71e0c81461030d57806351eb05a61461032257806357a5b58c1461034f57806378ed5d1f1461036f576101b7565b806323cf3118146102ad5780632f940c70146102cd578063454b0608146102ed576101b7565b80631526fe27116101955780631526fe271461022957806317caf6f11461025857806318fccc761461026d578063195426ec1461028d576101b7565b8063078dfbe7146101bc578063081e3eda146101de5780630ad58d2f14610209575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461217d565b610534565b005b3480156101ea57600080fd5b506101f3610623565b6040516102009190612a03565b60405180910390f35b34801561021557600080fd5b506101dc610224366004612459565b610629565b34801561023557600080fd5b506102496102443660046123c4565b6107b9565b604051610200939291906129d9565b34801561026457600080fd5b506101f36107fb565b34801561027957600080fd5b506101dc6102883660046123f4565b610801565b34801561029957600080fd5b506101f36102a83660046123f4565b61099b565b3480156102b957600080fd5b506101dc6102c836600461230e565b610b9b565b3480156102d957600080fd5b506101dc6102e83660046123f4565b610be7565b3480156102f957600080fd5b506101dc6103083660046123c4565b610d08565b34801561031957600080fd5b506101dc610fb4565b34801561032e57600080fd5b5061034261033d3660046123c4565b611041565b60405161020091906129a0565b34801561035b57600080fd5b506101dc61036a366004612210565b6112c5565b34801561037b57600080fd5b5061038f61038a3660046123c4565b6112fb565b6040516102009190612527565b3480156103a857600080fd5b506101dc6103b7366004612287565b611322565b3480156103c857600080fd5b5061038f611396565b3480156103dd57600080fd5b506101dc6103ec366004612486565b6113a5565b3480156103fd57600080fd5b5061038f611512565b34801561041257600080fd5b506101dc610421366004612459565b611521565b34801561043257600080fd5b506104466104413660046123f4565b6116ac565b604051610200929190612a4b565b34801561046057600080fd5b506101dc61046f3660046123c4565b6116d0565b34801561048057600080fd5b506101f361173a565b34801561049557600080fd5b5061038f611740565b3480156104aa57600080fd5b506101dc6104b9366004612423565b611764565b3480156104ca57600080fd5b5061038f6104d93660046123c4565b61193a565b3480156104ea57600080fd5b506101dc6104f9366004612459565b611947565b61051161050c3660046121c7565b611b7a565b6040516102009291906125b9565b34801561052b57600080fd5b5061038f611d0a565b6000546001600160a01b031633146105675760405162461bcd60e51b815260040161055e90612818565b60405180910390fd5b8115610602576001600160a01b0383161515806105815750805b61059d5760405162461bcd60e51b815260040161055e90612732565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561061e565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610631612115565b61063a84611041565b6000858152600660209081526040808320338452909152902081519192509061068c9064e8d4a51000906106789087906001600160801b0316611d19565b8161067f57fe5b6001840154919004611d56565b6001820155805461069d9085611da3565b81556005805460009190879081106106b157fe5b6000918252602090912001546001600160a01b0316905080156107375781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291610704918a9133918a9160009190600401612a0c565b600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050505b61076584866004898154811061074957fe5b6000918252602090912001546001600160a01b03169190611dc6565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107a99190612a03565b60405180910390a4505050505050565b600381815481106107c657fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60075481565b610809612115565b61081283611041565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161084e91906001600160801b0316611d19565b8161085557fe5b0490506000610879610874846001015484611d5690919063ffffffff16565b611eb4565b60018401839055905080156108bc576108bc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611dc6565b6000600587815481106108cb57fe5b6000918252602090912001546001600160a01b0316905080156109505783546040516345fb1ba160e11b81526001600160a01b03831691638bf637429161091d918b9133918c91899190600401612a0c565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae06609249548460405161098a9190612a03565b60405180910390a350505050505050565b60006109a5612115565b600384815481106109b257fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b0389168652909252918320825160048054949650919492169288908110610a3057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190610a69903090600401612527565b60206040518083038186803b158015610a8157600080fd5b505afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab991906123dc565b905083602001516001600160401b031642118015610ad657508015155b15610b62576000610afd85602001516001600160401b031642611da390919063ffffffff16565b90506000600754610b3087604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b90611d19565b81610b3757fe5b049050610b5d83610b4d8364e8d4a51000611d19565b81610b5457fe5b86919004611eda565b935050505b60018301548354610b90916108749164e8d4a5100090610b829087611d19565b81610b8957fe5b0490611d56565b979650505050505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161055e90612818565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610c1e57fe5b6000918252602090912001546001600160a01b031690508015610ca3576040516345fb1ba160e11b81526001600160a01b03821690638bf6374290610c70908890339089906000908190600401612a0c565b600060405180830381600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050505b610cb584836004888154811061074957fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610cf99190612a03565b60405180910390a45050505050565b6002546001600160a01b0316610d305760405162461bcd60e51b815260040161055e906128b9565b600060048281548110610d3f57fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610d7a903090600401612527565b60206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906123dc565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610dff92169085906004016125a0565b602060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061224f565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610e83908690600401612527565b602060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed5919061226b565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610f04903090600401612527565b60206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5491906123dc565b8214610f725760405162461bcd60e51b815260040161055e90612761565b8060048581548110610f8057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610fdf5760405162461bcd60e51b815260040161055e9061284d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b611049612115565b6003828154811061105657fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156112c0576000600483815481106110b857fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a08231906110f1903090600401612527565b60206040518083038186803b15801561110957600080fd5b505afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114191906123dc565b905080156111e457600061116b83602001516001600160401b031642611da390919063ffffffff16565b9050600060075461119885604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b8161119f57fe5b0490506111d66111c5846111b88464e8d4a51000611d19565b816111bf57fe5b04611efd565b85516001600160801b031690611f26565b6001600160801b0316845250505b6111ed42611f55565b6001600160401b03166020830152600380548391908590811061120c57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926112b69290918691612a59565b60405180910390a2505b919050565b8060005b818110156112f5576112ec8484838181106112e057fe5b90506020020135611041565b506001016112c9565b50505050565b6004818154811061130857fe5b6000918252602090912001546001600160a01b0316905081565b60405163d505accf60e01b81526001600160a01b0389169063d505accf9061135a908a908a908a908a908a908a908a9060040161255f565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113cf5760405162461bcd60e51b815260040161055e90612818565b61140e83611408600387815481106113e357fe5b60009182526020909120015460075490600160c01b90046001600160401b0316611da3565b90611eda565b60075561141a83611f55565b6003858154811061142757fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b03160217905550801561149b57816005858154811061146c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806114c757600584815481106114ad57fe5b6000918252602090912001546001600160a01b03166114c9565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611504929190612a3b565b60405180910390a350505050565b6000546001600160a01b031681565b611529612115565b61153284611041565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906115649085611eda565b8155815161159b9064e8d4a51000906115879087906001600160801b0316611d19565b8161158e57fe5b6001840154919004611f7e565b81600101819055506000600586815481106115b257fe5b6000918252602090912001546001600160a01b0316905080156116385781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611605918a918991829160009190600401612a0c565b600060405180830381600087803b15801561161f57600080fd5b505af1158015611633573d6000803e3d6000fd5b505050505b61166833308760048a8154811061164b57fe5b6000918252602090912001546001600160a01b0316929190611fc4565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107a99190612a03565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b031633146116fa5760405162461bcd60e51b815260040161055e90612818565b60088190556040517fc6ce5eff3291fb2c1517b943daa5067ea76c83816bbf674307fbc7fea3b311d09061172f908390612a03565b60405180910390a150565b60085481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b0316331461178e5760405162461bcd60e51b815260040161055e90612818565b60075461179b9084611eda565b6007556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161184842611f55565b6001600160401b0316815260200161185f86611f55565b6001600160401b039081169091528254600181810185556000948552602094859020845192018054958501516040909501518416600160c01b026001600160c01b0395909416600160801b0267ffffffffffffffff60801b196001600160801b039094166001600160801b0319909716969096179290921694909417929092161790556004546001600160a01b0380841692908516916118fe91611da3565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161192d9190612a03565b60405180910390a4505050565b6005818154811061130857fe5b61194f612115565b61195884611041565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a510009161199491906001600160801b0316611d19565b8161199b57fe5b04905060006119ba610874846001015484611d5690919063ffffffff16565b90506119f564e8d4a510006119e586600001516001600160801b031689611d1990919063ffffffff16565b816119ec57fe5b84919004611d56565b60018401558254611a069087611da3565b8355611a3c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611dc6565b600060058881548110611a4b57fe5b6000918252602090912001546001600160a01b031690508015611ad05783546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611a9d918c9133918c91899190600401612a0c565b600060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050505b611ae2868860048b8154811061074957fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611b269190612a03565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611b689190612a03565b60405180910390a35050505050505050565b606080836001600160401b0381118015611b9357600080fd5b50604051908082528060200260200182016040528015611bbd578160200160208202803683370190505b509150836001600160401b0381118015611bd657600080fd5b50604051908082528060200260200182016040528015611c0a57816020015b6060815260200190600190039081611bf55790505b50905060005b84811015611d01576000606030888885818110611c2957fe5b9050602002810190611c3b9190612a83565b604051611c499291906124fb565b600060405180830381855af49150503d8060008114611c84576040519150601f19603f3d011682016040523d82523d6000602084013e611c89565b606091505b50915091508180611c98575085155b611ca1826120b5565b90611cbf5760405162461bcd60e51b815260040161055e9190612653565b5081858481518110611ccd57fe5b60200260200101901515908115158152505080848481518110611cec57fe5b60209081029190910101525050600101611c10565b50935093915050565b6001546001600160a01b031681565b6000811580611d3457505080820282828281611d3157fe5b04145b611d505760405162461bcd60e51b815260040161055e90612969565b92915050565b6000818303818312801590611d6b5750838113155b80611d805750600083128015611d8057508381135b611d9c5760405162461bcd60e51b815260040161055e906128f0565b9392505050565b80820382811115611d505760405162461bcd60e51b815260040161055e90612666565b60006060846001600160a01b031663a9059cbb8585604051602401611dec9291906125a0565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e25919061250b565b6000604051808303816000865af19150503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b5091509150818015611e91575080511580611e91575080806020019051810190611e91919061224f565b611ead5760405162461bcd60e51b815260040161055e906126ba565b5050505050565b600080821215611ed65760405162461bcd60e51b815260040161055e90612695565b5090565b81810181811015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160801b03821115611ed65760405162461bcd60e51b815260040161055e906127aa565b8181016001600160801b038083169082161015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160401b03821115611ed65760405162461bcd60e51b815260040161055e90612882565b6000828201818312801590611f935750838112155b80611fa85750600083128015611fa857508381125b611d9c5760405162461bcd60e51b815260040161055e906126f1565b60006060856001600160a01b03166323b872dd868686604051602401611fec9392919061253b565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612025919061250b565b6000604051808303816000865af19150503d8060008114612062576040519150601f19603f3d011682016040523d82523d6000602084013e612067565b606091505b5091509150818015612091575080511580612091575080806020019051810190612091919061224f565b6120ad5760405162461bcd60e51b815260040161055e90612934565b505050505050565b60606044825110156120fb575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526112c0565b60048201915081806020019051810190611d50919061232a565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612146578182fd5b5081356001600160401b0381111561215c578182fd5b602083019150836020808302850101111561217657600080fd5b9250929050565b600080600060608486031215612191578283fd5b833561219c81612af3565b925060208401356121ac81612b0b565b915060408401356121bc81612b0b565b809150509250925092565b6000806000604084860312156121db578283fd5b83356001600160401b038111156121f0578384fd5b6121fc86828701612135565b90945092505060208401356121bc81612b0b565b60008060208385031215612222578182fd5b82356001600160401b03811115612237578283fd5b61224385828601612135565b90969095509350505050565b600060208284031215612260578081fd5b8151611d9c81612b0b565b60006020828403121561227c578081fd5b8151611d9c81612af3565b600080600080600080600080610100898b0312156122a3578384fd5b88356122ae81612af3565b975060208901356122be81612af3565b965060408901356122ce81612af3565b9550606089013594506080890135935060a089013560ff811681146122f1578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561231f578081fd5b8135611d9c81612af3565b60006020828403121561233b578081fd5b81516001600160401b0380821115612351578283fd5b818401915084601f830112612364578283fd5b815181811115612372578384fd5b604051601f8201601f191681016020018381118282101715612392578586fd5b6040528181528382016020018710156123a9578485fd5b6123ba826020830160208701612ac7565b9695505050505050565b6000602082840312156123d5578081fd5b5035919050565b6000602082840312156123ed578081fd5b5051919050565b60008060408385031215612406578182fd5b82359150602083013561241881612af3565b809150509250929050565b600080600060608486031215612437578081fd5b83359250602084013561244981612af3565b915060408401356121bc81612af3565b60008060006060848603121561246d578081fd5b833592506020840135915060408401356121bc81612af3565b6000806000806080858703121561249b578182fd5b843593506020850135925060408501356124b481612af3565b915060608501356124c481612b0b565b939692955090935050565b600081518084526124e7816020860160208601612ac7565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161251d818460208701612ac7565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156125f45781511515845292840192908401906001016125d6565b5050508381038285015280855161260b8184612a03565b91508192508381028201848801865b838110156126445785830385526126328383516124cf565b9487019492509086019060010161261a565b50909998505050505050505050565b600060208252611d9c60208301846124cf565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612a99578283fd5b8301803591506001600160401b03821115612ab2578283fd5b60200191503681900382131561217657600080fd5b60005b83811015612ae2578181015183820152602001612aca565b838111156112f55750506000910152565b6001600160a01b0381168114612b0857600080fd5b50565b8015158114612b0857600080fdfea2646970667358221220e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c864736f6c634300060c0033000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a
Deployed Bytecode
0x6080604052600436106101b75760003560e01c80637c516e94116100ec578063a06e408b1161008a578063c346253d11610064578063c346253d146104be578063d1abb907146104de578063d2423b51146104fe578063e30c39781461051f576101b7565b8063a06e408b14610474578063ab560e1014610489578063ab7de0981461049e576101b7565b80638da5cb5b116100c65780638da5cb5b146103f15780638dbdbe6d1461040657806393f1a40b146104265780639baf58c314610454576101b7565b80637c516e941461039c5780637cd07e47146103bc57806388bba42f146103d1576101b7565b806323cf3118116101595780634e71e0c8116101335780634e71e0c81461030d57806351eb05a61461032257806357a5b58c1461034f57806378ed5d1f1461036f576101b7565b806323cf3118146102ad5780632f940c70146102cd578063454b0608146102ed576101b7565b80631526fe27116101955780631526fe271461022957806317caf6f11461025857806318fccc761461026d578063195426ec1461028d576101b7565b8063078dfbe7146101bc578063081e3eda146101de5780630ad58d2f14610209575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461217d565b610534565b005b3480156101ea57600080fd5b506101f3610623565b6040516102009190612a03565b60405180910390f35b34801561021557600080fd5b506101dc610224366004612459565b610629565b34801561023557600080fd5b506102496102443660046123c4565b6107b9565b604051610200939291906129d9565b34801561026457600080fd5b506101f36107fb565b34801561027957600080fd5b506101dc6102883660046123f4565b610801565b34801561029957600080fd5b506101f36102a83660046123f4565b61099b565b3480156102b957600080fd5b506101dc6102c836600461230e565b610b9b565b3480156102d957600080fd5b506101dc6102e83660046123f4565b610be7565b3480156102f957600080fd5b506101dc6103083660046123c4565b610d08565b34801561031957600080fd5b506101dc610fb4565b34801561032e57600080fd5b5061034261033d3660046123c4565b611041565b60405161020091906129a0565b34801561035b57600080fd5b506101dc61036a366004612210565b6112c5565b34801561037b57600080fd5b5061038f61038a3660046123c4565b6112fb565b6040516102009190612527565b3480156103a857600080fd5b506101dc6103b7366004612287565b611322565b3480156103c857600080fd5b5061038f611396565b3480156103dd57600080fd5b506101dc6103ec366004612486565b6113a5565b3480156103fd57600080fd5b5061038f611512565b34801561041257600080fd5b506101dc610421366004612459565b611521565b34801561043257600080fd5b506104466104413660046123f4565b6116ac565b604051610200929190612a4b565b34801561046057600080fd5b506101dc61046f3660046123c4565b6116d0565b34801561048057600080fd5b506101f361173a565b34801561049557600080fd5b5061038f611740565b3480156104aa57600080fd5b506101dc6104b9366004612423565b611764565b3480156104ca57600080fd5b5061038f6104d93660046123c4565b61193a565b3480156104ea57600080fd5b506101dc6104f9366004612459565b611947565b61051161050c3660046121c7565b611b7a565b6040516102009291906125b9565b34801561052b57600080fd5b5061038f611d0a565b6000546001600160a01b031633146105675760405162461bcd60e51b815260040161055e90612818565b60405180910390fd5b8115610602576001600160a01b0383161515806105815750805b61059d5760405162461bcd60e51b815260040161055e90612732565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561061e565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610631612115565b61063a84611041565b6000858152600660209081526040808320338452909152902081519192509061068c9064e8d4a51000906106789087906001600160801b0316611d19565b8161067f57fe5b6001840154919004611d56565b6001820155805461069d9085611da3565b81556005805460009190879081106106b157fe5b6000918252602090912001546001600160a01b0316905080156107375781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291610704918a9133918a9160009190600401612a0c565b600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050505b61076584866004898154811061074957fe5b6000918252602090912001546001600160a01b03169190611dc6565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107a99190612a03565b60405180910390a4505050505050565b600381815481106107c657fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60075481565b610809612115565b61081283611041565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161084e91906001600160801b0316611d19565b8161085557fe5b0490506000610879610874846001015484611d5690919063ffffffff16565b611eb4565b60018401839055905080156108bc576108bc6001600160a01b037f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a168683611dc6565b6000600587815481106108cb57fe5b6000918252602090912001546001600160a01b0316905080156109505783546040516345fb1ba160e11b81526001600160a01b03831691638bf637429161091d918b9133918c91899190600401612a0c565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae06609249548460405161098a9190612a03565b60405180910390a350505050505050565b60006109a5612115565b600384815481106109b257fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b0389168652909252918320825160048054949650919492169288908110610a3057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190610a69903090600401612527565b60206040518083038186803b158015610a8157600080fd5b505afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab991906123dc565b905083602001516001600160401b031642118015610ad657508015155b15610b62576000610afd85602001516001600160401b031642611da390919063ffffffff16565b90506000600754610b3087604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b90611d19565b81610b3757fe5b049050610b5d83610b4d8364e8d4a51000611d19565b81610b5457fe5b86919004611eda565b935050505b60018301548354610b90916108749164e8d4a5100090610b829087611d19565b81610b8957fe5b0490611d56565b979650505050505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161055e90612818565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610c1e57fe5b6000918252602090912001546001600160a01b031690508015610ca3576040516345fb1ba160e11b81526001600160a01b03821690638bf6374290610c70908890339089906000908190600401612a0c565b600060405180830381600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050505b610cb584836004888154811061074957fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610cf99190612a03565b60405180910390a45050505050565b6002546001600160a01b0316610d305760405162461bcd60e51b815260040161055e906128b9565b600060048281548110610d3f57fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610d7a903090600401612527565b60206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906123dc565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610dff92169085906004016125a0565b602060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061224f565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610e83908690600401612527565b602060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed5919061226b565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610f04903090600401612527565b60206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5491906123dc565b8214610f725760405162461bcd60e51b815260040161055e90612761565b8060048581548110610f8057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610fdf5760405162461bcd60e51b815260040161055e9061284d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b611049612115565b6003828154811061105657fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156112c0576000600483815481106110b857fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a08231906110f1903090600401612527565b60206040518083038186803b15801561110957600080fd5b505afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114191906123dc565b905080156111e457600061116b83602001516001600160401b031642611da390919063ffffffff16565b9050600060075461119885604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b8161119f57fe5b0490506111d66111c5846111b88464e8d4a51000611d19565b816111bf57fe5b04611efd565b85516001600160801b031690611f26565b6001600160801b0316845250505b6111ed42611f55565b6001600160401b03166020830152600380548391908590811061120c57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926112b69290918691612a59565b60405180910390a2505b919050565b8060005b818110156112f5576112ec8484838181106112e057fe5b90506020020135611041565b506001016112c9565b50505050565b6004818154811061130857fe5b6000918252602090912001546001600160a01b0316905081565b60405163d505accf60e01b81526001600160a01b0389169063d505accf9061135a908a908a908a908a908a908a908a9060040161255f565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113cf5760405162461bcd60e51b815260040161055e90612818565b61140e83611408600387815481106113e357fe5b60009182526020909120015460075490600160c01b90046001600160401b0316611da3565b90611eda565b60075561141a83611f55565b6003858154811061142757fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b03160217905550801561149b57816005858154811061146c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806114c757600584815481106114ad57fe5b6000918252602090912001546001600160a01b03166114c9565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611504929190612a3b565b60405180910390a350505050565b6000546001600160a01b031681565b611529612115565b61153284611041565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906115649085611eda565b8155815161159b9064e8d4a51000906115879087906001600160801b0316611d19565b8161158e57fe5b6001840154919004611f7e565b81600101819055506000600586815481106115b257fe5b6000918252602090912001546001600160a01b0316905080156116385781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611605918a918991829160009190600401612a0c565b600060405180830381600087803b15801561161f57600080fd5b505af1158015611633573d6000803e3d6000fd5b505050505b61166833308760048a8154811061164b57fe5b6000918252602090912001546001600160a01b0316929190611fc4565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107a99190612a03565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b031633146116fa5760405162461bcd60e51b815260040161055e90612818565b60088190556040517fc6ce5eff3291fb2c1517b943daa5067ea76c83816bbf674307fbc7fea3b311d09061172f908390612a03565b60405180910390a150565b60085481565b7f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a81565b6000546001600160a01b0316331461178e5760405162461bcd60e51b815260040161055e90612818565b60075461179b9084611eda565b6007556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161184842611f55565b6001600160401b0316815260200161185f86611f55565b6001600160401b039081169091528254600181810185556000948552602094859020845192018054958501516040909501518416600160c01b026001600160c01b0395909416600160801b0267ffffffffffffffff60801b196001600160801b039094166001600160801b0319909716969096179290921694909417929092161790556004546001600160a01b0380841692908516916118fe91611da3565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161192d9190612a03565b60405180910390a4505050565b6005818154811061130857fe5b61194f612115565b61195884611041565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a510009161199491906001600160801b0316611d19565b8161199b57fe5b04905060006119ba610874846001015484611d5690919063ffffffff16565b90506119f564e8d4a510006119e586600001516001600160801b031689611d1990919063ffffffff16565b816119ec57fe5b84919004611d56565b60018401558254611a069087611da3565b8355611a3c6001600160a01b037f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a168683611dc6565b600060058881548110611a4b57fe5b6000918252602090912001546001600160a01b031690508015611ad05783546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611a9d918c9133918c91899190600401612a0c565b600060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050505b611ae2868860048b8154811061074957fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611b269190612a03565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611b689190612a03565b60405180910390a35050505050505050565b606080836001600160401b0381118015611b9357600080fd5b50604051908082528060200260200182016040528015611bbd578160200160208202803683370190505b509150836001600160401b0381118015611bd657600080fd5b50604051908082528060200260200182016040528015611c0a57816020015b6060815260200190600190039081611bf55790505b50905060005b84811015611d01576000606030888885818110611c2957fe5b9050602002810190611c3b9190612a83565b604051611c499291906124fb565b600060405180830381855af49150503d8060008114611c84576040519150601f19603f3d011682016040523d82523d6000602084013e611c89565b606091505b50915091508180611c98575085155b611ca1826120b5565b90611cbf5760405162461bcd60e51b815260040161055e9190612653565b5081858481518110611ccd57fe5b60200260200101901515908115158152505080848481518110611cec57fe5b60209081029190910101525050600101611c10565b50935093915050565b6001546001600160a01b031681565b6000811580611d3457505080820282828281611d3157fe5b04145b611d505760405162461bcd60e51b815260040161055e90612969565b92915050565b6000818303818312801590611d6b5750838113155b80611d805750600083128015611d8057508381135b611d9c5760405162461bcd60e51b815260040161055e906128f0565b9392505050565b80820382811115611d505760405162461bcd60e51b815260040161055e90612666565b60006060846001600160a01b031663a9059cbb8585604051602401611dec9291906125a0565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e25919061250b565b6000604051808303816000865af19150503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b5091509150818015611e91575080511580611e91575080806020019051810190611e91919061224f565b611ead5760405162461bcd60e51b815260040161055e906126ba565b5050505050565b600080821215611ed65760405162461bcd60e51b815260040161055e90612695565b5090565b81810181811015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160801b03821115611ed65760405162461bcd60e51b815260040161055e906127aa565b8181016001600160801b038083169082161015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160401b03821115611ed65760405162461bcd60e51b815260040161055e90612882565b6000828201818312801590611f935750838112155b80611fa85750600083128015611fa857508381125b611d9c5760405162461bcd60e51b815260040161055e906126f1565b60006060856001600160a01b03166323b872dd868686604051602401611fec9392919061253b565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612025919061250b565b6000604051808303816000865af19150503d8060008114612062576040519150601f19603f3d011682016040523d82523d6000602084013e612067565b606091505b5091509150818015612091575080511580612091575080806020019051810190612091919061224f565b6120ad5760405162461bcd60e51b815260040161055e90612934565b505050505050565b60606044825110156120fb575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526112c0565b60048201915081806020019051810190611d50919061232a565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612146578182fd5b5081356001600160401b0381111561215c578182fd5b602083019150836020808302850101111561217657600080fd5b9250929050565b600080600060608486031215612191578283fd5b833561219c81612af3565b925060208401356121ac81612b0b565b915060408401356121bc81612b0b565b809150509250925092565b6000806000604084860312156121db578283fd5b83356001600160401b038111156121f0578384fd5b6121fc86828701612135565b90945092505060208401356121bc81612b0b565b60008060208385031215612222578182fd5b82356001600160401b03811115612237578283fd5b61224385828601612135565b90969095509350505050565b600060208284031215612260578081fd5b8151611d9c81612b0b565b60006020828403121561227c578081fd5b8151611d9c81612af3565b600080600080600080600080610100898b0312156122a3578384fd5b88356122ae81612af3565b975060208901356122be81612af3565b965060408901356122ce81612af3565b9550606089013594506080890135935060a089013560ff811681146122f1578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561231f578081fd5b8135611d9c81612af3565b60006020828403121561233b578081fd5b81516001600160401b0380821115612351578283fd5b818401915084601f830112612364578283fd5b815181811115612372578384fd5b604051601f8201601f191681016020018381118282101715612392578586fd5b6040528181528382016020018710156123a9578485fd5b6123ba826020830160208701612ac7565b9695505050505050565b6000602082840312156123d5578081fd5b5035919050565b6000602082840312156123ed578081fd5b5051919050565b60008060408385031215612406578182fd5b82359150602083013561241881612af3565b809150509250929050565b600080600060608486031215612437578081fd5b83359250602084013561244981612af3565b915060408401356121bc81612af3565b60008060006060848603121561246d578081fd5b833592506020840135915060408401356121bc81612af3565b6000806000806080858703121561249b578182fd5b843593506020850135925060408501356124b481612af3565b915060608501356124c481612b0b565b939692955090935050565b600081518084526124e7816020860160208601612ac7565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161251d818460208701612ac7565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156125f45781511515845292840192908401906001016125d6565b5050508381038285015280855161260b8184612a03565b91508192508381028201848801865b838110156126445785830385526126328383516124cf565b9487019492509086019060010161261a565b50909998505050505050505050565b600060208252611d9c60208301846124cf565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612a99578283fd5b8301803591506001600160401b03821115612ab2578283fd5b60200191503681900382131561217657600080fd5b60005b83811015612ae2578181015183820152602001612aca565b838111156112f55750506000910152565b6001600160a01b0381168114612b0857600080fd5b50565b8015158114612b0857600080fdfea2646970667358221220e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c864736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a
-----Decoded View---------------
Arg [0] : _sushi (address): 0xd4d42F0b6DEF4CE0383636770eF773390d85c61A
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a
Deployed ByteCode Sourcemap
13694:12804:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7731:472;;;;;;;;;;-1:-1:-1;7731:472:0;;;;;:::i;:::-;;:::i;:::-;;16279:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22771:687;;;;;;;;;;-1:-1:-1;22771:687:0;;;;;:::i;:::-;;:::i;14727:26::-;;;;;;;;;;-1:-1:-1;14727:26:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15175:30::-;;;;;;;;;;;;;:::i;23637:808::-;;;;;;;;;;-1:-1:-1;23637:808:0;;;;;:::i;:::-;;:::i;19481:802::-;;;;;;;;;;-1:-1:-1;19481:802:0;;;;;:::i;:::-;;:::i;18511:102::-;;;;;;;;;;-1:-1:-1;18511:102:0;;;;;:::i;:::-;;:::i;25920:575::-;;;;;;;;;;-1:-1:-1;25920:575:0;;;;;:::i;:::-;;:::i;18771:482::-;;;;;;;;;;-1:-1:-1;18771:482:0;;;;;:::i;:::-;;:::i;8252:348::-;;;;;;;;;;;;;:::i;20842:785::-;;;;;;;;;;-1:-1:-1;20842:785:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20465:193::-;;;;;;;;;;-1:-1:-1;20465:193:0;;;;;:::i;:::-;;:::i;14821:23::-;;;;;;;;;;-1:-1:-1;14821:23:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6659:246::-;;;;;;;;;;-1:-1:-1;6659:246:0;;;;;:::i;:::-;;:::i;14648:29::-;;;;;;;;;;;;;:::i;17603:411::-;;;;;;;;;;-1:-1:-1;17603:411:0;;;;;:::i;:::-;;:::i;7307:20::-;;;;;;;;;;;;;:::i;21871:688::-;;;;;;;;;;-1:-1:-1;21871:688:0;;;;;:::i;:::-;;:::i;15008:66::-;;;;;;;;;;-1:-1:-1;15008:66:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;18199:170::-;;;;;;;;;;-1:-1:-1;18199:170:0;;;;;:::i;:::-;;:::i;15214:29::-;;;;;;;;;;;;;:::i;14506:::-;;;;;;;;;;;;;:::i;16718:491::-;;;;;;;;;;-1:-1:-1;16718:491:0;;;;;:::i;:::-;;:::i;14914:27::-;;;;;;;;;;-1:-1:-1;14914:27:0;;;;;:::i;:::-;;:::i;24731:1004::-;;;;;;;;;;-1:-1:-1;24731:1004:0;;;;;:::i;:::-;;:::i;5758:554::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;7354:27::-;;;;;;;;;;;;;:::i;7731:472::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;;;;;;;;;7836:6:::1;7832:364;;;-1:-1:-1::0;;;;;7890:22:0;::::1;::::0;::::1;::::0;:34:::1;;;7916:8;7890:34;7882:68;;;;-1:-1:-1::0;;;7882:68:0::1;;;;;;;:::i;:::-;8017:5;::::0;;7996:37:::1;::::0;-1:-1:-1;;;;;7996:37:0;;::::1;::::0;8017:5;::::1;::::0;7996:37:::1;::::0;::::1;8048:5;:16:::0;;-1:-1:-1;;;;;8048:16:0;::::1;-1:-1:-1::0;;;;;;8048:16:0;;::::1;;::::0;;;;8079:25;;;;::::1;::::0;;7832:364:::1;;;8161:12;:23:::0;;-1:-1:-1;;;;;;8161:23:0::1;-1:-1:-1::0;;;;;8161:23:0;::::1;;::::0;;7832:364:::1;7731:472:::0;;;:::o;16279:100::-;16356:8;:15;;16279:100::o;22771:687::-;22848:20;;:::i;:::-;22871:15;22882:3;22871:10;:15::i;:::-;22897:21;22921:13;;;:8;:13;;;;;;;;22935:10;22921:25;;;;;;;23035:21;;22848:38;;-1:-1:-1;22921:25:0;22997:84;;15297:4;;23024:33;;:6;;-1:-1:-1;;;;;23024:33:0;:10;:33::i;:::-;:55;;;;;22997:15;;;;;23024:55;;22997:19;:84::i;:::-;22979:15;;;:102;23106:11;;:23;;23122:6;23106:15;:23::i;:::-;23092:37;;23189:8;:13;;23092:11;;23189:8;23198:3;;23189:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23189:13:0;;-1:-1:-1;23217:32:0;;23213:125;;23314:11;;23266:60;;-1:-1:-1;;;23266:60:0;;-1:-1:-1;;;;;23266:23:0;;;;;:60;;23290:3;;23295:10;;23307:2;;23311:1;;23314:11;23266:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23213:125;23358:37;23384:2;23388:6;23358:7;23366:3;23358:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23358:12:0;;:37;:25;:37::i;:::-;23447:2;-1:-1:-1;;;;;23413:37:0;23434:3;23422:10;-1:-1:-1;;;;;23413:37:0;;23439:6;23413:37;;;;;;:::i;:::-;;;;;;;;22771:687;;;;;;:::o;14727:26::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14727:26:0;;;-1:-1:-1;;;;;;;;;14727:26:0;;;;;-1:-1:-1;;;14727:26:0;;;;:::o;15175:30::-;;;;:::o;23637:808::-;23697:20;;:::i;:::-;23720:15;23731:3;23720:10;:15::i;:::-;23746:21;23770:13;;;:8;:13;;;;;;;;23784:10;23770:25;;;;;;;23855:21;;23839:11;;23697:38;;-1:-1:-1;23770:25:0;;15297:4;;23839:38;;:11;-1:-1:-1;;;;;23839:38:0;:15;:38::i;:::-;:60;;;;;;23806:94;;23911:21;23935:49;:37;23956:4;:15;;;23935:16;:20;;:37;;;;:::i;:::-;:47;:49::i;:::-;24017:15;;;:34;;;23911:73;-1:-1:-1;24093:18:0;;24089:88;;24128:37;-1:-1:-1;;;;;24128:5:0;:18;24147:2;24151:13;24128:18;:37::i;:::-;24197:19;24219:8;24228:3;24219:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24219:13:0;;-1:-1:-1;24247:32:0;;24243:138;;24357:11;;24296:73;;-1:-1:-1;;;24296:73:0;;-1:-1:-1;;;;;24296:23:0;;;;;:73;;24321:3;;24326:10;;24338:2;;24342:13;;24357:11;24296:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24243:138;24418:3;24406:10;-1:-1:-1;;;;;24398:39:0;;24423:13;24398:39;;;;;;:::i;:::-;;;;;;;;23637:808;;;;;;;:::o;19481:802::-;19555:15;19583:20;;:::i;:::-;19606:8;19615:4;19606:14;;;;;;;;;;;;;;;;19583:37;;;;;;;;19606:14;;;;19583:37;-1:-1:-1;;;;;19583:37:0;;;;;-1:-1:-1;;;;;;;;19583:37:0;;;;;;;;-1:-1:-1;;;19583:37:0;;;;;;;;;;19655:14;;;:8;:14;;;;;-1:-1:-1;;;;;19655:21:0;;;;;;;;;;19714;;19765:7;:13;;19583:37;;-1:-1:-1;19655:21:0;;19687:48;;;19664:4;;19765:13;;;;;;;;;;;;;;;;:38;;-1:-1:-1;;;19765:38:0;;-1:-1:-1;;;;;19765:13:0;;;;:23;;:38;;19797:4;;19765:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19746:57;;19836:4;:19;;;-1:-1:-1;;;;;19818:37:0;:15;:37;:54;;;;-1:-1:-1;19859:13:0;;;19818:54;19814:345;;;19889:12;19904:40;19924:4;:19;;;-1:-1:-1;;;;;19904:40:0;:15;:19;;:40;;;;:::i;:::-;19889:55;;19959:19;20029:15;;19981:45;20010:4;:15;;;-1:-1:-1;;;;;19981:45:0;:24;19990:14;;19981:4;:8;;:24;;;;:::i;:::-;:28;;:45::i;:::-;:63;;;;;;;-1:-1:-1;20078:69:0;20138:8;20099:36;19981:63;15297:4;20099:15;:36::i;:::-;:47;;;;;20078:16;;20099:47;;20078:20;:69::i;:::-;20059:88;;19814:345;;;20247:15;;;;20186:11;;20179:96;;:84;;15297:4;;20186:33;;20202:16;20186:15;:33::i;:::-;:55;;;;;;;20179:67;:84::i;:96::-;20169:106;19481:802;-1:-1:-1;;;;;;;19481:802:0:o;18511:102::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;18585:8:::1;:20:::0;;-1:-1:-1;;;;;;18585:20:0::1;-1:-1:-1::0;;;;;18585:20:0;;;::::1;::::0;;;::::1;::::0;;18511:102::o;25920:575::-;25990:21;26014:13;;;:8;:13;;;;;;;;26028:10;26014:25;;;;;;;26067:11;;26089:15;;;-1:-1:-1;26115:15:0;;:19;;;26169:8;:13;;26014:25;;26067:11;;26023:3;;26169:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26169:13:0;;-1:-1:-1;26197:32:0;;26193:115;;26246:50;;-1:-1:-1;;;26246:50:0;;-1:-1:-1;;;;;26246:23:0;;;;;:50;;26270:3;;26275:10;;26287:2;;26291:1;;;;26246:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26193:115;26388:37;26414:2;26418:6;26388:7;26396:3;26388:12;;;;;;;:37;26484:2;-1:-1:-1;;;;;26441:46:0;26471:3;26459:10;-1:-1:-1;;;;;26441:46:0;;26476:6;26441:46;;;;;;:::i;:::-;;;;;;;;25920:575;;;;;:::o;18771:482::-;18836:8;;-1:-1:-1;;;;;18836:8:0;18820:73;;;;-1:-1:-1;;;18820:73:0;;;;;;;:::i;:::-;18904:15;18922:7;18930:4;18922:13;;;;;;;;;;;;;;;;;18960:33;;-1:-1:-1;;;18960:33:0;;-1:-1:-1;;;;;18922:13:0;;;;-1:-1:-1;18922:13:0;;18960:18;;:33;;18987:4;;18960:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19029:8;;19004:40;;-1:-1:-1;;;19004:40:0;;18946:47;;-1:-1:-1;;;;;;19004:16:0;;;;;;:40;;19029:8;;18946:47;;19004:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19075:8:0;;:26;;-1:-1:-1;;;19075:26:0;;19055:17;;-1:-1:-1;;;;;19075:8:0;;:16;;:26;;19092:8;;19075:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19127:35;;-1:-1:-1;;;19127:35:0;;19055:46;;-1:-1:-1;;;;;;19127:20:0;;;;;:35;;19156:4;;19127:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19120:3;:42;19112:96;;;;-1:-1:-1;;;19112:96:0;;;;;;;:::i;:::-;19235:10;19219:7;19227:4;19219:13;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;;;;19219:26:0;;;;;-1:-1:-1;;;;;19219:26:0;;;;;;18771:482;;;;:::o;8252:348::-;8320:12;;-1:-1:-1;;;;;8320:12:0;8380:10;:27;;8372:72;;;;-1:-1:-1;;;8372:72:0;;;;;;;:::i;:::-;8503:5;;;8482:42;;-1:-1:-1;;;;;8482:42:0;;;;8503:5;;;8482:42;;;8535:5;:21;;-1:-1:-1;;;;;8535:21:0;;;-1:-1:-1;;;;;;8535:21:0;;;;;;;8567:25;;;;;;;8252:348::o;20842:785::-;20891:20;;:::i;:::-;20931:8;20940:3;20931:13;;;;;;;;;;;;;;;;;20924:20;;;;;;;;20931:13;;;;20924:20;-1:-1:-1;;;;;20924:20:0;;;;-1:-1:-1;;;;;;;;20924:20:0;;;;;;;;;;-1:-1:-1;;;20924:20:0;;;;;;;;;-1:-1:-1;20959:15:0;:37;20955:665;;;21013:16;21032:7;21040:3;21032:12;;;;;;;;;;;;;;;;;;:37;;-1:-1:-1;;;21032:37:0;;-1:-1:-1;;;;;21032:12:0;;;;:22;;:37;;21063:4;;21032:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21013:56;-1:-1:-1;21088:12:0;;21084:339;;21121:12;21136:40;21156:4;:19;;;-1:-1:-1;;;;;21136:40:0;:15;:19;;:40;;;;:::i;:::-;21121:55;;21195:19;21265:15;;21217:45;21246:4;:15;;;-1:-1:-1;;;;;21217:45:0;:24;21226:14;;21217:4;:8;;:24;;;;:::i;:45::-;:63;;;;;;;-1:-1:-1;21323:84:0;21349:57;21389:8;21350:36;21217:63;15297:4;21350:15;:36::i;:::-;:47;;;;;;21349:55;:57::i;:::-;21323:21;;-1:-1:-1;;;;;21323:25:0;;;:84::i;:::-;-1:-1:-1;;;;;21299:108:0;;;-1:-1:-1;;21084:339:0;21459:22;:15;:20;:22::i;:::-;-1:-1:-1;;;;;21437:44:0;:19;;;:44;21496:8;:13;;21437:4;;21496:8;21505:3;;21496:13;;;;;;;;;;;;;;;:20;;:13;;:20;;;;;;;;;;;-1:-1:-1;;;;;;21496:20:0;;;-1:-1:-1;;;;;21496:20:0;;;;;;;-1:-1:-1;;;;21496:20:0;-1:-1:-1;;;;;;;;21496:20:0;;;;;-1:-1:-1;;;;;21496:20:0;-1:-1:-1;;;21496:20:0;;;;;;;;;;;;;;21555:19;;;21586:21;;21536:72;;21550:3;;21536:72;;;;21555:19;;21576:8;;21536:72;:::i;:::-;;;;;;;;20955:665;;20842:785;;;:::o;20465:193::-;20549:4;20535:11;20571:80;20595:3;20591:1;:7;20571:80;;;20620:19;20631:4;;20636:1;20631:7;;;;;;;;;;;;;20620:10;:19::i;:::-;-1:-1:-1;20600:3:0;;20571:80;;;;20465:193;;;:::o;14821:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14821:23:0;;-1:-1:-1;14821:23:0;:::o;6659:246::-;6848:49;;-1:-1:-1;;;6848:49:0;;-1:-1:-1;;;;;6848:12:0;;;;;:49;;6861:4;;6867:2;;6871:6;;6879:8;;6889:1;;6892;;6895;;6848:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6659:246;;;;;;;;:::o;14648:29::-;;;-1:-1:-1;;;;;14648:29:0;;:::o;17603:411::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;17734:63:::1;17785:11;17734:46;17754:8;17763:4;17754:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:25:::0;17734:15:::1;::::0;;-1:-1:-1;;;17754:25:0;::::1;-1:-1:-1::0;;;;;17754:25:0::1;17734:19;:46::i;:::-;:50:::0;::::1;:63::i;:::-;17716:15;:81:::0;17836:18:::1;:11:::0;:16:::1;:18::i;:::-;17808:8;17817:4;17808:14;;;;;;;;;;;;;;;:25;;;:46;;;;;-1:-1:-1::0;;;;;17808:46:0::1;;;;;-1:-1:-1::0;;;;;17808:46:0::1;;;;;;17869:9;17865:46;;;17899:9;17882:8;17891:4;17882:14;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1::0;;;;;17882:26:0::1;;;;;-1:-1:-1::0;;;;;17882:26:0::1;;;;;;17865:46;17956:9;:38;;17980:8;17989:4;17980:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17980:14:0::1;17956:38;;;17968:9;17956:38;-1:-1:-1::0;;;;;17926:80:0::1;17937:4;17926:80;17943:11;17996:9;17926:80;;;;;;;:::i;:::-;;;;;;;;17603:411:::0;;;;:::o;7307:20::-;;;-1:-1:-1;;;;;7307:20:0;;:::o;21871:688::-;21947:20;;:::i;:::-;21970:15;21981:3;21970:10;:15::i;:::-;21996:21;22020:13;;;:8;:13;;;;;;;;-1:-1:-1;;;;;22020:17:0;;;;;;;;;22084:11;;21947:38;;-1:-1:-1;22020:17:0;22084:23;;22100:6;22084:15;:23::i;:::-;22070:37;;22174:21;;22136:84;;15297:4;;22163:33;;:6;;-1:-1:-1;;;;;22163:33:0;:10;:33::i;:::-;:55;;;;;22136:15;;;;;22163:55;;22136:19;:84::i;:::-;22118:4;:15;;:102;;;;22258:19;22280:8;22289:3;22280:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22280:13:0;;-1:-1:-1;22308:32:0;;22304:117;;22397:11;;22357:52;;-1:-1:-1;;;22357:52:0;;-1:-1:-1;;;;;22357:23:0;;;;;:52;;22381:3;;22386:2;;;;22394:1;;22397:11;22357:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22304:117;22433:64;22463:10;22483:4;22490:6;22433:7;22441:3;22433:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22433:12:0;;:64;;:29;:64::i;:::-;22548:2;-1:-1:-1;;;;;22515:36:0;22535:3;22523:10;-1:-1:-1;;;;;22515:36:0;;22540:6;22515:36;;;;;;:::i;15008:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18199:170::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;18279:14:::1;:32:::0;;;18327:34:::1;::::0;::::1;::::0;::::1;::::0;18296:15;;18327:34:::1;:::i;:::-;;;;;;;;18199:170:::0;:::o;15214:29::-;;;;:::o;14506:::-;;;:::o;16718:491::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;16835:15:::1;::::0;:31:::1;::::0;16855:10;16835:19:::1;:31::i;:::-;16817:15;:49:::0;16877:7:::1;:22:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;16877:22:0;;::::1;-1:-1:-1::0;;;;;;16877:22:0;;::::1;;::::0;;;16910:8:::1;:24:::0;;;;::::1;::::0;;-1:-1:-1;16910:24:0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;16961:152:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;16877:22:0::1;16961:152:::0;::::1;17045:22;:15;:20;:22::i;:::-;-1:-1:-1::0;;;;;16961:152:0::1;;;;;16997:17;:10;:15;:17::i;:::-;-1:-1:-1::0;;;;;16961:152:0;;::::1;::::0;;;16947:167;;::::1;::::0;;::::1;::::0;;-1:-1:-1;16947:167:0;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;16947:167:0::1;-1:-1:-1::0;;;;;16947:167:0;;;::::1;-1:-1:-1::0;;;16947:167:0::1;-1:-1:-1::0;;;;;;;;;16947:167:0;;::::1;-1:-1:-1::0;;;;;;16947:167:0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;17146:7:::1;:14:::0;-1:-1:-1;;;;;17130:71:0;;::::1;::::0;;;::::1;::::0;17146:21:::1;::::0;:18:::1;:21::i;:::-;17130:71;17169:10;17130:71;;;;;;:::i;:::-;;;;;;;;16718:491:::0;;;:::o;14914:27::-;;;;;;;;;;24731:1004;24818:20;;:::i;:::-;24841:15;24852:3;24841:10;:15::i;:::-;24867:21;24891:13;;;:8;:13;;;;;;;;24905:10;24891:25;;;;;;;24976:21;;24960:11;;24818:38;;-1:-1:-1;24891:25:0;;15297:4;;24960:38;;:11;-1:-1:-1;;;;;24960:38:0;:15;:38::i;:::-;:60;;;;;;24927:94;;25032:21;25056:49;:37;25077:4;:15;;;25056:16;:20;;:37;;;;:::i;:49::-;25032:73;;25156:85;15297:4;25184:33;25195:4;:21;;;-1:-1:-1;;;;;25184:33:0;:6;:10;;:33;;;;:::i;:::-;:55;;;;;25156:16;;25184:55;;25156:20;:85::i;:::-;25138:15;;;:103;25266:11;;:23;;25282:6;25266:15;:23::i;:::-;25252:37;;25335;-1:-1:-1;;;;;25335:5:0;:18;25354:2;25358:13;25335:18;:37::i;:::-;25385:19;25407:8;25416:3;25407:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25407:13:0;;-1:-1:-1;25435:32:0;;25431:137;;25544:11;;25484:72;;-1:-1:-1;;;25484:72:0;;-1:-1:-1;;;;;25484:23:0;;;;;:72;;25508:3;;25513:10;;25525:2;;25529:13;;25544:11;25484:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25431:137;25580:37;25606:2;25610:6;25580:7;25588:3;25580:12;;;;;;;:37;25669:2;-1:-1:-1;;;;;25635:37:0;25656:3;25644:10;-1:-1:-1;;;;;25635:37:0;;25661:6;25635:37;;;;;;:::i;:::-;;;;;;;;25708:3;25696:10;-1:-1:-1;;;;;25688:39:0;;25713:13;25688:39;;;;;;:::i;:::-;;;;;;;;24731:1004;;;;;;;;:::o;5758:554::-;5841:23;;5949:5;-1:-1:-1;;;;;5938:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5938:24:0;-1:-1:-1;5926:36:0;-1:-1:-1;5995:5:0;-1:-1:-1;;;;;5983:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:35;;6024:9;6019:286;6039:16;;;6019:286;;;6078:12;6092:19;6123:4;6142:5;;6148:1;6142:8;;;;;;;;;;;;;;;;;;:::i;:::-;6115:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6077:74;;;;6174:7;:24;;;;6186:12;6185:13;6174:24;6200:21;6214:6;6200:13;:21::i;:::-;6166:56;;;;;-1:-1:-1;;;6166:56:0;;;;;;;;:::i;:::-;;6252:7;6237:9;6247:1;6237:12;;;;;;;;;;;;;:22;;;;;;;;;;;6287:6;6274:7;6282:1;6274:10;;;;;;;;;;;;;;;;;:19;-1:-1:-1;;6057:3:0;;6019:286;;;;5758:554;;;;;;:::o;7354:27::-;;;-1:-1:-1;;;;;7354:27:0;;:::o;694:137::-;752:9;772:6;;;:28;;-1:-1:-1;;787:5:0;;;799:1;794;787:5;794:1;782:13;;;;;:18;772:28;764:65;;;;-1:-1:-1;;;764:65:0;;;;;;;:::i;:::-;694:137;;;;:::o;10748:218::-;10804:6;10834:5;;;10859:6;;;;;;:16;;;10874:1;10869;:6;;10859:16;10858:38;;;;10885:1;10881;:5;:14;;;;;10894:1;10890;:5;10881:14;10850:87;;;;-1:-1:-1;;;10850:87:0;;;;;;;:::i;:::-;10957:1;10748:218;-1:-1:-1;;;10748:218:0:o;566:122::-;649:5;;;644:16;;;;636:50;;;;-1:-1:-1;;;636:50:0;;;;;;;:::i;3885:304::-;3970:12;3984:17;4013:5;-1:-1:-1;;;;;4005:19:0;4048:10;4060:2;4064:6;4025:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4025:46:0;;;;;;;;;;;4005:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:103;;;;4091:7;:57;;;;-1:-1:-1;4103:11:0;;:16;;:44;;;4134:4;4123:24;;;;;;;;;;;;:::i;:::-;4083:98;;;;-1:-1:-1;;;4083:98:0;;;;;;;:::i;:::-;3885:304;;;;;:::o;11434:138::-;11486:7;11519:1;11514;:6;;11506:30;;;;-1:-1:-1;;;11506:30:0;;;;;;;:::i;:::-;-1:-1:-1;11562:1:0;11434:138::o;435:125::-;518:5;;;513:16;;;;505:53;;;;-1:-1:-1;;;505:53:0;;;;;;;:::i;837:161::-;886:9;-1:-1:-1;;;;;916:16:0;;;908:57;;;;-1:-1:-1;;;908:57:0;;;;;;;:::i;1358:125::-;1441:5;;;-1:-1:-1;;;;;1436:16:0;;;;;;;;1428:53;;;;-1:-1:-1;;;1428:53:0;;;;;;;:::i;1004:156::-;1052:8;-1:-1:-1;;;;;1081:15:0;;;1073:55;;;;-1:-1:-1;;;1073:55:0;;;;;;;:::i;11211:215::-;11267:6;11297:5;;;11322:6;;;;;;:16;;;11337:1;11332;:6;;11322:16;11321:38;;;;11348:1;11344;:5;:14;;;;;11357:1;11353;:5;11344:14;11313:84;;;;-1:-1:-1;;;11313:84:0;;;;;;;:::i;4197:332::-;4300:12;4314:17;4343:5;-1:-1:-1;;;;;4335:19:0;4378:10;4390:4;4396:2;4400:6;4355:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4355:52:0;;;;;;;;;;;4335:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:109;;;;4427:7;:57;;;;-1:-1:-1;4439:11:0;;:16;;:44;;;4470:4;4459:24;;;;;;;;;;;;:::i;:::-;4419:102;;;;-1:-1:-1;;;4419:102:0;;;;;;;:::i;:::-;4197:332;;;;;;:::o;4802:496::-;4874:13;5037:2;5016:11;:18;:23;5012:67;;;-1:-1:-1;5041:38:0;;;;;;;;;;;;;;;;;;;5012:67;5183:4;5170:11;5166:22;5151:37;;5227:11;5216:33;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;158:363::-;;;299:3;292:4;284:6;280:17;276:27;266:2;;-1:-1;;307:12;266:2;-1:-1;337:20;;-1:-1;;;;;366:30;;363:2;;;-1:-1;;399:12;363:2;443:4;435:6;431:17;419:29;;494:3;443:4;;478:6;474:17;435:6;460:32;;457:41;454:2;;;511:1;;501:12;454:2;259:262;;;;;:::o;2862:479::-;;;;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;-1:-1;;3000:12;2962:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3052:63;-1:-1;3152:2;3188:22;;971:20;996:30;971:20;996:30;:::i;:::-;3160:60;-1:-1;3257:2;3293:22;;971:20;996:30;971:20;996:30;:::i;:::-;3265:60;;;;2956:385;;;;;:::o;3348:538::-;;;;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;-1:-1;;3518:12;3480:2;3576:17;3563:31;-1:-1;;;;;3606:6;3603:30;3600:2;;;-1:-1;;3636:12;3600:2;3674:91;3757:7;3748:6;3737:9;3733:22;3674:91;:::i;:::-;3656:109;;-1:-1;3656:109;-1:-1;;3802:2;3838:22;;971:20;996:30;971:20;996:30;:::i;3893:397::-;;;4032:2;4020:9;4011:7;4007:23;4003:32;4000:2;;;-1:-1;;4038:12;4000:2;4096:17;4083:31;-1:-1;;;;;4126:6;4123:30;4120:2;;;-1:-1;;4156:12;4120:2;4194:80;4266:7;4257:6;4246:9;4242:22;4194:80;:::i;:::-;4176:98;;;;-1:-1;3994:296;-1:-1;;;;3994:296::o;4297:257::-;;4409:2;4397:9;4388:7;4384:23;4380:32;4377:2;;;-1:-1;;4415:12;4377:2;1119:6;1113:13;1131:30;1155:5;1131:30;:::i;4561:291::-;;4690:2;4678:9;4669:7;4665:23;4661:32;4658:2;;;-1:-1;;4696:12;4658:2;1573:6;1567:13;1585:47;1626:5;1585:47;:::i;4859:1145::-;;;;;;;;;5094:3;5082:9;5073:7;5069:23;5065:33;5062:2;;;-1:-1;;5101:12;5062:2;1404:6;1391:20;1416:47;1457:5;1416:47;:::i;:::-;5153:77;-1:-1;5267:2;5306:22;;72:20;97:33;72:20;97:33;:::i;:::-;5275:63;-1:-1;5375:2;5414:22;;72:20;97:33;72:20;97:33;:::i;:::-;5383:63;-1:-1;5483:2;5522:22;;2518:20;;-1:-1;5591:3;5631:22;;2518:20;;-1:-1;5700:3;5738:22;;2794:20;40581:4;40570:16;;43669:33;;43659:2;;-1:-1;;43706:12;43659:2;5056:948;;;;-1:-1;5056:948;;;;;;5709:61;;-1:-1;;;5807:3;5847:22;;1240:20;;5916:3;5956:22;1240:20;;5056:948::o;6011:285::-;;6137:2;6125:9;6116:7;6112:23;6108:32;6105:2;;;-1:-1;;6143:12;6105:2;1746:6;1733:20;1758:55;1807:5;1758:55;:::i;6303:362::-;;6428:2;6416:9;6407:7;6403:23;6399:32;6396:2;;;-1:-1;;6434:12;6396:2;6485:17;6479:24;-1:-1;;;;;6523:18;6515:6;6512:30;6509:2;;;-1:-1;;6545:12;6509:2;6632:6;6621:9;6617:22;;;2112:3;2105:4;2097:6;2093:17;2089:27;2079:2;;-1:-1;;2120:12;2079:2;2160:6;2154:13;6523:18;37217:6;37214:30;37211:2;;;-1:-1;;37247:12;37211:2;36880;36874:9;37320;37301:17;;-1:-1;;37297:33;36906:17;;6428:2;36906:17;36966:34;;;37002:22;;;36963:62;36960:2;;;-1:-1;;37028:12;36960:2;36880;37047:22;2253:21;;;2353:16;;;6428:2;2353:16;2350:25;-1:-1;2347:2;;;-1:-1;;2378:12;2347:2;2398:39;2430:6;6428:2;2329:5;2325:16;6428:2;2295:6;2291:17;2398:39;:::i;:::-;6565:84;6390:275;-1:-1;;;;;;6390:275::o;6672:241::-;;6776:2;6764:9;6755:7;6751:23;6747:32;6744:2;;;-1:-1;;6782:12;6744:2;-1:-1;2518:20;;6738:175;-1:-1;6738:175::o;6920:263::-;;7035:2;7023:9;7014:7;7010:23;7006:32;7003:2;;;-1:-1;;7041:12;7003:2;-1:-1;2666:13;;6997:186;-1:-1;6997:186::o;7190:366::-;;;7311:2;7299:9;7290:7;7286:23;7282:32;7279:2;;;-1:-1;;7317:12;7279:2;2531:6;2518:20;7369:63;;7469:2;7512:9;7508:22;72:20;97:33;124:5;97:33;:::i;:::-;7477:63;;;;7273:283;;;;;:::o;7563:555::-;;;;7733:2;7721:9;7712:7;7708:23;7704:32;7701:2;;;-1:-1;;7739:12;7701:2;2531:6;2518:20;7791:63;;7891:2;7948:9;7944:22;1391:20;1416:47;1457:5;1416:47;:::i;:::-;7899:77;-1:-1;8013:2;8070:22;;1910:20;1935:51;1910:20;1935:51;:::i;8125:491::-;;;;8263:2;8251:9;8242:7;8238:23;8234:32;8231:2;;;-1:-1;;8269:12;8231:2;2531:6;2518:20;8321:63;;8421:2;8464:9;8460:22;2518:20;8429:63;;8529:2;8572:9;8568:22;72:20;97:33;124:5;97:33;:::i;8623:647::-;;;;;8793:3;8781:9;8772:7;8768:23;8764:33;8761:2;;;-1:-1;;8800:12;8761:2;2531:6;2518:20;8852:63;;8952:2;8995:9;8991:22;2518:20;8960:63;;9060:2;9121:9;9117:22;1910:20;1935:51;1980:5;1935:51;:::i;:::-;9068:81;-1:-1;9186:2;9222:22;;971:20;996:30;971:20;996:30;:::i;:::-;8755:515;;;;-1:-1;8755:515;;-1:-1;;8755:515::o;12241:323::-;;12373:5;37832:12;38647:6;38642:3;38635:19;12456:52;12501:6;38684:4;38679:3;38675:14;38684:4;12482:5;12478:16;12456:52;:::i;:::-;37320:9;42605:14;-1:-1;;42601:28;12520:39;;;;38684:4;12520:39;;12321:243;-1:-1;;12321:243::o;20773:291::-;;42188:6;42183:3;42178;42165:30;42226:16;;42219:27;;;42226:16;20917:147;-1:-1;20917:147::o;21071:271::-;;12731:5;37832:12;12842:52;12887:6;12882:3;12875:4;12868:5;12864:16;12842:52;:::i;:::-;12906:16;;;;;21205:137;-1:-1;;21205:137::o;21349:222::-;-1:-1;;;;;40262:54;;;;9865:37;;21476:2;21461:18;;21447:124::o;21578:444::-;-1:-1;;;;;40262:54;;;9865:37;;40262:54;;;;21925:2;21910:18;;9865:37;22008:2;21993:18;;11851:37;;;;21761:2;21746:18;;21732:290::o;22029:884::-;-1:-1;;;;;40262:54;;;9865:37;;40262:54;;;;22485:2;22470:18;;9865:37;22568:2;22553:18;;11851:37;;;;22651:2;22636:18;;11851:37;;;;40581:4;40570:16;22730:3;22715:19;;20726:35;40273:42;22799:19;;11851:37;22898:3;22883:19;;11851:37;;;;22320:3;22305:19;;22291:622::o;22920:333::-;-1:-1;;;;;40262:54;;;;9865:37;;23239:2;23224:18;;11851:37;23075:2;23060:18;;23046:207::o;23260:653::-;23527:2;23541:47;;;37832:12;;23512:18;;;38635:19;;;23260:653;;38684:4;;38675:14;;;;37522;;;23260:653;10332:251;10357:6;10354:1;10351:13;10332:251;;;10418:13;;39549;39542:21;11623:34;;9419:14;;;;38369;;;;10379:1;10372:9;10332:251;;;10336:14;;;23752:9;23746:4;23742:20;38684:4;23726:9;23722:18;23715:48;23777:126;10860:5;37832:12;10879:95;10967:6;10962:3;10879:95;:::i;:::-;10872:102;;;;;38684:4;11031:6;11027:17;11022:3;11018:27;38684:4;11125:5;37522:14;-1:-1;11164:357;11189:6;11186:1;11183:13;11164:357;;;11251:9;11245:4;11241:20;11236:3;11229:33;9567:64;9627:3;11296:6;11290:13;9567:64;:::i;:::-;11500:14;;;;11310:90;-1:-1;38369:14;;;;10379:1;11204:9;11164:357;;;-1:-1;23769:134;;23498:415;-1:-1;;;;;;;;;23498:415::o;24715:310::-;;24862:2;24883:17;24876:47;24937:78;24862:2;24851:9;24847:18;25001:6;24937:78;:::i;25032:416::-;25232:2;25246:47;;;14286:2;25217:18;;;38635:19;-1:-1;;;38675:14;;;14302:44;14365:12;;;25203:245::o;25455:416::-;25655:2;25669:47;;;14616:2;25640:18;;;38635:19;-1:-1;;;38675:14;;;14632:34;14685:12;;;25626:245::o;25878:416::-;26078:2;26092:47;;;14936:2;26063:18;;;38635:19;14972:30;38675:14;;;14952:51;15022:12;;;26049:245::o;26301:416::-;26501:2;26515:47;;;15273:2;26486:18;;;38635:19;15309:34;38675:14;;;15289:55;-1:-1;;;15364:12;;;15357:25;15401:12;;;26472:245::o;26724:416::-;26924:2;26938:47;;;15652:2;26909:18;;;38635:19;-1:-1;;;38675:14;;;15668:44;15731:12;;;26895:245::o;27147:416::-;27347:2;27361:47;;;15982:2;27332:18;;;38635:19;16018:34;38675:14;;;15998:55;-1:-1;;;16073:12;;;16066:33;16118:12;;;27318:245::o;27570:416::-;27770:2;27784:47;;;16369:2;27755:18;;;38635:19;16405:30;38675:14;;;16385:51;16455:12;;;27741:245::o;27993:416::-;28193:2;28207:47;;;16706:2;28178:18;;;38635:19;16742:26;38675:14;;;16722:47;16788:12;;;28164:245::o;28416:416::-;28616:2;28630:47;;;28601:18;;;38635:19;17075:34;38675:14;;;17055:55;17129:12;;;28587:245::o;28839:416::-;29039:2;29053:47;;;29024:18;;;38635:19;17416:34;38675:14;;;17396:55;17470:12;;;29010:245::o;29262:416::-;29462:2;29476:47;;;17721:2;29447:18;;;38635:19;17757:29;38675:14;;;17737:50;17806:12;;;29433:245::o;29685:416::-;29885:2;29899:47;;;18057:2;29870:18;;;38635:19;18093:31;38675:14;;;18073:52;18144:12;;;29856:245::o;30108:416::-;30308:2;30322:47;;;18395:2;30293:18;;;38635:19;18431:34;38675:14;;;18411:55;-1:-1;;;18486:12;;;18479:28;18526:12;;;30279:245::o;30531:416::-;30731:2;30745:47;;;30716:18;;;38635:19;18813:34;38675:14;;;18793:55;18867:12;;;30702:245::o;30954:416::-;31154:2;31168:47;;;19118:2;31139:18;;;38635:19;19154:26;38675:14;;;19134:47;19200:12;;;31125:245::o;31377:326::-;19512:23;;-1:-1;;;;;40142:46;20013:37;;19693:4;19682:16;;;19676:23;-1:-1;;;;;40468:30;;;19751:14;;;20494:36;;;;19851:4;19840:16;;;19834:23;40468:30;19909:14;;;20494:36;;;;31556:2;31541:18;;31527:176::o;31710:436::-;-1:-1;;;;;40142:46;;;;20013:37;;-1:-1;;;;;40468:30;;;32051:2;32036:18;;20494:36;40468:30;32132:2;32117:18;;20494:36;31889:2;31874:18;;31860:286::o;32153:222::-;11851:37;;;32280:2;32265:18;;32251:124::o;32382:716::-;11851:37;;;-1:-1;;;;;40262:54;;;32818:2;32803:18;;9724:58;40262:54;;;;32901:2;32886:18;;9865:37;32992:2;32977:18;;13637:58;;;;33083:3;33068:19;;13637:58;32645:3;32630:19;;32616:482::o;35194:321::-;11851:37;;;39549:13;39542:21;35501:2;35486:18;;11623:34;35343:2;35328:18;;35314:201::o;35522:329::-;11851:37;;;35837:2;35822:18;;11851:37;35675:2;35660:18;;35646:205::o;35858:440::-;-1:-1;;;;;40468:30;;;;20494:36;;36201:2;36186:18;;11851:37;;;;-1:-1;;;;;40142:46;36284:2;36269:18;;20253:50;36039:2;36024:18;;36010:288::o;36305:506::-;;;36440:11;36427:25;36491:48;;36515:8;36499:14;36495:29;36491:48;36471:18;36467:73;36457:2;;-1:-1;;36544:12;36457:2;36571:33;;36625:18;;;-1:-1;;;;;;36652:30;;36649:2;;;-1:-1;;36685:12;36649:2;36530:4;36713:13;;-1:-1;36499:14;36745:38;;;36735:49;;36732:2;;;36797:1;;36787:12;42261:268;42326:1;42333:101;42347:6;42344:1;42341:13;42333:101;;;42414:11;;;42408:18;42395:11;;;42388:39;42369:2;42362:10;42333:101;;;42449:6;42446:1;42443:13;42440:2;;;-1:-1;;42326:1;42496:16;;42489:27;42310:219::o;42642:117::-;-1:-1;;;;;40262:54;;42701:35;;42691:2;;42750:1;;42740:12;42691:2;42685:74;:::o;42766:111::-;42847:5;39549:13;39542:21;42825:5;42822:32;42812:2;;42868:1;;42858:12
Metadata Hash
e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c8
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.