| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {MonLock} from "./MonLock.sol";
/// @notice MonLock implementation for TransparentUpgradeableProxy (no UUPS bytecode overhead).
contract MonLockProxyInit is MonLock {
bool private _initialized;
constructor(address positionManager_)
MonLock(positionManager_, address(0xdead), address(0xdead), 365 days)
{}
function initialize(address defaultBeneficiary_, address owner_, uint64 defaultLockDuration_) external {
require(!_initialized, "initialized");
if (defaultBeneficiary_ == address(0) || owner_ == address(0)) revert ZeroAddress();
if (defaultLockDuration_ == 0) revert ZeroDuration();
if (defaultLockDuration_ < MIN_LOCK_DURATION) revert DurationTooShort();
_initialized = true;
defaultBeneficiary = defaultBeneficiary_;
owner = owner_;
defaultLockDuration = defaultLockDuration_;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "positionManager_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyFinalized",
"type": "error",
"inputs": []
},
{
"name": "AlreadyLocked",
"type": "error",
"inputs": []
},
{
"name": "AlreadyWithdrawn",
"type": "error",
"inputs": []
},
{
"name": "BadBps",
"type": "error",
"inputs": []
},
{
"name": "DurationTooShort",
"type": "error",
"inputs": []
},
{
"name": "MustExtend",
"type": "error",
"inputs": []
},
{
"name": "NotBeneficiary",
"type": "error",
"inputs": []
},
{
"name": "NotDexSeedLock",
"type": "error",
"inputs": []
},
{
"name": "NotFactory",
"type": "error",
"inputs": []
},
{
"name": "NotHeld",
"type": "error",
"inputs": []
},
{
"name": "NotLocked",
"type": "error",
"inputs": []
},
{
"name": "NotOwner",
"type": "error",
"inputs": []
},
{
"name": "NotPositionManager",
"type": "error",
"inputs": []
},
{
"name": "NotStamper",
"type": "error",
"inputs": []
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "StillLocked",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "ZeroDuration",
"type": "error",
"inputs": []
},
{
"name": "DefaultsChanged",
"type": "event",
"inputs": [
{
"name": "beneficiary",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "duration",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "DexSeedFinalized",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "unlockTime",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "DexSeedLocked",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "creator",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"indexed": false,
"internalType": "uint16"
},
{
"name": "stakerBps",
"type": "uint16",
"indexed": false,
"internalType": "uint16"
}
],
"anonymous": false
},
{
"name": "FactoryChanged",
"type": "event",
"inputs": [
{
"name": "factory",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FeesCollected",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount0",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amount1",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FeesSplit",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "backingWallet",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "backing0",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "backing1",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LaunchFeesBurned",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LockBeneficiaryChanged",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "next",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "LockExtended",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "newUnlockTime",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "OwnerChanged",
"type": "event",
"inputs": [
{
"name": "previous",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "next",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PositionLocked",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "beneficiary",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "unlockTime",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "PositionLockedMeme",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "stakerWallet",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PositionLockedWithBacking",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "backingWallet",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"indexed": false,
"internalType": "uint16"
}
],
"anonymous": false
},
{
"name": "PositionLockedWithCreator",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "creatorWallet",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"indexed": false,
"internalType": "uint16"
}
],
"anonymous": false
},
{
"name": "PositionLockedWithLaunch",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "backingWallet",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"indexed": false,
"internalType": "uint16"
}
],
"anonymous": false
},
{
"name": "PositionWithdrawn",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "StamperChanged",
"type": "event",
"inputs": [
{
"name": "stamper",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "MIN_LOCK_DURATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"name": "POSITION_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract INonfungiblePositionManager"
}
],
"stateMutability": "view"
},
{
"name": "allLockedPositions",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"name": "collectFees",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amount0",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amount1",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "collectFeesBatch",
"type": "function",
"inputs": [
{
"name": "tokenIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "creatorSplits",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "wallet",
"type": "address",
"internalType": "address"
},
{
"name": "bps",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "defaultBeneficiary",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "defaultLockDuration",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"name": "dexSeedPending",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "extendLock",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "newUnlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "finalizeDexSeedLock",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "increaseLiquidity",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amount0Desired",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amount1Desired",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "liquidity",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "amount0",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amount1",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "defaultBeneficiary_",
"type": "address",
"internalType": "address"
},
{
"name": "owner_",
"type": "address",
"internalType": "address"
},
{
"name": "defaultLockDuration_",
"type": "uint64",
"internalType": "uint64"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "launchTokens",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "lockDexSeedPosition",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{
"name": "creatorWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakerWallet",
"type": "address",
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "stakerBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockDexSeedPositionBacked",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{
"name": "backingWallet",
"type": "address",
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "stakerWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakerBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "creatorWallet",
"type": "address",
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockPosition",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockPositionMeme",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{
"name": "stakerWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakerBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "creatorWallet",
"type": "address",
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockPositionWithBacking",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "backingWallet",
"type": "address",
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockPositionWithSplit",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "backingWallet",
"type": "address",
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "stakerWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakerBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockPositionWithSplitLaunch",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "launchToken",
"type": "address",
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{
"name": "backingWallet",
"type": "address",
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "stakerWallet",
"type": "address",
"internalType": "address"
},
{
"name": "stakerBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "creatorWallet",
"type": "address",
"internalType": "address"
},
{
"name": "creatorBps",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "nonpayable"
},
{
"name": "lockedCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "lockedPositions",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "locks",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "beneficiary",
"type": "address",
"internalType": "address"
},
{
"name": "unlockTime",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "withdrawn",
"type": "bool",
"internalType": "bool"
},
{
"name": "backingWallet",
"type": "address",
"internalType": "address"
},
{
"name": "backingBps",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "memeMode",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "onERC721Received",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "quoteTokens",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "seen",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "setDefaults",
"type": "function",
"inputs": [
{
"name": "beneficiary_",
"type": "address",
"internalType": "address"
},
{
"name": "duration_",
"type": "uint64",
"internalType": "uint64"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setFactory",
"type": "function",
"inputs": [
{
"name": "f",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setLockBeneficiary",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "next",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setStamper",
"type": "function",
"inputs": [
{
"name": "s",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "stakerSplits",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "wallet",
"type": "address",
"internalType": "address"
},
{
"name": "bps",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "stamper",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "next",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "withdraw",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60a03461015257601f613b2238819003918201601f19168301916001600160401b038311848410176101565780849260209460405283398101031261015257516001600160a01b038116908190036101525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00558015801561014b575b8015610144575b61013557608052600180545f80546001600160a01b03191661dead1790556001600160e01b0319167701e13380000000000000000000000000000000000000dead1790556040516139b7908161016b82396080518181816103d1015281816107ea01528181610a8c0152818161112a01528181611768015281816119bc01528181611d6901528181611e7b015281816120ee01528181612443015281816124d401528181612f8401526131b60152f35b63d92e233d60e01b5f5260045ffd5b505f610085565b505f61007e565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806301a5e163146127aa578063086c4f04146126d65780630d4ca4cd146125a85780630fd6699b1461257c578063150b7a02146124725780631bea83fe1461242e5780631e742283146120265780631e8af22214611fa85780632c9115c714611f765780632e1a7d4d14611df8578063318cf52014611d235780633b39944f14611cf45780634870c811146118d5578063530c3eb71461189457806353f42418146116b757806354ab58af1461168e5780635bb478081461160e5780635ded5b1a146115df5780636d61d2b6146115b65780637879ec311461147b57806378b4330f1461145d5780637960c2ac146110455780637ab6489d14610f5e5780637f501d0414610f2f5780638da5cb5b14610f085780639ef282b914610eea578063a0eabe2a14610e47578063a9b389f514610e14578063b17acdcd14610dd0578063c45a015514610da7578063cbdc565b14610d62578063ceb2e85214610cc9578063dc7c146b14610a06578063e028ea5614610726578063e115bc5c1461035e578063f2fde38b146102da578063f4dadc611461026c5763fe53468d146101c7575061000e565b34610269576040366003190112610269576004356101e361281b565b8183526003602052604083208054909291906001600160a01b0316330361025a576001600160a01b031691821561024b5780546001600160a01b031916831790557fb0a1743e886734bc365df0c4f906a19d0049d05d34224ed6560f7aca700668198380a380f35b63d92e233d60e01b8452600484fd5b63644d871f60e01b8452600484fd5b80fd5b503461026957602036600319011261026957604060a091600435815260036020522061ffff6001825492015460ff60405193600180871b038116855260018060401b0381871c16602086015260e01c1615156040840152600180851b0381166060840152831c166080820152f35b5034610269576020366003190112610269576102f4612805565b81546001600160a01b038116913383900361034f576001600160a01b031691821561024b5782907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8580a36001600160a01b03191617815580f35b6330cd747160e01b8452600484fd5b5034610269576060366003190112610269576004356024359160443590610383612e6e565b600c546001600160a01b0316330361071757828152600360205260408120546001600160a01b038116156107085760e01c60ff166106f9576040516331a9108f60e11b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290602081602481875afa9081156106a15783916106bb575b50306001600160a01b03909116036106ac5760405163133f757160e31b8152600481018590529061018082602481875afa9182156106a15783908493610662575b5086610648575b8161062e575b6001600160a01b031691610475878685613379565b6001600160a01b03169161048a828685613379565b6040519560c087016001600160401b0381118882101761061a576040528652602086018781526040870183815260608801868152608089019187835260a08a01934285526040519a63219f5d1760e01b8c525160048c01525160248b01525160448a01525160648901525160848801525160a487015260608660c48187895af194851561060f5784968580976105a7575b5050856105418660609a61053c856105366105479789613321565b89613321565b612c07565b93612c07565b9180610595575b505080610583575b505060015f80516020613957833981519152556040519260018060801b0316835260208301526040820152f35b61058e91339061341b565b5f80610556565b6105a091339061341b565b5f8061054e565b9294965096509193506060863d606011610607575b816105c960609383612a31565b8101031261026957509161053c9391610547606097946105416105eb89612b48565b604060208b01519a0151909997889199509a505081925061051b565b3d91506105bc565b6040513d86823e3d90fd5b634e487b7160e01b86526041600452602486fd5b6106438230336001600160a01b03871661328f565b610460565b61065d8730336001600160a01b03851661328f565b61045a565b90506106879192506101803d811161069a575b61067f8183612a31565b810190612b5c565b505050505050505093925090505f610453565b503d610675565b6040513d85823e3d90fd5b63845eadf160e01b8252600482fd5b90506020813d6020116106f1575b816106d660209383612a31565b810103126106ed576106e790612a54565b5f610412565b8280fd5b3d91506106c9565b636507689f60e01b8152600490fd5b631834e26560e01b8252600482fd5b631966391b60e11b8152600490fd5b503461026957610735366128a6565b94919293989660018060a09a98939a1b036002541633036109f7576001600160a01b031692831580156109e6575b6109a65761ffff8a1661ffff82169061271061078e61ffff61078585856129bf565b9a16809a6129bf565b116109d7571515806109c6575b610986571515806109b5575b6109a657851515948580610995575b61098657878952600860205260ff60408a205416610977576040516331a9108f60e11b8152600481018990526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561096c578a9161092e575b50306001600160a01b039091160361091f57925f805160206139778339815191529260406108578d948b9760209f868a612d04565b9b6001600160a01b03169a8b6108f3575b86815260058e5281812080546001600160a01b03199081168a1790915587825260068f5291902080549091166001600160a01b03929092169190911790556040519182916108b791908361294b565b0390a36108d4575b50506040516001600160401b03909216825250f35b845f8051602061387783398151915291604051908152a35f80806108bf565b61091a8251610901816129fb565b8d81528f8c908201528883528f600a9052838320612aa4565b610868565b63845eadf160e01b8952600489fd5b90506020813d602011610964575b8161094960209383612a31565b810103126109605761095a90612a54565b5f610822565b8980fd5b3d915061093c565b6040513d8c823e3d90fd5b6317c3335f60e21b8952600489fd5b63d92e233d60e01b8952600489fd5b506001600160a01b038a16156107b6565b63d92e233d60e01b8852600488fd5b506001600160a01b038516156107a7565b506001600160a01b0384161561079b565b636e549e5960e01b8a5260048afd5b506001600160a01b03821615610763565b630624275560e11b8852600488fd5b50346102695760603660031901126102695760043590610a2461281b565b90610a2d612884565b6002546001600160a01b03163303610cba5761ffff16926127108411610cab57831515938480610c9a575b610c8b57818352600860205260ff604084205416610c7c576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561060f578491610c3e575b50306001600160a01b0390911603610c2f5760015492610af46001600160401b0360a086901c8116904216612992565b9460405194610b02866129cc565b6001600160a01b0390811686526001600160401b0396871660208088018281526040808a0187815295851660608b0181815260808c018a81528b8a5260039095529188209a518b546001600160a01b0319169616959095178a55905192999398909491939092610b73911683612969565b511515610b809082612a68565b915160019290920180546001600160a01b0319166001600160a01b039390931692909217825551610bb79161ffff90911690612a85565b82815260086020526040902060ff198154166001179055610bd782612ad8565b600160a01b60019003600154168260405186815260205f805160206138d783398151915291a3602094610c10575b505050604051908152f35b845f8051602061389783398151915291604051908152a35f8080610c05565b63845eadf160e01b8352600483fd5b90506020813d602011610c74575b81610c5960209383612a31565b81010312610c7057610c6a90612a54565b5f610ac4565b8380fd5b3d9150610c4c565b6317c3335f60e21b8352600483fd5b63d92e233d60e01b8352600483fd5b506001600160a01b03841615610a58565b636e549e5960e01b8252600482fd5b630624275560e11b8252600482fd5b5034610269576020366003190112610269576004356001600160401b038111610d5e5736602382011215610d5e576004810135906001600160401b0382116106ed573660248360051b830101116106ed57610d22612e6e565b825b82811015610d4957600190610d4160248260051b85010135612eff565b505001610d24565b8360015f805160206139578339815191525580f35b5080fd5b5034610269576020366003190112610269576040610da3916004358152600a6020522054604051918161ffff849360a01c169060018060a01b03168361294b565b0390f35b5034610269578060031936011261026957600c546040516001600160a01b039091168152602090f35b503461026957602036600319011261026957610dea612e6e565b6040610df7600435612eff565b60015f805160206139578339815191525582519182526020820152f35b503461026957602036600319011261026957602090600435815260058252604060018060a01b0391205416604051908152f35b503461026957806003193601126102695760405160098054808352908352602082019081905f805160206138f783398151915290855b818110610ed45750505082610e93910383612a31565b604051928392602084019060208552518091526040840192915b818110610ebb575050500390f35b8251845285945060209384019390920191600101610ead565b8254845260209093019260019283019201610e7d565b50346102695780600319360112610269576020600954604051908152f35b5034610269578060031936011261026957546040516001600160a01b039091168152602090f35b50346102695760203660031901126102695760ff60406020926004358152600884522054166040519015158152f35b503461026957604036600319011261026957600435610f7b61285d565b818352600360205260408320805491906001600160a01b03831633036110365760ff8360e01c1661102757838552600b60205260ff604086205416611018576001600160401b038281169360a01c168311156110095791610fff6020927f7189acbbb826f9a514e1d187ea8f1e3eff0c63b70f069ddd1a717124845ca78494612969565b604051908152a280f35b63255323ab60e11b8552600485fd5b636100d92960e11b8552600485fd5b636507689f60e01b8552600485fd5b63644d871f60e01b8552600485fd5b50346102695760e0366003190112610269576004359061106361281b565b9161106c612831565b90611075612847565b9261107e612895565b60a4356001600160a01b0381169491908590036106ed5761109d612873565b6002549097906001600160a01b0316330361144e576001600160a01b0316908115801561143d575b801561142c575b61024b5761ffff8091169716916127106110e6848a6129bf565b1161141d57821515918280611415575b61140657858552600860205260ff6040862054166113f7576040516331a9108f60e11b8152600481018790526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156113ec5786916113ae575b50306001600160a01b039091160361139f57600154976111926001600160401b0360a08b901c8116904216612992565b98604051906111a0826129cc565b6001600160a01b0390811682526001600160401b039a8b16602080840182815260408086018c8152606087018d8152608088018e81528f8f526003909552918d20965187546001600160a01b03191696169590951786559051929d90949193919261120c911683612969565b5115156112199082612a68565b915160019290920180546001600160a01b0319166001600160a01b0393909316929092178255516112509161ffff90911690612a85565b6020996001600160a01b0391909116929083611372575b5086865260088a5260408620805460ff1916600117905561128787612ad8565b60018060a01b0360015416875f805160206138d78339815191528c6040518d8152a387611346575b86865260058a52604080872080546001600160a01b0319908116851790915588885260068c5281882080549091166001600160a01b03939093169290921790915586865260078a52808620805460ff19166001179055519486905f805160206139378339815191529080a4611329575b8585604051908152f35b8186915f805160206138778339815191529352a35f80808061131f565b61136d604051611355816129fb565b898152868c820152888852600a8c5260408820612aa4565b6112af565b60405161139991611382826129fb565b8582528c82015288885260048c5260408820612aa4565b5f611267565b63845eadf160e01b8552600485fd5b90506020813d6020116113e4575b816113c960209383612a31565b810103126113e0576113da90612a54565b5f611162565b8580fd5b3d91506113bc565b6040513d88823e3d90fd5b6317c3335f60e21b8552600485fd5b63d92e233d60e01b8552600485fd5b5086156110f6565b636e549e5960e01b8452600484fd5b506001600160a01b038716156110cc565b506001600160a01b038316156110c5565b630624275560e11b8452600484fd5b5034610269578060031936011261026957602060405162278d008152f35b503461026957606036600319011261026957611495612805565b61149d61281b565b906044356001600160401b038116918282036115b257600c549060ff8260a01c1661157f576001600160a01b0316928315801561156e575b61155f5780156115505762278d00116115415760ff60a01b1916600160a01b17600c556001805485546001600160a01b0319166001600160a01b039095169490941785556001600160e01b03199093169190911760a09190911b600160a01b600160e01b031617905580f35b6325c3636760e01b8552600485fd5b63346ab43760e11b8652600486fd5b63d92e233d60e01b8652600486fd5b506001600160a01b038516156114d5565b60405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b6044820152606490fd5b8480fd5b50346102695780600319360112610269576002546040516001600160a01b039091168152602090f35b50346102695760203660031901126102695760ff60406020926004358152600784522054166040519015158152f35b503461026957602036600319011261026957611628612805565b81546001600160a01b0316330361167f57600c80546001600160a01b0319166001600160a01b039290921691821790557f7ead54cd1fd7e5ddea18605dec62ecb6a27d1f68bee1054cbf93b7abb4e1dc6b8280a280f35b6330cd747160e01b8252600482fd5b50346102695780600319360112610269576001546040516001600160a01b039091168152602090f35b50346102695760a0366003190112610269576004356116d461281b565b6116dc612884565b906116e5612847565b926116ee612895565b6002549095906001600160a01b031633036118855761ffff841661ffff87169061271061171b83836129bf565b1161187657151580611865575b61185657151580611845575b61183657818152600860205260ff604082205416611827576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561181c5782916117e2575b50306001600160a01b03909116036117d35760206117c18787878787612d04565b6040516001600160401b039091168152f35b63845eadf160e01b8152600490fd5b90506020813d602011611814575b816117fd60209383612a31565b81010312610d5e5761180e90612a54565b5f6117a0565b3d91506117f0565b6040513d84823e3d90fd5b6317c3335f60e21b8152600490fd5b63d92e233d60e01b8152600490fd5b506001600160a01b03851615611734565b63d92e233d60e01b8252600482fd5b506001600160a01b03841615611728565b636e549e5960e01b8352600483fd5b630624275560e11b8152600490fd5b5034610269576020366003190112610269576040610da391600435815260046020522054604051918161ffff849360a01c169060018060a01b03168361294b565b50346102695760e036600319011261026957600435906118f361281b565b916118fc612831565b90611905612847565b916084359460018060a01b0386168096036115b25760a43561ffff811694858203611cf057611932612873565b6002549093906001600160a01b031633036109f7576001600160a01b03169384158015611cdf575b8015611cd7575b6109a65761ffff841698612710611978898c6129bf565b11611cc857871515998a80611cb7575b611ca857878a52600860205260ff60408b205416611c99576040516331a9108f60e11b8152600481018990526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611c8e578b91611c50575b50306001600160a01b0390911603611c4157611bdf60209b968a98968a965f80516020613997833981519152965f80516020613937833981519152968f96611b1190611aea8961ffff8e6001808060a01b0381541660405190611a56826129cc565b81526020611ac0908201868152611ab7604084019188835260406060860199808b526080870198818a5281526020600390522094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b51151582612a68565b9351930180546001600160a01b0319166001600160a01b0394909416939093178355511690612a85565b60405190611af7826129fb565b83825260208201528b895260206004905260408920612aa4565b6001600160a01b0383169e8f80611c10575b505089875260056020908152604080892080546001600160a01b03199081168f179091558c8a5260068352818a2080549091166001600160a01b0386161790558b895260078252808920805460ff1990811660019081179092558d8b52600b8452828b2080548216831790558d8b5260089093529089208054909216179055611bab8a612ad8565b60018060a01b036001541660205f805160206138d78339815191528c916040518b8152a38a8a60405199898b9aa485612b0e565b0390a3611bf157505050604051908152f35b845f8051602061387783398151915291604051908152a35f8080610c05565b611c3a9160405191611c21836129fb565b825260208201528b89526020600a905260408920612aa4565b8c8f611b23565b63845eadf160e01b8a5260048afd5b90506020813d602011611c86575b81611c6b60209383612a31565b81010312611c8257611c7c90612a54565b5f6119f4565b8a80fd5b3d9150611c5e565b6040513d8d823e3d90fd5b6317c3335f60e21b8a5260048afd5b63d92e233d60e01b8a5260048afd5b506001600160a01b03841615611988565b636e549e5960e01b8952600489fd5b508815611961565b506001600160a01b0381161561195a565b8680fd5b50346102695760203660031901126102695760ff60406020926004358152600b84522054166040519015158152f35b50346102695760203660031901126102695760043590818152600860205260ff604082205416611827576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561181c578291611dbe575b50306001600160a01b03909116036117d35760206117c183612c14565b90506020813d602011611df0575b81611dd960209383612a31565b81010312610d5e57611dea90612a54565b5f611da1565b3d9150611dcc565b5034611f45576020366003190112611f4557600435611e15612e6e565b5f81815260036020526040902080546001600160a01b0381169033829003611f675760ff8160e01c16611f5857835f52600b60205260ff60405f205416611f495760a081901c6001600160401b03164210611f495760ff60e01b1916600160e01b1782557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15611f45575f916064839260405194859384926323b872dd60e01b845230600485015260248401528860448401525af18015611f3a57611f25575b50546001600160a01b0316907f0f6a939a3e7f9bc7fab8a6b3a32be849d45e262d8c8188c4e494c8c5b480121c8380a360015f805160206139578339815191525580f35b611f329193505f90612a31565b5f915f611ee1565b6040513d5f823e3d90fd5b5f80fd5b636100d92960e11b5f5260045ffd5b636507689f60e01b5f5260045ffd5b63644d871f60e01b5f5260045ffd5b34611f45576020366003190112611f45576004355f526006602052602060018060a01b0360405f205416604051908152f35b34611f45576020366003190112611f4557611fc1612805565b5f546001600160a01b0316330361201757600280546001600160a01b0319166001600160a01b039290921691821790557f26cb9aa323ee00bc6f4a7cdda5c98e5b65986a229fd0e98bc323b3e532d750e45f80a2005b6330cd747160e01b5f5260045ffd5b34611f4557612034366128a6565b6002549498979096929592946001600160a01b0316330361241f576001600160a01b0316938415801561240e575b6123bd5761ffff891661ffff87169661271061208c6120818a856129bf565b61ffff8c16906129bf565b116123ff57811515806123ee575b6123bd57871515806123dd575b6123bd5761ffff891615159788806123cc575b6123bd578a5f52600860205260ff60405f2054166123ae576040516331a9108f60e11b8152600481018c90526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611f3a575f91612374575b50306001600160a01b0390911603612365578a966121c28761ffff8d9660018c611ac0828060a01b038354169160405192612160846129cc565b8352611ab7602084015f815260408501925f84526060860199878060a01b03168a52608086019788525f52600360205260405f2094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b6001600160a01b031680612335575b50508686600160a01b600190038616809d811515986122ca965f80516020613977833981519152935f805160206139978339815191529b612300575b50505f84815260056020908152604080832080546001600160a01b03199081168a179091556006835281842080549091166001600160a01b038d1617905560078252808320805460ff19908116909155600b835281842080548216600190811790915560089093529220805490921617905561228884612ad8565b60018060a01b0360015416845f805160206138d783398151915260206040515f8152a36122ba6040519283928361294b565b0390a38860405194859485612b0e565b0390a36122dc575b60206040515f8152f35b60205f805160206138778339815191529161ffff60405191168152a38080806122d2565b61ffff61232d9260405192612314846129fb565b8352166020820152855f52600a60205260405f20612aa4565b8f8e9061220d565b61235e9160405191612346836129fb565b82526020820152875f52600460205260405f20612aa4565b8b806121d1565b63845eadf160e01b5f5260045ffd5b90506020813d6020116123a6575b8161238f60209383612a31565b81010312611f45576123a090612a54565b8d612126565b3d9150612382565b6317c3335f60e21b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b506001600160a01b038516156120ba565b506001600160a01b038616156120a7565b506001600160a01b0385161561209a565b636e549e5960e01b5f5260045ffd5b506001600160a01b03811615612062565b630624275560e11b5f5260045ffd5b34611f45575f366003190112611f45576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34611f45576080366003190112611f455761248b612805565b5061249461281b565b506044356064356001600160401b038111611f455736602382011215611f455760048101356001600160401b038111611f455736910160240111611f45577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361256d57805f52600860205260ff60405f20541680612554575b611f5857805f52600860205260ff60405f20541615612544575b604051630a85bd0160e11b8152602090f35b61254d90612c14565b5080612532565b50805f52600360205260ff60405f205460e01c16612518565b63041fb8cb60e31b5f5260045ffd5b34611f45575f366003190112611f455760015460405160a09190911c6001600160401b03168152602090f35b34611f45576020366003190112611f4557600c54600435906001600160a01b031633036126c7575f8181526003602052604090208054916001600160a01b038316156126b85760ff8360e01c16611f5857805f52600b60205260ff60405f20541615612688576001546020935061263a906126339060a01c6001600160401b03908116904216612992565b8093612969565b805f52600b835260405f2060ff1981541690557f4494ad59b3c9ddbc362fd2ee88f502bf22490bc517187e50480a4b721a70aac2836040519360018060401b031693848152a2604051908152f35b60a083901c6001600160401b03166126a95763415d815f60e01b5f5260045ffd5b63475a253560e01b5f5260045ffd5b631834e26560e01b5f5260045ffd5b631966391b60e11b5f5260045ffd5b34611f45576040366003190112611f45576126ef612805565b6126f761285d565b5f549091906001600160a01b03163303612017576001600160a01b03169081156123bd576001600160401b03811690811561279b5762278d00821061278c57600180546001600160e01b031916841760a09290921b600160a01b600160e01b03169190911790556040519081527f171606ac517d43591c851d196b454545818cf47130db3c64152d1bfc1ec0e9c690602090a2005b6325c3636760e01b5f5260045ffd5b63346ab43760e11b5f5260045ffd5b34611f45576020366003190112611f4557600435600954811015611f45576009548110156127f15760095f525f805160206138f78339815191520154604051908152602090f35b634e487b7160e01b5f52603260045260245ffd5b600435906001600160a01b0382168203611f4557565b602435906001600160a01b0382168203611f4557565b604435906001600160a01b0382168203611f4557565b606435906001600160a01b0382168203611f4557565b602435906001600160401b0382168203611f4557565b60c4359061ffff82168203611f4557565b6044359061ffff82168203611f4557565b6084359061ffff82168203611f4557565b610120906003190112611f4557600435906024356001600160a01b0381168103611f4557906044356001600160a01b0381168103611f4557906064356001600160a01b0381168103611f45579060843561ffff81168103611f45579060a4356001600160a01b0381168103611f45579060c43561ffff81168103611f45579060e4356001600160a01b0381168103611f4557906101043561ffff81168103611f455790565b6001600160a01b03909116815261ffff909116602082015260400190565b8054600160a01b600160e01b03191660a09290921b600160a01b600160e01b0316919091179055565b6001600160401b0391821690821601919082116129ab57565b634e487b7160e01b5f52601160045260245ffd5b919082018092116129ab57565b60a081019081106001600160401b038211176129e757604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176129e757604052565b608081019081106001600160401b038211176129e757604052565b601f909101601f19168101906001600160401b038211908210176129e757604052565b51906001600160a01b0382168203611f4557565b805460ff60e01b191691151560e01b60ff60e01b16919091179055565b805461ffff60a01b191660a09290921b61ffff60a01b16919091179055565b815181546001600160a01b0319166001600160a01b03909116178155602090910151612ad69161ffff90911690612a85565b565b600954600160401b8110156129e757600181016009556009548110156127f15760095f525f805160206138f78339815191520155565b6001600160a01b0391821681529116602082015261ffff91821660408201529116606082015260800190565b51908160020b8203611f4557565b51906001600160801b0382168203611f4557565b919082610180910312611f455781516001600160601b0381168103611f455791612b8860208201612a54565b91612b9560408301612a54565b91612ba260608201612a54565b91608082015162ffffff81168103611f455791612bc160a08201612b3a565b91612bce60c08301612b3a565b91612bdb60e08201612b48565b916101008201519161012081015191612c04610160612bfd6101408501612b48565b9301612b48565b90565b919082039182116129ab57565b600154909190612c346001600160401b0360a083901c8116904216612992565b9260405191612c42836129cc565b6001600160a01b0390811683526001600160401b0385811660208086018281525f604080890182815260608a0183815260808b018481528a8552600390965291909220985189546001600160a01b031916971696909617885590519296612cbc959461ffff94600193611ac0929091611ab7911684612969565b805f52600860205260405f20600160ff19825416179055612cdc81612ad8565b6001546040519283526001600160a01b0316915f805160206138d783398151915290602090a3565b60015491959492939092839291612dbd612d2e6001600160401b0360a086901c8116904216612992565b9860405194612d3c866129cc565b60018060a01b0316855261ffff60208601986001808060401b038d1697888c52611ac0604082015f8152611ab76060840197858060a01b03169e8f8952876080860197169d8e88525f52600360205260405f2094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b6001600160a01b031680612e3a575b5050825f52600860205260405f20600160ff19825416179055612dee83612ad8565b6001546040519182526001600160a01b03169083905f805160206138d783398151915290602090a380612e2057505050565b60205f8051602061389783398151915291604051908152a3565b61ffff612e679260405192612e4e846129fb565b8352166020820152845f52600460205260405f20612aa4565b5f80612dcc565b60025f805160206139578339815191525414612e975760025f8051602061395783398151915255565b633ee5aeb560e01b5f5260045ffd5b9190826040910312611f45576020825192015190565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f81815260036020526040902080549092906001600160a01b0381169081156126b85760e01c60ff16611f58575f838152600460209081526040808320600a835281842060059093529220549194909290916001600160a01b031615801590613279575b8015613265575b8015613254575b8015613243575b156131645750604080517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031696612ff3929091612fbc81612a16565b8481523060208201526001600160801b038282018190526060820152815163fc6f786560e01b815293849182919060048301612ebc565b03815f8b5af18015611f3a576024945f935f92613130575b508197610180859a6040519889809263133f757160e31b82528a60048301525afa968715611f3a575f905f986130dc575b50604061306e84848888613067829a998e9960019d8f5f805160206138b78339815191529b8d61345a565b9d8861345a565b96868060a01b038654169482519182526020820152a301549061ffff8260a01c1661309a575b50505050565b7f1f22046f9445af647a187962564ca3d89c6bd13cd8b459cdae0f6a280e7b8618916040918251958652602086015260018060a01b031693a35f808080613094565b849850829150948684899483809897996101803d8111613129575b6131018183612a31565b810161310c91612b5c565b50505050505050509f92509050965050509450505094929361303c565b503d6130f7565b909350613155915060403d60401161315d575b61314d8183612a31565b810190612ea6565b90925f61300b565b503d613143565b6131b1939450604080929350519061317b82612a16565b83825260208201526001600160801b038282018190526060820152815163fc6f786560e01b815293849182919060048301612ebc565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1938415611f3a575f925f9561321c575b5060018060a01b03905416905f805160206138b783398151915260408051858152876020820152a39190565b90945061323991925060403d60401161315d5761314d8183612a31565b919091935f6131f0565b5061ffff835460a01c161515612f78565b5061ffff855460a01c161515612f71565b5061ffff600187015460a01c161515612f6a565b50815f52600760205260ff60405f205416612f63565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615613300575b6040525f606052156132e05750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661331857823b15153d151616906132d1565b503d5f823e3d90fd5b9061332d5f828461357c565b15613336575050565b61334081836135c9565b15613358575f613350918361362d565b156132e05750565b50635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b919061338682828561357c565b1561339057505050565b61339a81846135c9565b156133aa5790613350918361362d565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b906040519063a9059cbb60e01b5f5261dead60045260245260205f60448180865af19060015f5114821615613403575b604052156132e05750565b90600181151661331857823b15153d151616906133f8565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f511482161561340357604052156132e05750565b949091948515613572575f818152600560209081526040808320546006909252909120546001600160a01b039081169116801515908161355f575b50613535578015159081613521575b506134ed57506001830154935490549254612c04956001600160a01b039182169561ffff60a087811c82169785169686821c8316968616959184901c909216939216919061367b565b9350505f80516020613917833981519152915060209060018060a01b03169361351681866133c8565b604051908152a35f90565b6001600160a01b038516141590505f6134a4565b509350505f80516020613917833981519152915060209060018060a01b03169361351681866133c8565b6001600160a01b0386161490505f613495565b5050505050505f90565b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f51148416156135b8575b50604052565b3d15903b151516909216915f6135b2565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f511484161561360b5750604052565b60018492941516613624573b15153d151616915f6135b2565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f511484161561360b5750604052565b818102929181159184041417156129ab57565b9690929897949895939195831561376c579061ffff86921661369d9085613668565b61271090049687809b61ffff166136b49087613668565b612710900461ffff8194166136c99088613668565b61271090049687926136da91612c07565b906136e491612c07565b906136ee91612c07565b9780613752575b50508781613740575b5050505080613726575b50508161371457505050565b612ad6926001600160a01b031661341b565b613739916001600160a01b03861661341b565b5f80613708565b61374993613779565b5f8381876136fe565b613765916001600160a01b038b1661341b565b5f806136f5565b505f985050505050505050565b92905f90831561386f57843b15613859576001600160a01b031693843b15611f4557604051632e1a7d4d60e01b8152600481018590525f81602481838a5af19081613844575b506137cf575050612ad69261341b565b81808086819460018060a01b03165af1903d1561383e573d906001600160401b03821161382a576040519161380e601f8201601f191660200184612a31565b825260203d92013e5b1561382157505050565b612ad69261341b565b634e487b7160e01b81526041600452602490fd5b50613817565b6138519193505f90612a31565b5f915f6137bf565b612ad69492506001600160a01b0316905061341b565b505050505056fef15ba8cde6f3a49465c8c04ccb4873b51a2ff98b473dda6b4f867885bf6c95a20af1f298af1d034902c9a0b9e671bcfdcf0af0393909b2fe51cf8dfd930a2ff41df95d0058852523ea13aa1809224af942bd446ce86d3e431bf193c2bec269f1d21fd17f74ac5cbbe5b8d7466148337a16ca89fd30045d1cea2448b0402e7df36e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af610756ffcab872280e918f7ad2bb56405987ae7b08fe6e99225e01c2a00bdb54d6c7b8fb596a930a91ee5b3bfaf61fcacf99aeef45c3aa57c685aa1dc9b310ac9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0029de68b8b1bd54db35aace7f11e0f9080caf24f25a4b8a8318980aa845380204b6a1388477cf9976b4b1c0e2ad16002bbd068acebfbef4b828fbf63d5641edac00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d3
0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806301a5e163146127aa578063086c4f04146126d65780630d4ca4cd146125a85780630fd6699b1461257c578063150b7a02146124725780631bea83fe1461242e5780631e742283146120265780631e8af22214611fa85780632c9115c714611f765780632e1a7d4d14611df8578063318cf52014611d235780633b39944f14611cf45780634870c811146118d5578063530c3eb71461189457806353f42418146116b757806354ab58af1461168e5780635bb478081461160e5780635ded5b1a146115df5780636d61d2b6146115b65780637879ec311461147b57806378b4330f1461145d5780637960c2ac146110455780637ab6489d14610f5e5780637f501d0414610f2f5780638da5cb5b14610f085780639ef282b914610eea578063a0eabe2a14610e47578063a9b389f514610e14578063b17acdcd14610dd0578063c45a015514610da7578063cbdc565b14610d62578063ceb2e85214610cc9578063dc7c146b14610a06578063e028ea5614610726578063e115bc5c1461035e578063f2fde38b146102da578063f4dadc611461026c5763fe53468d146101c7575061000e565b34610269576040366003190112610269576004356101e361281b565b8183526003602052604083208054909291906001600160a01b0316330361025a576001600160a01b031691821561024b5780546001600160a01b031916831790557fb0a1743e886734bc365df0c4f906a19d0049d05d34224ed6560f7aca700668198380a380f35b63d92e233d60e01b8452600484fd5b63644d871f60e01b8452600484fd5b80fd5b503461026957602036600319011261026957604060a091600435815260036020522061ffff6001825492015460ff60405193600180871b038116855260018060401b0381871c16602086015260e01c1615156040840152600180851b0381166060840152831c166080820152f35b5034610269576020366003190112610269576102f4612805565b81546001600160a01b038116913383900361034f576001600160a01b031691821561024b5782907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8580a36001600160a01b03191617815580f35b6330cd747160e01b8452600484fd5b5034610269576060366003190112610269576004356024359160443590610383612e6e565b600c546001600160a01b0316330361071757828152600360205260408120546001600160a01b038116156107085760e01c60ff166106f9576040516331a9108f60e11b8152600481018490527f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03169290602081602481875afa9081156106a15783916106bb575b50306001600160a01b03909116036106ac5760405163133f757160e31b8152600481018590529061018082602481875afa9182156106a15783908493610662575b5086610648575b8161062e575b6001600160a01b031691610475878685613379565b6001600160a01b03169161048a828685613379565b6040519560c087016001600160401b0381118882101761061a576040528652602086018781526040870183815260608801868152608089019187835260a08a01934285526040519a63219f5d1760e01b8c525160048c01525160248b01525160448a01525160648901525160848801525160a487015260608660c48187895af194851561060f5784968580976105a7575b5050856105418660609a61053c856105366105479789613321565b89613321565b612c07565b93612c07565b9180610595575b505080610583575b505060015f80516020613957833981519152556040519260018060801b0316835260208301526040820152f35b61058e91339061341b565b5f80610556565b6105a091339061341b565b5f8061054e565b9294965096509193506060863d606011610607575b816105c960609383612a31565b8101031261026957509161053c9391610547606097946105416105eb89612b48565b604060208b01519a0151909997889199509a505081925061051b565b3d91506105bc565b6040513d86823e3d90fd5b634e487b7160e01b86526041600452602486fd5b6106438230336001600160a01b03871661328f565b610460565b61065d8730336001600160a01b03851661328f565b61045a565b90506106879192506101803d811161069a575b61067f8183612a31565b810190612b5c565b505050505050505093925090505f610453565b503d610675565b6040513d85823e3d90fd5b63845eadf160e01b8252600482fd5b90506020813d6020116106f1575b816106d660209383612a31565b810103126106ed576106e790612a54565b5f610412565b8280fd5b3d91506106c9565b636507689f60e01b8152600490fd5b631834e26560e01b8252600482fd5b631966391b60e11b8152600490fd5b503461026957610735366128a6565b94919293989660018060a09a98939a1b036002541633036109f7576001600160a01b031692831580156109e6575b6109a65761ffff8a1661ffff82169061271061078e61ffff61078585856129bf565b9a16809a6129bf565b116109d7571515806109c6575b610986571515806109b5575b6109a657851515948580610995575b61098657878952600860205260ff60408a205416610977576040516331a9108f60e11b8152600481018990526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa90811561096c578a9161092e575b50306001600160a01b039091160361091f57925f805160206139778339815191529260406108578d948b9760209f868a612d04565b9b6001600160a01b03169a8b6108f3575b86815260058e5281812080546001600160a01b03199081168a1790915587825260068f5291902080549091166001600160a01b03929092169190911790556040519182916108b791908361294b565b0390a36108d4575b50506040516001600160401b03909216825250f35b845f8051602061387783398151915291604051908152a35f80806108bf565b61091a8251610901816129fb565b8d81528f8c908201528883528f600a9052838320612aa4565b610868565b63845eadf160e01b8952600489fd5b90506020813d602011610964575b8161094960209383612a31565b810103126109605761095a90612a54565b5f610822565b8980fd5b3d915061093c565b6040513d8c823e3d90fd5b6317c3335f60e21b8952600489fd5b63d92e233d60e01b8952600489fd5b506001600160a01b038a16156107b6565b63d92e233d60e01b8852600488fd5b506001600160a01b038516156107a7565b506001600160a01b0384161561079b565b636e549e5960e01b8a5260048afd5b506001600160a01b03821615610763565b630624275560e11b8852600488fd5b50346102695760603660031901126102695760043590610a2461281b565b90610a2d612884565b6002546001600160a01b03163303610cba5761ffff16926127108411610cab57831515938480610c9a575b610c8b57818352600860205260ff604084205416610c7c576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa90811561060f578491610c3e575b50306001600160a01b0390911603610c2f5760015492610af46001600160401b0360a086901c8116904216612992565b9460405194610b02866129cc565b6001600160a01b0390811686526001600160401b0396871660208088018281526040808a0187815295851660608b0181815260808c018a81528b8a5260039095529188209a518b546001600160a01b0319169616959095178a55905192999398909491939092610b73911683612969565b511515610b809082612a68565b915160019290920180546001600160a01b0319166001600160a01b039390931692909217825551610bb79161ffff90911690612a85565b82815260086020526040902060ff198154166001179055610bd782612ad8565b600160a01b60019003600154168260405186815260205f805160206138d783398151915291a3602094610c10575b505050604051908152f35b845f8051602061389783398151915291604051908152a35f8080610c05565b63845eadf160e01b8352600483fd5b90506020813d602011610c74575b81610c5960209383612a31565b81010312610c7057610c6a90612a54565b5f610ac4565b8380fd5b3d9150610c4c565b6317c3335f60e21b8352600483fd5b63d92e233d60e01b8352600483fd5b506001600160a01b03841615610a58565b636e549e5960e01b8252600482fd5b630624275560e11b8252600482fd5b5034610269576020366003190112610269576004356001600160401b038111610d5e5736602382011215610d5e576004810135906001600160401b0382116106ed573660248360051b830101116106ed57610d22612e6e565b825b82811015610d4957600190610d4160248260051b85010135612eff565b505001610d24565b8360015f805160206139578339815191525580f35b5080fd5b5034610269576020366003190112610269576040610da3916004358152600a6020522054604051918161ffff849360a01c169060018060a01b03168361294b565b0390f35b5034610269578060031936011261026957600c546040516001600160a01b039091168152602090f35b503461026957602036600319011261026957610dea612e6e565b6040610df7600435612eff565b60015f805160206139578339815191525582519182526020820152f35b503461026957602036600319011261026957602090600435815260058252604060018060a01b0391205416604051908152f35b503461026957806003193601126102695760405160098054808352908352602082019081905f805160206138f783398151915290855b818110610ed45750505082610e93910383612a31565b604051928392602084019060208552518091526040840192915b818110610ebb575050500390f35b8251845285945060209384019390920191600101610ead565b8254845260209093019260019283019201610e7d565b50346102695780600319360112610269576020600954604051908152f35b5034610269578060031936011261026957546040516001600160a01b039091168152602090f35b50346102695760203660031901126102695760ff60406020926004358152600884522054166040519015158152f35b503461026957604036600319011261026957600435610f7b61285d565b818352600360205260408320805491906001600160a01b03831633036110365760ff8360e01c1661102757838552600b60205260ff604086205416611018576001600160401b038281169360a01c168311156110095791610fff6020927f7189acbbb826f9a514e1d187ea8f1e3eff0c63b70f069ddd1a717124845ca78494612969565b604051908152a280f35b63255323ab60e11b8552600485fd5b636100d92960e11b8552600485fd5b636507689f60e01b8552600485fd5b63644d871f60e01b8552600485fd5b50346102695760e0366003190112610269576004359061106361281b565b9161106c612831565b90611075612847565b9261107e612895565b60a4356001600160a01b0381169491908590036106ed5761109d612873565b6002549097906001600160a01b0316330361144e576001600160a01b0316908115801561143d575b801561142c575b61024b5761ffff8091169716916127106110e6848a6129bf565b1161141d57821515918280611415575b61140657858552600860205260ff6040862054166113f7576040516331a9108f60e11b8152600481018790526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa9081156113ec5786916113ae575b50306001600160a01b039091160361139f57600154976111926001600160401b0360a08b901c8116904216612992565b98604051906111a0826129cc565b6001600160a01b0390811682526001600160401b039a8b16602080840182815260408086018c8152606087018d8152608088018e81528f8f526003909552918d20965187546001600160a01b03191696169590951786559051929d90949193919261120c911683612969565b5115156112199082612a68565b915160019290920180546001600160a01b0319166001600160a01b0393909316929092178255516112509161ffff90911690612a85565b6020996001600160a01b0391909116929083611372575b5086865260088a5260408620805460ff1916600117905561128787612ad8565b60018060a01b0360015416875f805160206138d78339815191528c6040518d8152a387611346575b86865260058a52604080872080546001600160a01b0319908116851790915588885260068c5281882080549091166001600160a01b03939093169290921790915586865260078a52808620805460ff19166001179055519486905f805160206139378339815191529080a4611329575b8585604051908152f35b8186915f805160206138778339815191529352a35f80808061131f565b61136d604051611355816129fb565b898152868c820152888852600a8c5260408820612aa4565b6112af565b60405161139991611382826129fb565b8582528c82015288885260048c5260408820612aa4565b5f611267565b63845eadf160e01b8552600485fd5b90506020813d6020116113e4575b816113c960209383612a31565b810103126113e0576113da90612a54565b5f611162565b8580fd5b3d91506113bc565b6040513d88823e3d90fd5b6317c3335f60e21b8552600485fd5b63d92e233d60e01b8552600485fd5b5086156110f6565b636e549e5960e01b8452600484fd5b506001600160a01b038716156110cc565b506001600160a01b038316156110c5565b630624275560e11b8452600484fd5b5034610269578060031936011261026957602060405162278d008152f35b503461026957606036600319011261026957611495612805565b61149d61281b565b906044356001600160401b038116918282036115b257600c549060ff8260a01c1661157f576001600160a01b0316928315801561156e575b61155f5780156115505762278d00116115415760ff60a01b1916600160a01b17600c556001805485546001600160a01b0319166001600160a01b039095169490941785556001600160e01b03199093169190911760a09190911b600160a01b600160e01b031617905580f35b6325c3636760e01b8552600485fd5b63346ab43760e11b8652600486fd5b63d92e233d60e01b8652600486fd5b506001600160a01b038516156114d5565b60405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b6044820152606490fd5b8480fd5b50346102695780600319360112610269576002546040516001600160a01b039091168152602090f35b50346102695760203660031901126102695760ff60406020926004358152600784522054166040519015158152f35b503461026957602036600319011261026957611628612805565b81546001600160a01b0316330361167f57600c80546001600160a01b0319166001600160a01b039290921691821790557f7ead54cd1fd7e5ddea18605dec62ecb6a27d1f68bee1054cbf93b7abb4e1dc6b8280a280f35b6330cd747160e01b8252600482fd5b50346102695780600319360112610269576001546040516001600160a01b039091168152602090f35b50346102695760a0366003190112610269576004356116d461281b565b6116dc612884565b906116e5612847565b926116ee612895565b6002549095906001600160a01b031633036118855761ffff841661ffff87169061271061171b83836129bf565b1161187657151580611865575b61185657151580611845575b61183657818152600860205260ff604082205416611827576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa90811561181c5782916117e2575b50306001600160a01b03909116036117d35760206117c18787878787612d04565b6040516001600160401b039091168152f35b63845eadf160e01b8152600490fd5b90506020813d602011611814575b816117fd60209383612a31565b81010312610d5e5761180e90612a54565b5f6117a0565b3d91506117f0565b6040513d84823e3d90fd5b6317c3335f60e21b8152600490fd5b63d92e233d60e01b8152600490fd5b506001600160a01b03851615611734565b63d92e233d60e01b8252600482fd5b506001600160a01b03841615611728565b636e549e5960e01b8352600483fd5b630624275560e11b8152600490fd5b5034610269576020366003190112610269576040610da391600435815260046020522054604051918161ffff849360a01c169060018060a01b03168361294b565b50346102695760e036600319011261026957600435906118f361281b565b916118fc612831565b90611905612847565b916084359460018060a01b0386168096036115b25760a43561ffff811694858203611cf057611932612873565b6002549093906001600160a01b031633036109f7576001600160a01b03169384158015611cdf575b8015611cd7575b6109a65761ffff841698612710611978898c6129bf565b11611cc857871515998a80611cb7575b611ca857878a52600860205260ff60408b205416611c99576040516331a9108f60e11b8152600481018990526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa908115611c8e578b91611c50575b50306001600160a01b0390911603611c4157611bdf60209b968a98968a965f80516020613997833981519152965f80516020613937833981519152968f96611b1190611aea8961ffff8e6001808060a01b0381541660405190611a56826129cc565b81526020611ac0908201868152611ab7604084019188835260406060860199808b526080870198818a5281526020600390522094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b51151582612a68565b9351930180546001600160a01b0319166001600160a01b0394909416939093178355511690612a85565b60405190611af7826129fb565b83825260208201528b895260206004905260408920612aa4565b6001600160a01b0383169e8f80611c10575b505089875260056020908152604080892080546001600160a01b03199081168f179091558c8a5260068352818a2080549091166001600160a01b0386161790558b895260078252808920805460ff1990811660019081179092558d8b52600b8452828b2080548216831790558d8b5260089093529089208054909216179055611bab8a612ad8565b60018060a01b036001541660205f805160206138d78339815191528c916040518b8152a38a8a60405199898b9aa485612b0e565b0390a3611bf157505050604051908152f35b845f8051602061387783398151915291604051908152a35f8080610c05565b611c3a9160405191611c21836129fb565b825260208201528b89526020600a905260408920612aa4565b8c8f611b23565b63845eadf160e01b8a5260048afd5b90506020813d602011611c86575b81611c6b60209383612a31565b81010312611c8257611c7c90612a54565b5f6119f4565b8a80fd5b3d9150611c5e565b6040513d8d823e3d90fd5b6317c3335f60e21b8a5260048afd5b63d92e233d60e01b8a5260048afd5b506001600160a01b03841615611988565b636e549e5960e01b8952600489fd5b508815611961565b506001600160a01b0381161561195a565b8680fd5b50346102695760203660031901126102695760ff60406020926004358152600b84522054166040519015158152f35b50346102695760203660031901126102695760043590818152600860205260ff604082205416611827576040516331a9108f60e11b8152600481018390526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa90811561181c578291611dbe575b50306001600160a01b03909116036117d35760206117c183612c14565b90506020813d602011611df0575b81611dd960209383612a31565b81010312610d5e57611dea90612a54565b5f611da1565b3d9150611dcc565b5034611f45576020366003190112611f4557600435611e15612e6e565b5f81815260036020526040902080546001600160a01b0381169033829003611f675760ff8160e01c16611f5857835f52600b60205260ff60405f205416611f495760a081901c6001600160401b03164210611f495760ff60e01b1916600160e01b1782557f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b031690813b15611f45575f916064839260405194859384926323b872dd60e01b845230600485015260248401528860448401525af18015611f3a57611f25575b50546001600160a01b0316907f0f6a939a3e7f9bc7fab8a6b3a32be849d45e262d8c8188c4e494c8c5b480121c8380a360015f805160206139578339815191525580f35b611f329193505f90612a31565b5f915f611ee1565b6040513d5f823e3d90fd5b5f80fd5b636100d92960e11b5f5260045ffd5b636507689f60e01b5f5260045ffd5b63644d871f60e01b5f5260045ffd5b34611f45576020366003190112611f45576004355f526006602052602060018060a01b0360405f205416604051908152f35b34611f45576020366003190112611f4557611fc1612805565b5f546001600160a01b0316330361201757600280546001600160a01b0319166001600160a01b039290921691821790557f26cb9aa323ee00bc6f4a7cdda5c98e5b65986a229fd0e98bc323b3e532d750e45f80a2005b6330cd747160e01b5f5260045ffd5b34611f4557612034366128a6565b6002549498979096929592946001600160a01b0316330361241f576001600160a01b0316938415801561240e575b6123bd5761ffff891661ffff87169661271061208c6120818a856129bf565b61ffff8c16906129bf565b116123ff57811515806123ee575b6123bd57871515806123dd575b6123bd5761ffff891615159788806123cc575b6123bd578a5f52600860205260ff60405f2054166123ae576040516331a9108f60e11b8152600481018c90526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa908115611f3a575f91612374575b50306001600160a01b0390911603612365578a966121c28761ffff8d9660018c611ac0828060a01b038354169160405192612160846129cc565b8352611ab7602084015f815260408501925f84526060860199878060a01b03168a52608086019788525f52600360205260405f2094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b6001600160a01b031680612335575b50508686600160a01b600190038616809d811515986122ca965f80516020613977833981519152935f805160206139978339815191529b612300575b50505f84815260056020908152604080832080546001600160a01b03199081168a179091556006835281842080549091166001600160a01b038d1617905560078252808320805460ff19908116909155600b835281842080548216600190811790915560089093529220805490921617905561228884612ad8565b60018060a01b0360015416845f805160206138d783398151915260206040515f8152a36122ba6040519283928361294b565b0390a38860405194859485612b0e565b0390a36122dc575b60206040515f8152f35b60205f805160206138778339815191529161ffff60405191168152a38080806122d2565b61ffff61232d9260405192612314846129fb565b8352166020820152855f52600a60205260405f20612aa4565b8f8e9061220d565b61235e9160405191612346836129fb565b82526020820152875f52600460205260405f20612aa4565b8b806121d1565b63845eadf160e01b5f5260045ffd5b90506020813d6020116123a6575b8161238f60209383612a31565b81010312611f45576123a090612a54565b8d612126565b3d9150612382565b6317c3335f60e21b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b506001600160a01b038516156120ba565b506001600160a01b038616156120a7565b506001600160a01b0385161561209a565b636e549e5960e01b5f5260045ffd5b506001600160a01b03811615612062565b630624275560e11b5f5260045ffd5b34611f45575f366003190112611f45576040517f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03168152602090f35b34611f45576080366003190112611f455761248b612805565b5061249461281b565b506044356064356001600160401b038111611f455736602382011215611f455760048101356001600160401b038111611f455736910160240111611f45577f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b0316330361256d57805f52600860205260ff60405f20541680612554575b611f5857805f52600860205260ff60405f20541615612544575b604051630a85bd0160e11b8152602090f35b61254d90612c14565b5080612532565b50805f52600360205260ff60405f205460e01c16612518565b63041fb8cb60e31b5f5260045ffd5b34611f45575f366003190112611f455760015460405160a09190911c6001600160401b03168152602090f35b34611f45576020366003190112611f4557600c54600435906001600160a01b031633036126c7575f8181526003602052604090208054916001600160a01b038316156126b85760ff8360e01c16611f5857805f52600b60205260ff60405f20541615612688576001546020935061263a906126339060a01c6001600160401b03908116904216612992565b8093612969565b805f52600b835260405f2060ff1981541690557f4494ad59b3c9ddbc362fd2ee88f502bf22490bc517187e50480a4b721a70aac2836040519360018060401b031693848152a2604051908152f35b60a083901c6001600160401b03166126a95763415d815f60e01b5f5260045ffd5b63475a253560e01b5f5260045ffd5b631834e26560e01b5f5260045ffd5b631966391b60e11b5f5260045ffd5b34611f45576040366003190112611f45576126ef612805565b6126f761285d565b5f549091906001600160a01b03163303612017576001600160a01b03169081156123bd576001600160401b03811690811561279b5762278d00821061278c57600180546001600160e01b031916841760a09290921b600160a01b600160e01b03169190911790556040519081527f171606ac517d43591c851d196b454545818cf47130db3c64152d1bfc1ec0e9c690602090a2005b6325c3636760e01b5f5260045ffd5b63346ab43760e11b5f5260045ffd5b34611f45576020366003190112611f4557600435600954811015611f45576009548110156127f15760095f525f805160206138f78339815191520154604051908152602090f35b634e487b7160e01b5f52603260045260245ffd5b600435906001600160a01b0382168203611f4557565b602435906001600160a01b0382168203611f4557565b604435906001600160a01b0382168203611f4557565b606435906001600160a01b0382168203611f4557565b602435906001600160401b0382168203611f4557565b60c4359061ffff82168203611f4557565b6044359061ffff82168203611f4557565b6084359061ffff82168203611f4557565b610120906003190112611f4557600435906024356001600160a01b0381168103611f4557906044356001600160a01b0381168103611f4557906064356001600160a01b0381168103611f45579060843561ffff81168103611f45579060a4356001600160a01b0381168103611f45579060c43561ffff81168103611f45579060e4356001600160a01b0381168103611f4557906101043561ffff81168103611f455790565b6001600160a01b03909116815261ffff909116602082015260400190565b8054600160a01b600160e01b03191660a09290921b600160a01b600160e01b0316919091179055565b6001600160401b0391821690821601919082116129ab57565b634e487b7160e01b5f52601160045260245ffd5b919082018092116129ab57565b60a081019081106001600160401b038211176129e757604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176129e757604052565b608081019081106001600160401b038211176129e757604052565b601f909101601f19168101906001600160401b038211908210176129e757604052565b51906001600160a01b0382168203611f4557565b805460ff60e01b191691151560e01b60ff60e01b16919091179055565b805461ffff60a01b191660a09290921b61ffff60a01b16919091179055565b815181546001600160a01b0319166001600160a01b03909116178155602090910151612ad69161ffff90911690612a85565b565b600954600160401b8110156129e757600181016009556009548110156127f15760095f525f805160206138f78339815191520155565b6001600160a01b0391821681529116602082015261ffff91821660408201529116606082015260800190565b51908160020b8203611f4557565b51906001600160801b0382168203611f4557565b919082610180910312611f455781516001600160601b0381168103611f455791612b8860208201612a54565b91612b9560408301612a54565b91612ba260608201612a54565b91608082015162ffffff81168103611f455791612bc160a08201612b3a565b91612bce60c08301612b3a565b91612bdb60e08201612b48565b916101008201519161012081015191612c04610160612bfd6101408501612b48565b9301612b48565b90565b919082039182116129ab57565b600154909190612c346001600160401b0360a083901c8116904216612992565b9260405191612c42836129cc565b6001600160a01b0390811683526001600160401b0385811660208086018281525f604080890182815260608a0183815260808b018481528a8552600390965291909220985189546001600160a01b031916971696909617885590519296612cbc959461ffff94600193611ac0929091611ab7911684612969565b805f52600860205260405f20600160ff19825416179055612cdc81612ad8565b6001546040519283526001600160a01b0316915f805160206138d783398151915290602090a3565b60015491959492939092839291612dbd612d2e6001600160401b0360a086901c8116904216612992565b9860405194612d3c866129cc565b60018060a01b0316855261ffff60208601986001808060401b038d1697888c52611ac0604082015f8152611ab76060840197858060a01b03169e8f8952876080860197169d8e88525f52600360205260405f2094868060a01b0390878060a01b0390511616868060a01b0319865416178555858060401b0390511684612969565b6001600160a01b031680612e3a575b5050825f52600860205260405f20600160ff19825416179055612dee83612ad8565b6001546040519182526001600160a01b03169083905f805160206138d783398151915290602090a380612e2057505050565b60205f8051602061389783398151915291604051908152a3565b61ffff612e679260405192612e4e846129fb565b8352166020820152845f52600460205260405f20612aa4565b5f80612dcc565b60025f805160206139578339815191525414612e975760025f8051602061395783398151915255565b633ee5aeb560e01b5f5260045ffd5b9190826040910312611f45576020825192015190565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f81815260036020526040902080549092906001600160a01b0381169081156126b85760e01c60ff16611f58575f838152600460209081526040808320600a835281842060059093529220549194909290916001600160a01b031615801590613279575b8015613265575b8015613254575b8015613243575b156131645750604080517f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b031696612ff3929091612fbc81612a16565b8481523060208201526001600160801b038282018190526060820152815163fc6f786560e01b815293849182919060048301612ebc565b03815f8b5af18015611f3a576024945f935f92613130575b508197610180859a6040519889809263133f757160e31b82528a60048301525afa968715611f3a575f905f986130dc575b50604061306e84848888613067829a998e9960019d8f5f805160206138b78339815191529b8d61345a565b9d8861345a565b96868060a01b038654169482519182526020820152a301549061ffff8260a01c1661309a575b50505050565b7f1f22046f9445af647a187962564ca3d89c6bd13cd8b459cdae0f6a280e7b8618916040918251958652602086015260018060a01b031693a35f808080613094565b849850829150948684899483809897996101803d8111613129575b6131018183612a31565b810161310c91612b5c565b50505050505050509f92509050965050509450505094929361303c565b503d6130f7565b909350613155915060403d60401161315d575b61314d8183612a31565b810190612ea6565b90925f61300b565b503d613143565b6131b1939450604080929350519061317b82612a16565b83825260208201526001600160801b038282018190526060820152815163fc6f786560e01b815293849182919060048301612ebc565b03815f7f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165af1938415611f3a575f925f9561321c575b5060018060a01b03905416905f805160206138b783398151915260408051858152876020820152a39190565b90945061323991925060403d60401161315d5761314d8183612a31565b919091935f6131f0565b5061ffff835460a01c161515612f78565b5061ffff855460a01c161515612f71565b5061ffff600187015460a01c161515612f6a565b50815f52600760205260ff60405f205416612f63565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615613300575b6040525f606052156132e05750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661331857823b15153d151616906132d1565b503d5f823e3d90fd5b9061332d5f828461357c565b15613336575050565b61334081836135c9565b15613358575f613350918361362d565b156132e05750565b50635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b919061338682828561357c565b1561339057505050565b61339a81846135c9565b156133aa5790613350918361362d565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b906040519063a9059cbb60e01b5f5261dead60045260245260205f60448180865af19060015f5114821615613403575b604052156132e05750565b90600181151661331857823b15153d151616906133f8565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f511482161561340357604052156132e05750565b949091948515613572575f818152600560209081526040808320546006909252909120546001600160a01b039081169116801515908161355f575b50613535578015159081613521575b506134ed57506001830154935490549254612c04956001600160a01b039182169561ffff60a087811c82169785169686821c8316968616959184901c909216939216919061367b565b9350505f80516020613917833981519152915060209060018060a01b03169361351681866133c8565b604051908152a35f90565b6001600160a01b038516141590505f6134a4565b509350505f80516020613917833981519152915060209060018060a01b03169361351681866133c8565b6001600160a01b0386161490505f613495565b5050505050505f90565b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f51148416156135b8575b50604052565b3d15903b151516909216915f6135b2565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f511484161561360b5750604052565b60018492941516613624573b15153d151616915f6135b2565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f511484161561360b5750604052565b818102929181159184041417156129ab57565b9690929897949895939195831561376c579061ffff86921661369d9085613668565b61271090049687809b61ffff166136b49087613668565b612710900461ffff8194166136c99088613668565b61271090049687926136da91612c07565b906136e491612c07565b906136ee91612c07565b9780613752575b50508781613740575b5050505080613726575b50508161371457505050565b612ad6926001600160a01b031661341b565b613739916001600160a01b03861661341b565b5f80613708565b61374993613779565b5f8381876136fe565b613765916001600160a01b038b1661341b565b5f806136f5565b505f985050505050505050565b92905f90831561386f57843b15613859576001600160a01b031693843b15611f4557604051632e1a7d4d60e01b8152600481018590525f81602481838a5af19081613844575b506137cf575050612ad69261341b565b81808086819460018060a01b03165af1903d1561383e573d906001600160401b03821161382a576040519161380e601f8201601f191660200184612a31565b825260203d92013e5b1561382157505050565b612ad69261341b565b634e487b7160e01b81526041600452602490fd5b50613817565b6138519193505f90612a31565b5f915f6137bf565b612ad69492506001600160a01b0316905061341b565b505050505056fef15ba8cde6f3a49465c8c04ccb4873b51a2ff98b473dda6b4f867885bf6c95a20af1f298af1d034902c9a0b9e671bcfdcf0af0393909b2fe51cf8dfd930a2ff41df95d0058852523ea13aa1809224af942bd446ce86d3e431bf193c2bec269f1d21fd17f74ac5cbbe5b8d7466148337a16ca89fd30045d1cea2448b0402e7df36e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af610756ffcab872280e918f7ad2bb56405987ae7b08fe6e99225e01c2a00bdb54d6c7b8fb596a930a91ee5b3bfaf61fcacf99aeef45c3aa57c685aa1dc9b310ac9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0029de68b8b1bd54db35aace7f11e0f9080caf24f25a4b8a8318980aa845380204b6a1388477cf9976b4b1c0e2ad16002bbd068acebfbef4b828fbf63d5641edac
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| no event logs emitted by this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| No direct transactions — this address is only ever reached via internal calls (common for a contract only invoked through a router or proxy). View Internal Transactions → | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 12,317,971 | 31 days agoFri, 17 Jul 2026 18:00:32 UTC | 0x5e2af9…208078 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00010 ETH |
| 12,317,969 | 31 days agoFri, 17 Jul 2026 18:00:31 UTC | 0x24907e…e8c1ff | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00474 ETH |
| 12,031,026 | 31 days agoFri, 17 Jul 2026 10:00:39 UTC | 0xc120f9…8e8cb4 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00088 ETH |
| 11,995,299 | 31 days agoFri, 17 Jul 2026 09:00:49 UTC | 0xfcbc5c…e46065 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00001 ETH |
| 11,995,297 | 31 days agoFri, 17 Jul 2026 09:00:48 UTC | 0xe67b27…70dfd9 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00831 ETH |
| 11,923,241 | 31 days agoFri, 17 Jul 2026 07:00:05 UTC | 0xda110a…795192 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00001 ETH |
| 11,888,266 | 31 days agoFri, 17 Jul 2026 06:01:32 UTC | 0x6d61e7…2fc9fd | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00018 ETH |
| 11,888,264 | 31 days agoFri, 17 Jul 2026 06:01:32 UTC | 0x338e54…c31243 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00452 ETH |
| 11,852,210 | 31 days agoFri, 17 Jul 2026 05:01:14 UTC | 0x1f4be3…cb3606 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00041 ETH |
| 11,852,208 | 31 days agoFri, 17 Jul 2026 05:01:14 UTC | 0xd08aae…03b8c7 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00720 ETH |
| 11,816,005 | 31 days agoFri, 17 Jul 2026 04:00:43 UTC | 0x167fa0…f46608 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00005 ETH |
| 11,816,003 | 31 days agoFri, 17 Jul 2026 04:00:43 UTC | 0x799243…008f72 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00096 ETH |
| 11,780,094 | 32 days agoFri, 17 Jul 2026 03:00:42 UTC | 0x41764b…89835a | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00019 ETH |
| 11,780,092 | 32 days agoFri, 17 Jul 2026 03:00:42 UTC | 0xe804b8…717ac0 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00026 ETH |
| 11,744,834 | 32 days agoFri, 17 Jul 2026 02:01:50 UTC | 0xa61117…6976aa | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00034 ETH |
| 11,744,832 | 32 days agoFri, 17 Jul 2026 02:01:50 UTC | 0xf67ffd…fca881 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.01833 ETH |
| 11,672,221 | 32 days agoFri, 17 Jul 2026 00:00:44 UTC | 0xd144ab…b23687 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00005 ETH |
| 11,672,219 | 32 days agoFri, 17 Jul 2026 00:00:43 UTC | 0x84a830…0ced30 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00256 ETH |
| 11,636,900 | 32 days agoThu, 16 Jul 2026 23:01:46 UTC | 0x4adcb2…0b9b90 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00012 ETH |
| 11,636,898 | 32 days agoThu, 16 Jul 2026 23:01:46 UTC | 0x1b1a1f…0d9a3f | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00107 ETH |
| 11,600,308 | 32 days agoThu, 16 Jul 2026 22:00:44 UTC | 0x72507f…a023d0 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00049 ETH |
| 11,600,306 | 32 days agoThu, 16 Jul 2026 22:00:44 UTC | 0x71f323…64e438 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.06355 ETH |
| 11,096,924 | 32 days agoThu, 16 Jul 2026 08:01:07 UTC | 0x3a2d57…0cabe6 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00000 ETH |
| 11,096,922 | 32 days agoThu, 16 Jul 2026 08:01:07 UTC | 0x7eb66a…b394e9 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00565 ETH |
| 11,060,960 | 32 days agoThu, 16 Jul 2026 07:01:00 UTC | 0x0b9972…1eb6a7 | DELEGATECALL | collectFees | 0x5b41…93cd | IN | 0x78c4…acc2 | 0.00007 ETH |