@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
3,298 lines • 150 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VeBetterPassportV4",
"sourceName": "contracts/deprecated/V4/ve-better-passport/VeBetterPassportV4.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "AlreadyDelegated",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "AlreadyLinked",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "CannotDelegateToSelf",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "CannotLinkToSelf",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "DelegatedEntity",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSignature",
"type": "error"
},
{
"inputs": [],
"name": "MaxEntitiesPerPassportReached",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "NotDelegated",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "NotLinked",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOneLinkAllowed",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOneUserAllowed",
"type": "error"
},
{
"inputs": [],
"name": "PassportDelegationFromEntity",
"type": "error"
},
{
"inputs": [],
"name": "PassportDelegationToEntity",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "PassportDelegationUnauthorizedUser",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"inputs": [],
"name": "SignatureExpired",
"type": "error"
},
{
"inputs": [],
"name": "UUPSUnauthorizedCallContext",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "slot",
"type": "bytes32"
}
],
"name": "UUPSUnsupportedProxiableUUID",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "UnauthorizedUser",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "VeBetterPassportV4UnauthorizedUser",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "checkName",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "CheckToggled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationPending",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "DelegationRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkPending",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "minimumGalaxyMemberLevel",
"type": "uint256"
}
],
"name": "MinimumGalaxyMemberLevelSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "passport",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "actionScore",
"type": "uint256"
}
],
"name": "RegisteredAction",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "removedBy",
"type": "address"
}
],
"name": "RemovedUserFromBlacklist",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "removedBy",
"type": "address"
}
],
"name": "RemovedUserFromWhitelist",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
}
],
"name": "SignalerAssignedToApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
}
],
"name": "SignalerRemovedFromApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "blacklistedBy",
"type": "address"
}
],
"name": "UserBlacklisted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signaler",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignaled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignalsReset",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "UserSignalsResetForApp",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "whitelistedBy",
"type": "address"
}
],
"name": "UserWhitelisted",
"type": "event"
},
{
"inputs": [],
"name": "ACTION_REGISTRAR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ACTION_SCORE_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "CLOCK_MODE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RESET_SIGNALER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ROLE_GRANTER",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SETTINGS_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SIGNALER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UPGRADER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UPGRADE_INTERFACE_VERSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WHITELISTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "acceptDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "acceptEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_signaler",
"type": "address"
}
],
"name": "appOfSignaler",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "appSecurity",
"outputs": [
{
"internalType": "enum PassportTypesV4.APP_SECURITY",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "appSignalsCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_app",
"type": "bytes32"
}
],
"name": "appTotalSignalsCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "assignSignalerToApp",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "app",
"type": "bytes32"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "assignSignalerToAppByAppAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "blacklist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "blacklistThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cancelOutgoingPendingDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cancelOutgoingPendingEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "clock",
"outputs": [
{
"internalType": "uint48",
"name": "",
"type": "uint48"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decayRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "delegatePassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "delegateWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "denyIncomingPendingDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "denyIncomingPendingEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "signatureVersion",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "lastRound",
"type": "uint256"
}
],
"name": "getCumulativeScoreWithDecay",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "getDelegatee",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getDelegateeInTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
}
],
"name": "getDelegator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegatee",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getDelegatorInTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "getEntitiesLinkedToPassport",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getGalaxyMember",
"outputs": [
{
"internalType": "contract IGalaxyMember",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMinimumGalaxyMemberLevel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "getPassportForEntity",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getPassportForEntityAtTimepoint",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPendingDelegations",
"outputs": [
{
"internalType": "address[]",
"name": "incoming",
"type": "address[]"
},
{
"internalType": "address",
"name": "outgoing",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPendingLinkings",
"outputs": [
{
"internalType": "address[]",
"name": "incoming",
"type": "address[]"
},
{
"internalType": "address",
"name": "outgoing",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getX2EarnApps",
"outputs": [
{
"internalType": "contract IX2EarnApps",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getXAllocationVoting",
"outputs": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "xAllocationVoting",
"type": "address"
},
{
"internalType": "contract IX2EarnApps",
"name": "x2EarnApps",
"type": "address"
},
{
"internalType": "contract IGalaxyMember",
"name": "galaxyMember",
"type": "address"
},
{
"internalType": "uint256",
"name": "signalingThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "roundsForCumulativeScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minimumGalaxyMemberLevel",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blacklistThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "whitelistThreshold",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxEntitiesPerPassport",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "decayRate",
"type": "uint256"
}
],
"internalType": "struct PassportTypesV4.InitializationData",
"name": "data",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "botSignaler",
"type": "address"
},
{
"internalType": "address",
"name": "upgrader",
"type": "address"
},
{
"internalType": "address",
"name": "settingsManager",
"type": "address"
},
{
"internalType": "address",
"name": "roleGranter",
"type": "address"
},
{
"internalType": "address",
"name": "blacklister",
"type": "address"
},
{
"internalType": "address",
"name": "whitelister",
"type": "address"
},
{
"internalType": "address",
"name": "actionRegistrar",
"type": "address"
},
{
"internalType": "address",
"name": "actionScoreManager",
"type": "address"
},
{
"internalType": "address",
"name": "resetSignaler",
"type": "address"
}
],
"internalType": "struct PassportTypesV4.InitializationRoleData",
"name": "roles",
"type": "tuple"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_resetSignaler",
"type": "address"
}
],
"name": "initializeV4",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "isBlacklisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypesV4.CheckType",
"name": "check",
"type": "uint8"
}
],
"name": "isCheckEnabled",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isDelegatee",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isDelegateeInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isDelegator",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isDelegatorInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isEntity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isEntityInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isPassport",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "isPassportBlacklisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "isPassportInTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "isPassportWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isPerson",
"outputs": [
{
"internalType": "bool",
"name": "person",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint48",
"name": "timepoint",
"type": "uint48"
}
],
"name": "isPersonAtTimepoint",
"outputs": [
{
"internalType": "bool",
"name": "person",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "isWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "linkEntityToPassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "linkEntityToPassportWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "maxEntitiesPerPassport",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minimumGalaxyMemberLevel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "registerAction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "registerActionForRound",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalScore",
"type": "uint256"
}
],
"name": "registerAggregatedActionsForRound",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "removeEntityLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "removeFromBlacklist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "removeFromWhitelist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "removeSignalerFromApp",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "removeSignalerFromAppByAppAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "resetUserSignalsByAppWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "resetUserSignalsWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "revokeDelegation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "roundsForCumulativeScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypesV4.APP_SECURITY",
"name": "security",
"type": "uint8"
}
],
"name": "securityMultiplier",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "enum PassportTypesV4.APP_SECURITY",
"name": "security",
"type": "uint8"
}
],
"name": "setAppSecurity",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_threshold",
"type": "uint256"
}
],
"name": "setBlacklistThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_decayRate",
"type": "uint256"
}
],
"name": "setDecayRate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGalaxyMember",
"name": "galaxyMember",
"type": "address"
}
],
"name": "setGalaxyMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "maxEntities",
"type": "uint256"
}
],
"name": "setMaxEntitiesPerPassport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minimumGalaxyMemberLevel",
"type": "uint256"
}
],
"name": "setMinimumGalaxyMemberLevel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "rounds",
"type": "uint256"
}
],
"name": "setRoundsForCumulativeScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypesV4.APP_SECURITY",
"name": "security",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "multiplier",
"type": "uint256"
}
],
"name": "setSecurityMultiplier",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "setSignalingThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint208",
"name": "threshold",
"type": "uint208"
}
],
"name": "setThresholdPoPScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_threshold",
"type": "uint256"
}
],
"name": "setWhitelistThreshold",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IX2EarnApps",
"name": "_x2EarnApps",
"type": "address"
}
],
"name": "setX2EarnApps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IXAllocationVotingGovernor",
"name": "xAllocationVoting",
"type": "address"
}
],
"name": "setXAllocationVoting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "signalUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "signalUserWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "signaledCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "signalingThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "thresholdPoPScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint48",
"name": "timepoint",
"type": "uint48"
}
],
"name": "thresholdPoPScoreAtTimepoint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum PassportTypesV4.CheckType",
"name": "check",
"type": "uint8"
}
],
"name": "toggleCheck",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userAppTotalScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "userRoundScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "round",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "userRoundScoreApp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "userTotalScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "whitelist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "whitelistThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051614e246200010460003960008181613ac801528181613af10152613c430152614e246000f3fe6080604052600436106104ed5760003560e01c806270f93d146104f257806301ffc9a71461051457806304e2a79a1461054957806304e7e0b914610579578063080abb4c14610599578063081bc0ba146105b957806308b76b3a146105db5780630e668aac146105fb5780630f73927a1461061b578063110a8308146106495780631332de461461066957806313ebae2a1461068957806314887c58146106ab57806315b75cf0146106cb5780631acebfbe146106e05780631ee7632314610702578063248a9ca31461072257806326b320ab146107425780632839cc4a146107625780632be4d14d146107825780632d01a9b4146107a25780632d92dcdc146107c25780632f2ff15d146107d7578063315b8bd0146107f757806336568abe1461080c57806336db28b31461082c57806338d8d688146108415780633910d657146108615780633af32abf146108815780633bf451a9146108a15780633c8c8f79146108c15780633d47fe94146108e15780633e420ce31461090157806340a6fc0b14610921578063451e100d14610941578063453b8b0714610961578063467b99b61461098157806349599712146109a15780634bf5d7e9146109c15780634e540780146109e35780634f1ef28614610a035780634f69de0814610a1657806352ba35c414610a2b57806352d1902d14610a4b578063537df3b614610a6057806354fd4d5014610a80578063570618e114610aaa5780635801b70f14610acc5780635a1dcf2c14610aec5780635ce3309314610b0c578063664d6e9e14610b215780636e6a304c14610b365780637fd4f54f14610b5657806384b0196e14610b6b578063856868ec14610b9357806386fc460614610bb35780638919b6e514610bd35780638ab1d68114610bf35780638d38b50f14610c1357806391d1485414610c3357806391ddadf414610c53578063943e710014610c7f5780639687f51114610c9f57806397d8886814610cb4578063981e766214610cd4578063989f5fd514610cf65780639b19251a14610d165780639b4e735f14610d365780639f14e0e214610d56578063a217fddf14610d76578063a26596de14610d8b578063a4d3180514610dab578063a64ad59514610dc0578063a9c1f2f114610de0578063ad3cb1cc14610df5578063ae0b8da814610e26578063b292864a14610e46578063b48a963414610e73578063b5dadb1714610e93578063b7af069014610ea8578063b93501a514610ec8578063bb004e9314610ee8578063bc6237ff14610f08578063c107e0d114610f28578063c60ef11d14610f48578063c791e93714610f68578063c817dcec14610f88578063ca3f511f14610f9d578063cb156fb014610fcb578063ccc3ced314610feb578063ce371f061461100b578063d0023fcb1461102b578063d0ebb0ee1461104b578063d1143f3a1461106b578063d2a98f8b1461108b578063d547741f146110ab578063d6cfbe1b146110cb578063dc8debb0146110eb578063dd0c704b1461110b578063e0b23db414611120578063e0e4879514611140578063e18c10d314611162578063e432504414611182578063e60fd76c146111a2578063ebd695c3146111cf578063f4079c1f146111ef578063f72c0d8b1461120f578063f9561f6714611231578063f9cfdfcc14611251578063f9f92be414611271578063fa7626d014611291578063fd8ab482146112b3578063fe575a87146112d3575b600080fd5b3480156104fe57600080fd5b5061051261050d366004614206565b6112f3565b005b34801561052057600080fd5b5061053461052f366004614223565b61136d565b60405190151581526020015b60405180910390f35b34801561055557600080fd5b5061056b600080516020614dcf83398151915281565b604051908152602001610540565b34801561058557600080fd5b5061051261059436600461424d565b6113a4565b3480156105a557600080fd5b506105346105b4366004614206565b611469565b3480156105c557600080fd5b5061056b600080516020614caf83398151915281565b3480156105e757600080fd5b506105346105f6366004614266565b611487565b34801561060757600080fd5b506105126106163660046142a1565b611519565b34801561062757600080fd5b5061063b610636366004614206565b6115e5565b60405161054092919061431d565b34801561065557600080fd5b50610512610664366004614206565b61167e565b34801561067557600080fd5b50610512610684366004614206565b6117cb565b34801561069557600080fd5b5061069e611811565b6040516105409190614345565b3480156106b757600080fd5b506105346106c6366004614206565b611838565b3480156106d757600080fd5b5061051261184f565b3480156106ec57600080fd5b5061056b600080516020614d4f83398151915281565b34801561070e57600080fd5b5061051261071d36600461442d565b6118c3565b34801561072e57600080fd5b5061056b61073d36600461424d565b611959565b34801561074e57600080fd5b5061051261075d366004614490565b611979565b34801561076e57600080fd5b5061051261077d3660046144c0565b611a57565b34801561078e57600080fd5b5061051261079d366004614206565b611b0b565b3480156107ae57600080fd5b506105126107bd36600461424d565b611b51565b3480156107ce57600080fd5b5061069e611baf565b3480156107e357600080fd5b506105126107f2366004614490565b611bd0565b34801561080357600080fd5b5061056b611c2e565b34801561081857600080fd5b50610512610827366004614490565b611c44565b34801561083857600080fd5b50610512611c7c565b34801561084d57600080fd5b5061069e61085c366004614266565b611cc1565b34801561086d57600080fd5b5061056b61087c366004614266565b611d4b565b34801561088d57600080fd5b5061053461089c366004614206565b611d84565b3480156108ad57600080fd5b5061056b6108bc36600461424d565b611db5565b3480156108cd57600080fd5b5061056b6108dc366004614511565b611dd9565b3480156108ed57600080fd5b506105126108fc366004614206565b611e69565b34801561090d57600080fd5b5061056b61091c36600461452c565b611ef0565b34801561092d57600080fd5b5061051261093c366004614206565b611f07565b34801561094d57600080fd5b5061051261095c36600461442d565b611f58565b34801561096d57600080fd5b5061051261097c36600461424d565b611fed565b34801561098d57600080fd5b5061069e61099c366004614206565b612081565b3480156109ad57600080fd5b506105126109bc366004614206565b612109565b3480156109cd57600080fd5b506109d661214e565b6040516105409190614547565b3480156109ef57600080fd5b506105346109fe366004614206565b61218f565b610512610a1136600461457a565b612217565b348015610a2257600080fd5b5061056b612236565b348015610a3757600080fd5b50610512610a46366004614688565b61224e565b348015610a5757600080fd5b5061056b61248c565b348015610a6c57600080fd5b50610512610a7b366004614206565b6124a9565b348015610a8c57600080fd5b506040805180820190915260018152600d60fa1b60208201526109d6565b348015610ab657600080fd5b5061056b600080516020614d8f83398151915281565b348015610ad857600080fd5b50610512610ae7366004614748565b61253d565b348015610af857600080fd5b50610534610b07366004614206565b6125e9565b348015610b1857600080fd5b5061056b612618565b348015610b2d57600080fd5b5061056b612630565b348015610b4257600080fd5b50610534610b51366004614266565b612648565b348015610b6257600080fd5b5061056b612691565b348015610b7757600080fd5b50610b806126a9565b604051610540979695949392919061477d565b348015610b9f57600080fd5b5061056b610bae366004614206565b6126d3565b348015610bbf57600080fd5b5061056b610bce366004614490565b612701565b348015610bdf57600080fd5b5061056b610bee366004614266565b612739565b348015610bff57600080fd5b50610512610c0e366004614206565b612772565b348015610c1f57600080fd5b5061056b610c2e366004614748565b612806565b348015610c3f57600080fd5b50610534610c4e366004614490565b61284c565b348015610c5f57600080fd5b50610c68612882565b60405165ffffffffffff9091168152602001610540565b348015610c8b57600080fd5b50610512610c9a366004614490565b61288c565b348015610cab57600080fd5b5061056b61291c565b348015610cc057600080fd5b50610512610ccf36600461424d565b612931565b348015610ce057600080fd5b5061056b600080516020614ccf83398151915281565b348015610d0257600080fd5b50610534610d11366004614206565b6129c5565b348015610d2257600080fd5b50610512610d31366004614206565b612a0c565b348015610d4257600080fd5b5061069e610d51366004614206565b612aa0565b348015610d6257600080fd5b50610512610d71366004614813565b612ae7565b348015610d8257600080fd5b5061056b600081565b348015610d9757600080fd5b50610512610da636600461482f565b612b7d565b348015610db757600080fd5b50610512612c1f565b348015610dcc57600080fd5b5061069e610ddb366004614206565b612c64565b348015610dec57600080fd5b5061056b612cab565b348015610e0157600080fd5b506109d6604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610e3257600080fd5b50610512610e41366004614206565b612cc3565b348015610e5257600080fd5b50610e66610e6136600461424d565b612d4a565b6040516105409190614882565b348015610e7f57600080fd5b50610512610e8e366004614206565b612d71565b348015610e9f57600080fd5b5061056b612db7565b348015610eb457600080fd5b50610512610ec3366004614266565b612dcf565b348015610ed457600080fd5b50610512610ee3366004614890565b612e2f565b348015610ef457600080fd5b50610512610f0336600461424d565b612e79565b348015610f1457600080fd5b5061069e610f23366004614266565b612f0d565b348015610f3457600080fd5b5061056b610f43366004614206565b612f56565b348015610f5457600080fd5b50610512610f63366004614206565b612f84565b348015610f7457600080fd5b50610512610f83366004614890565b612fd5565b348015610f9457600080fd5b5061056b61301f565b348015610fa957600080fd5b50610fbd610fb8366004614206565b613037565b60405161054092919061492c565b348015610fd757600080fd5b50610512610fe6366004614206565b613050565b348015610ff757600080fd5b50610534611006366004614956565b6130de565b34801561101757600080fd5b5061051261102636600461442d565b613125565b34801561103757600080fd5b5061056b611046366004614206565b6131bb565b34801561105757600080fd5b5061063b611066366004614977565b6131e9565b34801561107757600080fd5b50610512611086366004614206565b61329b565b34801561109757600080fd5b506105126110a636600461424d565b6132e1565b3480156110b757600080fd5b506105126110c6366004614490565b613375565b3480156110d757600080fd5b506105126110e6366004614956565b6133cd565b3480156110f757600080fd5b50610512611106366004614206565b61342b565b34801561111757600080fd5b5061069e613507565b34801561112c57600080fd5b5061051261113b366004614206565b613528565b34801561114c57600080fd5b5061056b600080516020614daf83398151915281565b34801561116e57600080fd5b5061056b61117d366004614266565b61356e565b34801561118e57600080fd5b5061053461119d366004614266565b6135f8565b3480156111ae57600080fd5b506111c26111bd366004614206565b613641565b60405161054091906149a3565b3480156111db57600080fd5b506105126111ea36600461424d565b613659565b3480156111fb57600080fd5b5061053461120a366004614266565b6136ed565b34801561121b57600080fd5b5061056b600080516020614d0f83398151915281565b34801561123d57600080fd5b5061069e61124c366004614266565b613736565b34801561125d57600080fd5b50610fbd61126c366004614206565b61377f565b34801561127d57600080fd5b5061051261128c366004614206565b613798565b34801561129d57600080fd5b5061056b600080516020614d6f83398151915281565b3480156112bf57600080fd5b506105346112ce366004614206565b61382c565b3480156112df57600080fd5b506105346112ee366004614206565b613843565b60006112fd613874565b6040516326c753e560e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90634d8ea7ca9061133990849086906004016149b6565b60006040518083038186803b15801561135157600080fd5b505af4158015611365573d6000803e3d6000fd5b505050505050565b60006001600160e01b03198216637965db0b60e01b148061139e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006113b0813361284c565b1580156113c557506113c360003361284c565b155b156113ee573360405163d51a055b60e01b81526004016113e59190614345565b60405180910390fd5b60006113f8613874565b6040516392c8c8c360e01b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__906392c8c8c39061143490849087906004016149cd565b60006040518083038186803b15801561144c57600080fd5b505af4158015611460573d6000803e3d6000fd5b50505050505050565b600080611474613874565b90506114808184613898565b9392505050565b600080611492613874565b60405163106a839360e11b815290915073__$e9a35c3648a907266234705512cce6de89$__906320d50726906114d0908490889088906004016149db565b602060405180830381865af41580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614a0a565b949350505050565b600080516020614dcf833981519152611532813361284c565b158015611547575061154560003361284c565b155b15611567573360405163d51a055b60e01b81526004016113e59190614345565b6000611571613874565b604051637e3e4e2160e01b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90637e3e4e21906115af90849088908890600401614a25565b60006040518083038186803b1580156115c757600080fd5b505af41580156115db573d6000803e3d6000fd5b5050505050505050565b6000606060006115f3613874565b604051632fda428960e01b815290915073__$901fd247df5753f09c52f83eba7a2cf8d4$__90632fda42899061162f90849088906004016149b6565b600060405180830381865af415801561164c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116749190810190614a40565b9250925050915091565b6004600061168a6138cd565b8054909150600160401b900460ff16806116b1575080546001600160401b03808416911610155b156116cf5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d0f833981519152611706816138f1565b6001600160a01b03841661177b5760405162461bcd60e51b815260206004820152603660248201527f566542657474657250617373706f727456343a207265736574207369676e616c604482015275657220697320746865207a65726f206164647265737360501b60648201526084016113e5565b611793600080516020614ccf833981519152856138fe565b5050805460ff60401b19168155604051600080516020614cef833981519152906117be908490614aca565b60405180910390a1505050565b60006117d5613874565b6040516339b5144d60e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063736a289a9061133990849086906004016149b6565b60008061181c613874565b905061183281600401546001600160a01b031690565b91505090565b600080611843613874565b9050611480818461399f565b6000611859613874565b604051637b2b9bc360e11b81526004810182905290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063f6573786906024015b60006040518083038186803b1580156118a857600080fd5b505af41580156118bc573d6000803e3d6000fd5b5050505050565b600080516020614ccf8339815191526118dc813361284c565b1580156118f157506118ef60003361284c565b155b15611911573360405163d51a055b60e01b81526004016113e59190614345565b600061191b613874565b604051631eed6cbf60e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__90637bb5b2fc906115af90849088908890600401614ade565b6000806119646139c2565b60009384526020525050604090206001015490565b600080516020614caf833981519152611992813361284c565b1580156119a757506119a560003361284c565b155b156119c7573360405163d51a055b60e01b81526004016113e59190614345565b60006119d1613874565b604051630403991f60e51b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063807323e090611a0f90849088908890600401614b08565b60006040518083038186803b158015611a2757600080fd5b505af4158015611a3b573d6000803e3d6000fd5b505050506118bc600080516020614d4f833981519152846138fe565b600080516020614daf833981519152611a6f816138f1565b6000611a79613874565b604051636afc27c960e11b8152600481018290526001600160a01b038816602482015260448101879052606481018690526084810185905290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063d5f84f929060a40160006040518083038186803b158015611aeb57600080fd5b505af4158015611aff573d6000803e3d6000fd5b50505050505050505050565b6000611b15613874565b604051631ec9f93360e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90631ec9f9339061133990849086906004016149b6565b600080516020614d6f833981519152611b69816138f1565b6000611b73613874565b6040516365932ea960e01b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__906365932ea99061143490849087906004016149cd565b600080611bba613874565b905061183281600301546001600160a01b031690565b600080516020614caf833981519152611be9813361284c565b158015611bfe5750611bfc60003361284c565b155b15611c1e573360405163d51a055b60e01b81526004016113e59190614345565b611c2883836138fe565b50505050565b600080611c39613874565b9050611832816139e6565b6001600160a01b0381163314611c6d5760405163334bd91960e11b815260040160405180910390fd5b611c778282613a03565b505050565b6000611c86613874565b604051632595a71160e11b81526004810182905290915073__$e9a35c3648a907266234705512cce6de89$__90634b2b4e2290602401611890565b600080611ccc613874565b6040516306e03aaf60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__906306e03aaf90611d0a908490889088906004016149db565b602060405180830381865af4158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614b27565b600080611d56613874565b6001600160a01b0385166000908152600e820160209081526040808320878452909152902054909150611511565b600080611d8f613874565b6001600160a01b038416600090815260058201602052604090205490915060ff16611480565b600080611dc0613874565b6000848152602782016020526040902054909150611480565b600080611de4613874565b604051631eea160560e21b81526004810182905265ffffffffffff8516602482015290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90637ba8581490604401602060405180830381865af4158015611e45573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614b44565b6000611e75813361284c565b158015611e8a5750611e8860003361284c565b155b15611eaa573360405163d51a055b60e01b81526004016113e59190614345565b6000611eb4613874565b604051630508c95360e21b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__90631423254c9061143490849087906004016149b6565b600080611efb613874565b90506114808184613a7b565b6000611f12816138f1565b6000611f1c613874565b60405163eeb4f4e960e01b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__9063eeb4f4e99061143490849087906004016149b6565b600080516020614d4f833981519152611f71813361284c565b158015611f865750611f8460003361284c565b155b15611fa6573360405163d51a055b60e01b81526004016113e59190614345565b6000611fb0613874565b60405162e3803b60e61b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__906338e00ec0906115af90849088908890600401614ade565b600080516020614d6f833981519152612006813361284c565b15801561201b575061201960003361284c565b155b1561203b573360405163d51a055b60e01b81526004016113e59190614345565b6000612045613874565b6040516378cb5ca160e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063f196b9429061143490849087906004016149cd565b60008061208c613874565b604051633355d9f360e21b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063cd5767cc906120c890849087906004016149b6565b602060405180830381865af41580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614b27565b6000612113613874565b60405162d34ec360e81b815290915073__$e9a35c3648a907266234705512cce6de89$__9063d34ec3009061133990849086906004016149b6565b606061218a60408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b905090565b60008061219a613874565b604051631bd0115f60e21b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90636f40457c906121d690849087906004016149b6565b602060405180830381865af41580156121f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614a0a565b61221f613abd565b61222882613b64565b6122328282613b7c565b5050565b600080612241613874565b905061183281601d015490565b60006122586138cd565b805490915060ff600160401b82041615906001600160401b031660008115801561227f5750825b90506000826001600160401b0316600114801561229b5750303b155b9050811580156122a9575080155b156122c75760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156122f057845460ff60401b1916600160401b1785555b6122f8613c30565b612300613c30565b73__$c02bbae92d8a2a538783799e763bbe1363$__63cbe069c3612322613874565b896040518363ffffffff1660e01b8152600401612340929190614b5d565b60006040518083038186803b15801561235857600080fd5b505af415801561236c573d6000803e3d6000fd5b5050875161237e9250600091506138fe565b5061239b600080516020614d0f83398151915287604001516138fe565b506123b8600080516020614d4f83398151915287602001516138fe565b506123d5600080516020614caf83398151915287608001516138fe565b506123f2600080516020614d6f83398151915287606001516138fe565b5061240f600080516020614d8f8339815191528760c001516138fe565b5061242c600080516020614daf8339815191528760e001516138fe565b5061244a600080516020614dcf8339815191528761010001516138fe565b50831561146057845460ff60401b19168555604051600080516020614cef8339815191529061247b90600190614aca565b60405180910390a150505050505050565b6000612496613c38565b50600080516020614d2f83398151915290565b600080516020614d8f8339815191526124c2813361284c565b1580156124d757506124d560003361284c565b155b156124f7573360405163d51a055b60e01b81526004016113e59190614345565b6000612501613874565b604051630314df5360e51b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063629bea609061143490849087906004016149b6565b600080516020614daf833981519152612555816138f1565b600061255f613874565b60405163c4d3a6d160e01b8152600481018290526001600160a01b0387166024820152604481018690526064810185905290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063c4d3a6d19060840160006040518083038186803b1580156125ca57600080fd5b505af41580156125de573d6000803e3d6000fd5b505050505050505050565b6000806125f4613874565b6001600160a01b038416600090815260188201602052604090205490915015611480565b600080612623613874565b905061183281600a015490565b60008061263b613874565b9050611832816012015490565b600080612653613874565b604051630ed511cf60e41b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063ed511cf0906114d0908490889088906004016149db565b60008061269c613874565b9050611832816024015490565b6000606080600080600060606126bd613c81565b959d949c50929a50909850965094509092509050565b6000806126de613874565b6001600160a01b0384166000908152602582016020526040902054909150611480565b60008061270c613874565b600085815260268201602090815260408083206001600160a01b0388168452909152902054909150611511565b600080612744613874565b6001600160a01b0385166000908152600f820160209081526040808320878452909152902054909150611511565b600080516020614d8f83398151915261278b813361284c565b1580156127a0575061279e60003361284c565b155b156127c0573360405163d51a055b60e01b81526004016113e59190614345565b60006127ca613874565b6040516342c1f73b60e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90638583ee769061143490849087906004016149b6565b600080612811613874565b6001600160a01b0386166000908152601082016020908152604080832088845282528083208784529091529020549091505b95945050505050565b6000806128576139c2565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600061218a613d34565b6000612896613874565b60405163811ac74560e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063811ac745906128d490849087908790600401614b08565b60006040518083038186803b1580156128ec57600080fd5b505af4158015612900573d6000803e3d6000fd5b50505050611c28600080516020614d4f833981519152836138fe565b600080612927613874565b6001015492915050565b600080516020614d6f83398151915261294a813361284c565b15801561295f575061295d60003361284c565b155b1561297f573360405163d51a055b60e01b81526004016113e59190614345565b6000612989613874565b6040516333a6b8b960e21b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063ce9ae2e49061143490849087906004016149cd565b6000806129d0613874565b60405163bccaa93760e01b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063bccaa937906121d690849087906004016149b6565b600080516020614d8f833981519152612a25813361284c565b158015612a3a5750612a3860003361284c565b155b15612a5a573360405163d51a055b60e01b81526004016113e59190614345565b6000612a64613874565b604051636b1df62b60e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063d63bec569061143490849087906004016149b6565b600080612aab613874565b604051634da5c9cb60e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90634da5c9cb906120c890849087906004016149b6565b600080516020614dcf833981519152612b00813361284c565b158015612b155750612b1360003361284c565b155b15612b35573360405163d51a055b60e01b81526004016113e59190614345565b6000612b3f613874565b60405163155dfbd160e31b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063aaefde88906115af90849088908890600401614bf4565b600080516020614dcf833981519152612b96813361284c565b158015612bab5750612ba960003361284c565b155b15612bcb573360405163d51a055b60e01b81526004016113e59190614345565b6000612bd5613874565b604051631687b33d60e11b8152600481018290526001600160d01b038516602482015290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90632d0f667a90604401611434565b6000612c29613874565b6040516316ebf8ed60e31b81526004810182905290915073__$e9a35c3648a907266234705512cce6de89$__9063b75fc76890602401611890565b600080612c6f613874565b604051637d04e77360e11b815290915073__$e9a35c3648a907266234705512cce6de89$__9063fa09cee6906120c890849087906004016149b6565b600080612cb6613874565b9050611832816013015490565b6000612ccf813361284c565b158015612ce45750612ce260003361284c565b155b15612d04573360405163d51a055b60e01b81526004016113e59190614345565b6000612d0e613874565b6040516302c1b64d60e61b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__9063b06d93409061143490849087906004016149b6565b600080612d55613874565b6000848152600c8201602052604090205490915060ff16611480565b6000612d7b613874565b604051631e6f4ebb60e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90631e6f4ebb9061133990849086906004016149b6565b600080612dc2613874565b9050611832816009015490565b600080516020614daf833981519152612de7816138f1565b6000612df1613874565b6040516322cdeee160e21b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90638b37bb84906115af908490889088906004016149db565b6000612e39613874565b604051635ece830160e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90635ece8301906115af908490889088908890600401614c16565b600080516020614dcf833981519152612e92813361284c565b158015612ea75750612ea560003361284c565b155b15612ec7573360405163d51a055b60e01b81526004016113e59190614345565b6000612ed1613874565b604051630b90215160e41b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063b90215109061143490849087906004016149cd565b600080612f18613874565b60405163042d3f5760e31b815290915073__$e9a35c3648a907266234705512cce6de89$__90632169fab890611d0a908490889088906004016149db565b600080612f61613874565b6001600160a01b0384166000908152602382016020526040902054909150611480565b6000612f8f816138f1565b6000612f99613874565b60405163b17b7ba960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063b17b7ba99061143490849087906004016149b6565b6000612fdf613874565b60405163fda2e13d60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063fda2e13d906115af908490889088908890600401614c16565b60008061302a613874565b9050611832816001015490565b6060600080613044613874565b90506116748185613d3e565b600061305a613874565b60405163b8fee4e960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063b8fee4e99061309690849086906004016149b6565b60006040518083038186803b1580156130ae57600080fd5b505af41580156130c2573d6000803e3d6000fd5b50505050611c77600080516020614d4f83398151915283613a03565b6000806130e9613874565b60405163b9e5461f60e01b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__9063b9e5461f906121d69084908790600401614c4d565b600080516020614d4f83398151915261313e813361284c565b158015613153575061315160003361284c565b155b15613173573360405163d51a055b60e01b81526004016113e59190614345565b600061317d613874565b604051631b7d2e2960e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__90636df4b8a4906115af90849088908890600401614ade565b6000806131c6613874565b6001600160a01b0384166000908152600d82016020526040902054909150611480565b6000606060006131f7613874565b604051632087506960e01b8152600481018290526001600160a01b038716602482015265ffffffffffff8616604482015290915073__$901fd247df5753f09c52f83eba7a2cf8d4$__90632087506990606401600060405180830381865af4158015613267573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261328f9190810190614a40565b92509250509250929050565b60006132a5613874565b60405163ac1f6b1b60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063ac1f6b1b9061133990849086906004016149b6565b600080516020614d6f8339815191526132fa813361284c565b15801561330f575061330d60003361284c565b155b1561332f573360405163d51a055b60e01b81526004016113e59190614345565b6000613339613874565b604051637480d0d360e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063e901a1a69061143490849087906004016149cd565b600080516020614caf83398151915261338e813361284c565b1580156133a357506133a160003361284c565b155b156133c3573360405163d51a055b60e01b81526004016113e59190614345565b611c288383613a03565b600080516020614d6f8339815191526133e5816138f1565b60006133ef613874565b6040516308a639bd60e41b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__90638a639bd0906114349084908790600401614c4d565b600080516020614caf833981519152613444813361284c565b158015613459575061345760003361284c565b155b15613479573360405163d51a055b60e01b81526004016113e59190614345565b6000613483613874565b60405163095b4a6f60e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063256d29bc906134bf90849087906004016149b6565b60006040518083038186803b1580156134d757600080fd5b505af41580156134eb573d6000803e3d6000fd5b50505050611c28600080516020614d4f83398151915284613a03565b600080613512613874565b905061183281600201546001600160a01b031690565b6000613532613874565b604051631fd9d5b960e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90633fb3ab729061133990849086906004016149b6565b600080613579613874565b604051634451d15560e11b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__906388a3a2aa906135b7908490889088906004016149db565b602060405180830381865af41580156135d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614b44565b600080613603613874565b6040516309b8e7b160e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90631371cf62906114d0908490889088906004016149db565b6060600061364d613874565b90506114808184613dcf565b600080516020614d0f833981519152613672813361284c565b158015613687575061368560003361284c565b155b156136a7573360405163d51a055b60e01b81526004016113e59190614345565b60006136b1613874565b6040516339c22f0960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__906339c22f099061143490849087906004016149cd565b6000806136f8613874565b604051634fbc36c560e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90634fbc36c5906114d0908490889088906004016149db565b600080613741613874565b60405163ce7da28160e01b815290915073__$e9a35c3648a907266234705512cce6de89$__9063ce7da28190611d0a908490889088906004016149db565b606060008061378c613874565b90506116748185613e48565b600080516020614d8f8339815191526137b1813361284c565b1580156137c657506137c460003361284c565b155b156137e6573360405163d51a055b60e01b81526004016113e59190614345565b60006137f0613874565b604051636071944f60e01b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90636071944f9061143490849087906004016149b6565b600080613837613874565b90506114808184613ed7565b60008061384e613874565b6001600160a01b038416600090815260068201602052604090205490915060ff16611480565b7f273c9387b78d9b22e6f3371bb3aa3a918f53507e8cacc54e4831933cbb84410090565b6001600160a01b0381166000908152601f8301602052604081206138bb90613ef6565b6001600160a01b031615159392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6138fb8133613f3d565b50565b6000806139096139c2565b9050613915848461284c565b613995576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561394b3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061139e565b600091505061139e565b6001600160a01b038116600090815260178301602052604081206138bb90613ef6565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b60006139f482601101613f76565b6001600160d01b031692915050565b600080613a0e6139c2565b9050613a1a848461284c565b15613995576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061139e565b600082600b016000836003811115613a9557613a95614858565b6003811115613aa657613aa6614858565b815260200190815260200160002054905092915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613b4457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613b38600080516020614d2f833981519152546001600160a01b031690565b6001600160a01b031614155b15613b625760405163703e46dd60e11b815260040160405180910390fd5b565b600080516020614d0f833981519152612232816138f1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bd6575060408051601f3d908101601f19168201909252613bd391810190614b44565b60015b613bf55781604051634c9c8ce360e01b81526004016113e59190614345565b600080516020614d2f8339815191528114613c2657604051632a87526960e21b8152600481018290526024016113e5565b611c778383613fa6565b613b62613ffc565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614613b625760405163703e46dd60e11b815260040160405180910390fd5b60006060806000806000606060405180604001604052806012815260200171159950995d1d195c94185cdcdc1bdc9d158d60721b815250604051806040016040528060018152602001603160f81b81525046306000801b60006001600160401b03811115613cf157613cf1614359565b604051908082528060200260200182016040528015613d1a578160200160208202803683370190505b50600f60f81b9d959c50939a509198509650945092509050565b600061218a614021565b6001600160a01b038082166000908152602184016020908152604080832060228701835281842054815483518186028101860190945280845260609692949190921692918491830182828015613dbd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d9f575b50505050509150915091509250929050565b6001600160a01b0381166000908152601983016020908152604091829020805483518184028101840190945280845260609392830182828015613e3b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e1d575b5050505050905092915050565b6001600160a01b038082166000908152601b840160209081526040808320601c8701835281842054815483518186028101860190945280845260609692949190921692918491830182828015613dbd576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311613d9f5750505050509150915091509250929050565b6001600160a01b0381166000908152601e8301602052604081206138bb905b80546000908015613f3457613f1e83613f10600184614c71565b600091825260209091200190565b54600160601b90046001600160a01b0316611480565b60009392505050565b613f47828261284c565b6122325760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016113e5565b80546000908015613f3457613f9083613f10600184614c71565b54600160301b90046001600160d01b0316611480565b613faf8261402c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613ff457611c778282614088565b6122326140f5565b614004614114565b613b6257604051631afcd79f60e31b815260040160405180910390fd5b600061218a4361412e565b806001600160a01b03163b6000036140595780604051634c9c8ce360e01b81526004016113e59190614345565b600080516020614d2f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516140a59190614c92565b600060405180830381855af49150503d80600081146140e0576040519150601f19603f3d011682016040523d82523d6000602084013e6140e5565b606091505b5091509150612843858383614165565b3415613b625760405163b398979f60e01b815260040160405180910390fd5b600061411e6138cd565b54600160401b900460ff16919050565b600065ffffffffffff821115614161576040516306dfcc6560e41b815260306004820152602481018390526044016113e5565b5090565b60608261417a57614175826141b8565b611480565b815115801561419157506001600160a01b0384163b155b156141b15783604051639996b31560e01b81526004016113e59190614345565b5080611480565b8051156141c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b03811681146138fb57600080fd5b8035614201816141e1565b919050565b60006020828403121561421857600080fd5b8135611480816141e1565b60006020828403121561423557600080fd5b81356001600160e01b03198116811461148057600080fd5b60006020828403121561425f57600080fd5b5035919050565b6000806040838503121561427957600080fd5b8235614284816141e1565b946020939093013593505050565b80356004811061420157600080fd5b600080604083850312156142b457600080fd5b823591506142c460208401614292565b90509250929050565b60005b838110156142e85781810151838201526020016142d0565b50506000910152565b600081518084526143098160208601602086016142cd565b601f01601f19169290920160200192915050565b821515815260406020820152600061151160408301846142f1565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561439257614392614359565b60405290565b604051601f8201601f191681016001600160401b03811182821017156143c0576143c0614359565b604052919050565b60006001600160401b038211156143e1576143e1614359565b50601f01601f191660200190565b60006144026143fd846143c8565b614398565b905082815283838301111561441657600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561444057600080fd5b823561444b816141e1565b915060208301356001600160401b0381111561446657600080fd5b8301601f8101851361447757600080fd5b614486858235602084016143ef565b9150509250929050565b600080604083850312156144a357600080fd5b8235915060208301356144b5816141e1565b809150509250929050565b600080600080608085870312156144d657600080fd5b84356144e1816141e1565b966020860135965060408601359560600135945092505050565b803565ffffffffffff8116811461420157600080fd5b60006020828403121561452357600080fd5b611480826144fb565b60006020828403121561453e57600080fd5b61148082614292565b60208152600061148060208301846142f1565b600082601f83011261456b57600080fd5b611480838335602085016143ef565b6000806040838503121561458d57600080fd5b8235614598816141e1565b915060208301356001600160401b038111156145b357600080fd5b6144868582860161455a565b600061014082840312156145d257600080fd5b6145da61436f565b90506145e5826141f6565b81526145f3602083016141f6565b6020820152614604604083016141f6565b6040820152614615606083016141f6565b6060820152614626608083016141f6565b608082015261463760a083016141f6565b60a082015261464860c083016141f6565b60c082015261465960e083016141f6565b60e082015261010061466c8184016141f6565b9082015261012061467e8382016141f6565b9082015292915050565b60008082840361028081121561469d57600080fd5b610140808212156146ad57600080fd5b6146b561436f565b91506146c0856141f6565b82526146ce602086016141f6565b60208301526146df604086016141f6565b6040830152606085013560608301526080850135608083015260a085013560a083015260c085013560c083015260e085013560e083015261010080860135818401525061012080860135818401525081935061473d868287016145bf565b925050509250929050565b60008060006060848603121561475d57600080fd5b8335614768816141e1565b95602085013595506040909401359392505050565b60ff60f81b881681526000602060e08184015261479d60e084018a6142f1565b83810360408501526147af818a6142f1565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015614801578351835292840192918401916001016147e5565b50909c9b505050505050505050505050565b6000806040838503121561482657600080fd5b61428483614292565b60006020828403121561484157600080fd5b81356001600160d01b038116811461148057600080fd5b634e487b7160e01b600052602160045260246000fd5b6004811061487e5761487e614858565b9052565b6020810161139e828461486e565b6000806000606084860312156148a557600080fd5b83356148b0816141e1565b92506020840135915060408401356001600160401b038111156148d257600080fd5b6148de8682870161455a565b9150509250925092565b600081518084526020808501945080840160005b838110156149215781516001600160a01b0316875295820195908201906001016148fc565b509495945050505050565b60408152600061493f60408301856148e8565b905060018060a01b03831660208301529392505050565b60006020828403121561496857600080fd5b81356006811061148057600080fd5b6000806040838503121561498a57600080fd5b8235614995816141e1565b91506142c4602084016144fb565b60208152600061148060208301846148e8565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b8051801515811461420157600080fd5b600060208284031215614a1c57600080fd5b611480826149fa565b8381526020810183905260608101611511604083018461486e565b60008060408385031215614a5357600080fd5b614a5c836149fa565b60208401519092506001600160401b03811115614a7857600080fd5b8301601f81018513614a8957600080fd5b8051614a976143fd826143c8565b818152866020838501011115614aac57600080fd5b614abd8260208301602086016142cd565b8093505050509250929050565b6001600160401b0391909116815260200190565b8381526001600160a01b0383166020820152606060408201819052600090612843908301846142f1565b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215614b3957600080fd5b8151611480816141e1565b600060208284031215614b5657600080fd5b5051919050565b600061016082019050838252614b77602083018451614338565b6020830151614b896040840182614338565b506040830151614b9c6060840182614338565b5060608301516080830152608083015160a083015260a083015160c083015260c083015160e083015260e083015161010081818501528085015191505061012081818501528085015161014085015250509392505050565b83815260608101614c08602083018561486e565b826040830152949350505050565b84815260018060a01b0384166020820152826040820152608060608201526000614c4360808301846142f1565b9695505050505050565b8281526040810160068310614c6457614c64614858565b8260208301529392505050565b8181038181111561139e57634e487b7160e01b600052601160045260246000fd5b60008251614ca48184602087016142cd565b919091019291505056fea2328fc90c90feb8f254e41caa67a90952094a7c9c879c5eb4f2088aaecb4ae8ac58be8a321c2206f40fa040e0bfbe81fe4f1915b764a1a014733153b88bdbc4c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca4ce4aad7fca001529f4aae69bf669c4020e0aaa65ff85dc9f7b13c20e01624adfc0438b5754beb343462ff330f73266ff7457fdf879dfb68c958ccbe15765f38619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a8593847a64af02e2c08b9075e3efde9fd32eb3ff59614cee8a349147abaf4870871b548319d0d53ee45b68fe2655a151a3b31b6371a6e2c04597200a2ca54474a2646970667358221220fdb47f191f4c2c60a81630a80b402297daebb2c8fddfc2e5e61a6c6312f9c47964736f6c63430008140033",
"deployedBytecode": "0x6080604052600436106104ed5760003560e01c806270f93d146104f257806301ffc9a71461051457806304e2a79a1461054957806304e7e0b914610579578063080abb4c14610599578063081bc0ba146105b957806308b76b3a146105db5780630e668aac146105fb5780630f73927a1461061b578063110a8308146106495780631332de461461066957806313ebae2a1461068957806314887c58146106ab57806315b75cf0146106cb5780631acebfbe146106e05780631ee7632314610702578063248a9ca31461072257806326b320ab146107425780632839cc4a146107625780632be4d14d146107825780632d01a9b4146107a25780632d92dcdc146107c25780632f2ff15d146107d7578063315b8bd0146107f757806336568abe1461080c57806336db28b31461082c57806338d8d688146108415780633910d657146108615780633af32abf146108815780633bf451a9146108a15780633c8c8f79146108c15780633d47fe94146108e15780633e420ce31461090157806340a6fc0b14610921578063451e100d14610941578063453b8b0714610961578063467b99b61461098157806349599712146109a15780634bf5d7e9146109c15780634e540780146109e35780634f1ef28614610a035780634f69de0814610a1657806352ba35c414610a2b57806352d1902d14610a4b578063537df3b614610a6057806354fd4d5014610a80578063570618e114610aaa5780635801b70f14610acc5780635a1dcf2c14610aec5780635ce3309314610b0c578063664d6e9e14610b215780636e6a304c14610b365780637fd4f54f14610b5657806384b0196e14610b6b578063856868ec14610b9357806386fc460614610bb35780638919b6e514610bd35780638ab1d68114610bf35780638d38b50f14610c1357806391d1485414610c3357806391ddadf414610c53578063943e710014610c7f5780639687f51114610c9f57806397d8886814610cb4578063981e766214610cd4578063989f5fd514610cf65780639b19251a14610d165780639b4e735f14610d365780639f14e0e214610d56578063a217fddf14610d76578063a26596de14610d8b578063a4d3180514610dab578063a64ad59514610dc0578063a9c1f2f114610de0578063ad3cb1cc14610df5578063ae0b8da814610e26578063b292864a14610e46578063b48a963414610e73578063b5dadb1714610e93578063b7af069014610ea8578063b93501a514610ec8578063bb004e9314610ee8578063bc6237ff14610f08578063c107e0d114610f28578063c60ef11d14610f48578063c791e93714610f68578063c817dcec14610f88578063ca3f511f14610f9d578063cb156fb014610fcb578063ccc3ced314610feb578063ce371f061461100b578063d0023fcb1461102b578063d0ebb0ee1461104b578063d1143f3a1461106b578063d2a98f8b1461108b578063d547741f146110ab578063d6cfbe1b146110cb578063dc8debb0146110eb578063dd0c704b1461110b578063e0b23db414611120578063e0e4879514611140578063e18c10d314611162578063e432504414611182578063e60fd76c146111a2578063ebd695c3146111cf578063f4079c1f146111ef578063f72c0d8b1461120f578063f9561f6714611231578063f9cfdfcc14611251578063f9f92be414611271578063fa7626d014611291578063fd8ab482146112b3578063fe575a87146112d3575b600080fd5b3480156104fe57600080fd5b5061051261050d366004614206565b6112f3565b005b34801561052057600080fd5b5061053461052f366004614223565b61136d565b60405190151581526020015b60405180910390f35b34801561055557600080fd5b5061056b600080516020614dcf83398151915281565b604051908152602001610540565b34801561058557600080fd5b5061051261059436600461424d565b6113a4565b3480156105a557600080fd5b506105346105b4366004614206565b611469565b3480156105c557600080fd5b5061056b600080516020614caf83398151915281565b3480156105e757600080fd5b506105346105f6366004614266565b611487565b34801561060757600080fd5b506105126106163660046142a1565b611519565b34801561062757600080fd5b5061063b610636366004614206565b6115e5565b60405161054092919061431d565b34801561065557600080fd5b50610512610664366004614206565b61167e565b34801561067557600080fd5b50610512610684366004614206565b6117cb565b34801561069557600080fd5b5061069e611811565b6040516105409190614345565b3480156106b757600080fd5b506105346106c6366004614206565b611838565b3480156106d757600080fd5b5061051261184f565b3480156106ec57600080fd5b5061056b600080516020614d4f83398151915281565b34801561070e57600080fd5b5061051261071d36600461442d565b6118c3565b34801561072e57600080fd5b5061056b61073d36600461424d565b611959565b34801561074e57600080fd5b5061051261075d366004614490565b611979565b34801561076e57600080fd5b5061051261077d3660046144c0565b611a57565b34801561078e57600080fd5b5061051261079d366004614206565b611b0b565b3480156107ae57600080fd5b506105126107bd36600461424d565b611b51565b3480156107ce57600080fd5b5061069e611baf565b3480156107e357600080fd5b506105126107f2366004614490565b611bd0565b34801561080357600080fd5b5061056b611c2e565b34801561081857600080fd5b50610512610827366004614490565b611c44565b34801561083857600080fd5b50610512611c7c565b34801561084d57600080fd5b5061069e61085c366004614266565b611cc1565b34801561086d57600080fd5b5061056b61087c366004614266565b611d4b565b34801561088d57600080fd5b5061053461089c366004614206565b611d84565b3480156108ad57600080fd5b5061056b6108bc36600461424d565b611db5565b3480156108cd57600080fd5b5061056b6108dc366004614511565b611dd9565b3480156108ed57600080fd5b506105126108fc366004614206565b611e69565b34801561090d57600080fd5b5061056b61091c36600461452c565b611ef0565b34801561092d57600080fd5b5061051261093c366004614206565b611f07565b34801561094d57600080fd5b5061051261095c36600461442d565b611f58565b34801561096d57600080fd5b5061051261097c36600461424d565b611fed565b34801561098d57600080fd5b5061069e61099c366004614206565b612081565b3480156109ad57600080fd5b506105126109bc366004614206565b612109565b3480156109cd57600080fd5b506109d661214e565b6040516105409190614547565b3480156109ef57600080fd5b506105346109fe366004614206565b61218f565b610512610a1136600461457a565b612217565b348015610a2257600080fd5b5061056b612236565b348015610a3757600080fd5b50610512610a46366004614688565b61224e565b348015610a5757600080fd5b5061056b61248c565b348015610a6c57600080fd5b50610512610a7b366004614206565b6124a9565b348015610a8c57600080fd5b506040805180820190915260018152600d60fa1b60208201526109d6565b348015610ab657600080fd5b5061056b600080516020614d8f83398151915281565b348015610ad857600080fd5b50610512610ae7366004614748565b61253d565b348015610af857600080fd5b50610534610b07366004614206565b6125e9565b348015610b1857600080fd5b5061056b612618565b348015610b2d57600080fd5b5061056b612630565b348015610b4257600080fd5b50610534610b51366004614266565b612648565b348015610b6257600080fd5b5061056b612691565b348015610b7757600080fd5b50610b806126a9565b604051610540979695949392919061477d565b348015610b9f57600080fd5b5061056b610bae366004614206565b6126d3565b348015610bbf57600080fd5b5061056b610bce366004614490565b612701565b348015610bdf57600080fd5b5061056b610bee366004614266565b612739565b348015610bff57600080fd5b50610512610c0e366004614206565b612772565b348015610c1f57600080fd5b5061056b610c2e366004614748565b612806565b348015610c3f57600080fd5b50610534610c4e366004614490565b61284c565b348015610c5f57600080fd5b50610c68612882565b60405165ffffffffffff9091168152602001610540565b348015610c8b57600080fd5b50610512610c9a366004614490565b61288c565b348015610cab57600080fd5b5061056b61291c565b348015610cc057600080fd5b50610512610ccf36600461424d565b612931565b348015610ce057600080fd5b5061056b600080516020614ccf83398151915281565b348015610d0257600080fd5b50610534610d11366004614206565b6129c5565b348015610d2257600080fd5b50610512610d31366004614206565b612a0c565b348015610d4257600080fd5b5061069e610d51366004614206565b612aa0565b348015610d6257600080fd5b50610512610d71366004614813565b612ae7565b348015610d8257600080fd5b5061056b600081565b348015610d9757600080fd5b50610512610da636600461482f565b612b7d565b348015610db757600080fd5b50610512612c1f565b348015610dcc57600080fd5b5061069e610ddb366004614206565b612c64565b348015610dec57600080fd5b5061056b612cab565b348015610e0157600080fd5b506109d6604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610e3257600080fd5b50610512610e41366004614206565b612cc3565b348015610e5257600080fd5b50610e66610e6136600461424d565b612d4a565b6040516105409190614882565b348015610e7f57600080fd5b50610512610e8e366004614206565b612d71565b348015610e9f57600080fd5b5061056b612db7565b348015610eb457600080fd5b50610512610ec3366004614266565b612dcf565b348015610ed457600080fd5b50610512610ee3366004614890565b612e2f565b348015610ef457600080fd5b50610512610f0336600461424d565b612e79565b348015610f1457600080fd5b5061069e610f23366004614266565b612f0d565b348015610f3457600080fd5b5061056b610f43366004614206565b612f56565b348015610f5457600080fd5b50610512610f63366004614206565b612f84565b348015610f7457600080fd5b50610512610f83366004614890565b612fd5565b348015610f9457600080fd5b5061056b61301f565b348015610fa957600080fd5b50610fbd610fb8366004614206565b613037565b60405161054092919061492c565b348015610fd757600080fd5b50610512610fe6366004614206565b613050565b348015610ff757600080fd5b50610534611006366004614956565b6130de565b34801561101757600080fd5b5061051261102636600461442d565b613125565b34801561103757600080fd5b5061056b611046366004614206565b6131bb565b34801561105757600080fd5b5061063b611066366004614977565b6131e9565b34801561107757600080fd5b50610512611086366004614206565b61329b565b34801561109757600080fd5b506105126110a636600461424d565b6132e1565b3480156110b757600080fd5b506105126110c6366004614490565b613375565b3480156110d757600080fd5b506105126110e6366004614956565b6133cd565b3480156110f757600080fd5b50610512611106366004614206565b61342b565b34801561111757600080fd5b5061069e613507565b34801561112c57600080fd5b5061051261113b366004614206565b613528565b34801561114c57600080fd5b5061056b600080516020614daf83398151915281565b34801561116e57600080fd5b5061056b61117d366004614266565b61356e565b34801561118e57600080fd5b5061053461119d366004614266565b6135f8565b3480156111ae57600080fd5b506111c26111bd366004614206565b613641565b60405161054091906149a3565b3480156111db57600080fd5b506105126111ea36600461424d565b613659565b3480156111fb57600080fd5b5061053461120a366004614266565b6136ed565b34801561121b57600080fd5b5061056b600080516020614d0f83398151915281565b34801561123d57600080fd5b5061069e61124c366004614266565b613736565b34801561125d57600080fd5b50610fbd61126c366004614206565b61377f565b34801561127d57600080fd5b5061051261128c366004614206565b613798565b34801561129d57600080fd5b5061056b600080516020614d6f83398151915281565b3480156112bf57600080fd5b506105346112ce366004614206565b61382c565b3480156112df57600080fd5b506105346112ee366004614206565b613843565b60006112fd613874565b6040516326c753e560e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90634d8ea7ca9061133990849086906004016149b6565b60006040518083038186803b15801561135157600080fd5b505af4158015611365573d6000803e3d6000fd5b505050505050565b60006001600160e01b03198216637965db0b60e01b148061139e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006113b0813361284c565b1580156113c557506113c360003361284c565b155b156113ee573360405163d51a055b60e01b81526004016113e59190614345565b60405180910390fd5b60006113f8613874565b6040516392c8c8c360e01b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__906392c8c8c39061143490849087906004016149cd565b60006040518083038186803b15801561144c57600080fd5b505af4158015611460573d6000803e3d6000fd5b50505050505050565b600080611474613874565b90506114808184613898565b9392505050565b600080611492613874565b60405163106a839360e11b815290915073__$e9a35c3648a907266234705512cce6de89$__906320d50726906114d0908490889088906004016149db565b602060405180830381865af41580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614a0a565b949350505050565b600080516020614dcf833981519152611532813361284c565b158015611547575061154560003361284c565b155b15611567573360405163d51a055b60e01b81526004016113e59190614345565b6000611571613874565b604051637e3e4e2160e01b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90637e3e4e21906115af90849088908890600401614a25565b60006040518083038186803b1580156115c757600080fd5b505af41580156115db573d6000803e3d6000fd5b5050505050505050565b6000606060006115f3613874565b604051632fda428960e01b815290915073__$901fd247df5753f09c52f83eba7a2cf8d4$__90632fda42899061162f90849088906004016149b6565b600060405180830381865af415801561164c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116749190810190614a40565b9250925050915091565b6004600061168a6138cd565b8054909150600160401b900460ff16806116b1575080546001600160401b03808416911610155b156116cf5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b178155600080516020614d0f833981519152611706816138f1565b6001600160a01b03841661177b5760405162461bcd60e51b815260206004820152603660248201527f566542657474657250617373706f727456343a207265736574207369676e616c604482015275657220697320746865207a65726f206164647265737360501b60648201526084016113e5565b611793600080516020614ccf833981519152856138fe565b5050805460ff60401b19168155604051600080516020614cef833981519152906117be908490614aca565b60405180910390a1505050565b60006117d5613874565b6040516339b5144d60e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063736a289a9061133990849086906004016149b6565b60008061181c613874565b905061183281600401546001600160a01b031690565b91505090565b600080611843613874565b9050611480818461399f565b6000611859613874565b604051637b2b9bc360e11b81526004810182905290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063f6573786906024015b60006040518083038186803b1580156118a857600080fd5b505af41580156118bc573d6000803e3d6000fd5b5050505050565b600080516020614ccf8339815191526118dc813361284c565b1580156118f157506118ef60003361284c565b155b15611911573360405163d51a055b60e01b81526004016113e59190614345565b600061191b613874565b604051631eed6cbf60e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__90637bb5b2fc906115af90849088908890600401614ade565b6000806119646139c2565b60009384526020525050604090206001015490565b600080516020614caf833981519152611992813361284c565b1580156119a757506119a560003361284c565b155b156119c7573360405163d51a055b60e01b81526004016113e59190614345565b60006119d1613874565b604051630403991f60e51b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063807323e090611a0f90849088908890600401614b08565b60006040518083038186803b158015611a2757600080fd5b505af4158015611a3b573d6000803e3d6000fd5b505050506118bc600080516020614d4f833981519152846138fe565b600080516020614daf833981519152611a6f816138f1565b6000611a79613874565b604051636afc27c960e11b8152600481018290526001600160a01b038816602482015260448101879052606481018690526084810185905290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063d5f84f929060a40160006040518083038186803b158015611aeb57600080fd5b505af4158015611aff573d6000803e3d6000fd5b50505050505050505050565b6000611b15613874565b604051631ec9f93360e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90631ec9f9339061133990849086906004016149b6565b600080516020614d6f833981519152611b69816138f1565b6000611b73613874565b6040516365932ea960e01b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__906365932ea99061143490849087906004016149cd565b600080611bba613874565b905061183281600301546001600160a01b031690565b600080516020614caf833981519152611be9813361284c565b158015611bfe5750611bfc60003361284c565b155b15611c1e573360405163d51a055b60e01b81526004016113e59190614345565b611c2883836138fe565b50505050565b600080611c39613874565b9050611832816139e6565b6001600160a01b0381163314611c6d5760405163334bd91960e11b815260040160405180910390fd5b611c778282613a03565b505050565b6000611c86613874565b604051632595a71160e11b81526004810182905290915073__$e9a35c3648a907266234705512cce6de89$__90634b2b4e2290602401611890565b600080611ccc613874565b6040516306e03aaf60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__906306e03aaf90611d0a908490889088906004016149db565b602060405180830381865af4158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614b27565b600080611d56613874565b6001600160a01b0385166000908152600e820160209081526040808320878452909152902054909150611511565b600080611d8f613874565b6001600160a01b038416600090815260058201602052604090205490915060ff16611480565b600080611dc0613874565b6000848152602782016020526040902054909150611480565b600080611de4613874565b604051631eea160560e21b81526004810182905265ffffffffffff8516602482015290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90637ba8581490604401602060405180830381865af4158015611e45573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614b44565b6000611e75813361284c565b158015611e8a5750611e8860003361284c565b155b15611eaa573360405163d51a055b60e01b81526004016113e59190614345565b6000611eb4613874565b604051630508c95360e21b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__90631423254c9061143490849087906004016149b6565b600080611efb613874565b90506114808184613a7b565b6000611f12816138f1565b6000611f1c613874565b60405163eeb4f4e960e01b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__9063eeb4f4e99061143490849087906004016149b6565b600080516020614d4f833981519152611f71813361284c565b158015611f865750611f8460003361284c565b155b15611fa6573360405163d51a055b60e01b81526004016113e59190614345565b6000611fb0613874565b60405162e3803b60e61b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__906338e00ec0906115af90849088908890600401614ade565b600080516020614d6f833981519152612006813361284c565b15801561201b575061201960003361284c565b155b1561203b573360405163d51a055b60e01b81526004016113e59190614345565b6000612045613874565b6040516378cb5ca160e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063f196b9429061143490849087906004016149cd565b60008061208c613874565b604051633355d9f360e21b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063cd5767cc906120c890849087906004016149b6565b602060405180830381865af41580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614b27565b6000612113613874565b60405162d34ec360e81b815290915073__$e9a35c3648a907266234705512cce6de89$__9063d34ec3009061133990849086906004016149b6565b606061218a60408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b905090565b60008061219a613874565b604051631bd0115f60e21b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90636f40457c906121d690849087906004016149b6565b602060405180830381865af41580156121f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190614a0a565b61221f613abd565b61222882613b64565b6122328282613b7c565b5050565b600080612241613874565b905061183281601d015490565b60006122586138cd565b805490915060ff600160401b82041615906001600160401b031660008115801561227f5750825b90506000826001600160401b0316600114801561229b5750303b155b9050811580156122a9575080155b156122c75760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156122f057845460ff60401b1916600160401b1785555b6122f8613c30565b612300613c30565b73__$c02bbae92d8a2a538783799e763bbe1363$__63cbe069c3612322613874565b896040518363ffffffff1660e01b8152600401612340929190614b5d565b60006040518083038186803b15801561235857600080fd5b505af415801561236c573d6000803e3d6000fd5b5050875161237e9250600091506138fe565b5061239b600080516020614d0f83398151915287604001516138fe565b506123b8600080516020614d4f83398151915287602001516138fe565b506123d5600080516020614caf83398151915287608001516138fe565b506123f2600080516020614d6f83398151915287606001516138fe565b5061240f600080516020614d8f8339815191528760c001516138fe565b5061242c600080516020614daf8339815191528760e001516138fe565b5061244a600080516020614dcf8339815191528761010001516138fe565b50831561146057845460ff60401b19168555604051600080516020614cef8339815191529061247b90600190614aca565b60405180910390a150505050505050565b6000612496613c38565b50600080516020614d2f83398151915290565b600080516020614d8f8339815191526124c2813361284c565b1580156124d757506124d560003361284c565b155b156124f7573360405163d51a055b60e01b81526004016113e59190614345565b6000612501613874565b604051630314df5360e51b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063629bea609061143490849087906004016149b6565b600080516020614daf833981519152612555816138f1565b600061255f613874565b60405163c4d3a6d160e01b8152600481018290526001600160a01b0387166024820152604481018690526064810185905290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063c4d3a6d19060840160006040518083038186803b1580156125ca57600080fd5b505af41580156125de573d6000803e3d6000fd5b505050505050505050565b6000806125f4613874565b6001600160a01b038416600090815260188201602052604090205490915015611480565b600080612623613874565b905061183281600a015490565b60008061263b613874565b9050611832816012015490565b600080612653613874565b604051630ed511cf60e41b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063ed511cf0906114d0908490889088906004016149db565b60008061269c613874565b9050611832816024015490565b6000606080600080600060606126bd613c81565b959d949c50929a50909850965094509092509050565b6000806126de613874565b6001600160a01b0384166000908152602582016020526040902054909150611480565b60008061270c613874565b600085815260268201602090815260408083206001600160a01b0388168452909152902054909150611511565b600080612744613874565b6001600160a01b0385166000908152600f820160209081526040808320878452909152902054909150611511565b600080516020614d8f83398151915261278b813361284c565b1580156127a0575061279e60003361284c565b155b156127c0573360405163d51a055b60e01b81526004016113e59190614345565b60006127ca613874565b6040516342c1f73b60e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90638583ee769061143490849087906004016149b6565b600080612811613874565b6001600160a01b0386166000908152601082016020908152604080832088845282528083208784529091529020549091505b95945050505050565b6000806128576139c2565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600061218a613d34565b6000612896613874565b60405163811ac74560e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063811ac745906128d490849087908790600401614b08565b60006040518083038186803b1580156128ec57600080fd5b505af4158015612900573d6000803e3d6000fd5b50505050611c28600080516020614d4f833981519152836138fe565b600080612927613874565b6001015492915050565b600080516020614d6f83398151915261294a813361284c565b15801561295f575061295d60003361284c565b155b1561297f573360405163d51a055b60e01b81526004016113e59190614345565b6000612989613874565b6040516333a6b8b960e21b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063ce9ae2e49061143490849087906004016149cd565b6000806129d0613874565b60405163bccaa93760e01b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063bccaa937906121d690849087906004016149b6565b600080516020614d8f833981519152612a25813361284c565b158015612a3a5750612a3860003361284c565b155b15612a5a573360405163d51a055b60e01b81526004016113e59190614345565b6000612a64613874565b604051636b1df62b60e11b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__9063d63bec569061143490849087906004016149b6565b600080612aab613874565b604051634da5c9cb60e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90634da5c9cb906120c890849087906004016149b6565b600080516020614dcf833981519152612b00813361284c565b158015612b155750612b1360003361284c565b155b15612b35573360405163d51a055b60e01b81526004016113e59190614345565b6000612b3f613874565b60405163155dfbd160e31b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063aaefde88906115af90849088908890600401614bf4565b600080516020614dcf833981519152612b96813361284c565b158015612bab5750612ba960003361284c565b155b15612bcb573360405163d51a055b60e01b81526004016113e59190614345565b6000612bd5613874565b604051631687b33d60e11b8152600481018290526001600160d01b038516602482015290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90632d0f667a90604401611434565b6000612c29613874565b6040516316ebf8ed60e31b81526004810182905290915073__$e9a35c3648a907266234705512cce6de89$__9063b75fc76890602401611890565b600080612c6f613874565b604051637d04e77360e11b815290915073__$e9a35c3648a907266234705512cce6de89$__9063fa09cee6906120c890849087906004016149b6565b600080612cb6613874565b9050611832816013015490565b6000612ccf813361284c565b158015612ce45750612ce260003361284c565b155b15612d04573360405163d51a055b60e01b81526004016113e59190614345565b6000612d0e613874565b6040516302c1b64d60e61b815290915073__$c02bbae92d8a2a538783799e763bbe1363$__9063b06d93409061143490849087906004016149b6565b600080612d55613874565b6000848152600c8201602052604090205490915060ff16611480565b6000612d7b613874565b604051631e6f4ebb60e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90631e6f4ebb9061133990849086906004016149b6565b600080612dc2613874565b9050611832816009015490565b600080516020614daf833981519152612de7816138f1565b6000612df1613874565b6040516322cdeee160e21b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__90638b37bb84906115af908490889088906004016149db565b6000612e39613874565b604051635ece830160e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90635ece8301906115af908490889088908890600401614c16565b600080516020614dcf833981519152612e92813361284c565b158015612ea75750612ea560003361284c565b155b15612ec7573360405163d51a055b60e01b81526004016113e59190614345565b6000612ed1613874565b604051630b90215160e41b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__9063b90215109061143490849087906004016149cd565b600080612f18613874565b60405163042d3f5760e31b815290915073__$e9a35c3648a907266234705512cce6de89$__90632169fab890611d0a908490889088906004016149db565b600080612f61613874565b6001600160a01b0384166000908152602382016020526040902054909150611480565b6000612f8f816138f1565b6000612f99613874565b60405163b17b7ba960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063b17b7ba99061143490849087906004016149b6565b6000612fdf613874565b60405163fda2e13d60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063fda2e13d906115af908490889088908890600401614c16565b60008061302a613874565b9050611832816001015490565b6060600080613044613874565b90506116748185613d3e565b600061305a613874565b60405163b8fee4e960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063b8fee4e99061309690849086906004016149b6565b60006040518083038186803b1580156130ae57600080fd5b505af41580156130c2573d6000803e3d6000fd5b50505050611c77600080516020614d4f83398151915283613a03565b6000806130e9613874565b60405163b9e5461f60e01b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__9063b9e5461f906121d69084908790600401614c4d565b600080516020614d4f83398151915261313e813361284c565b158015613153575061315160003361284c565b155b15613173573360405163d51a055b60e01b81526004016113e59190614345565b600061317d613874565b604051631b7d2e2960e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__90636df4b8a4906115af90849088908890600401614ade565b6000806131c6613874565b6001600160a01b0384166000908152600d82016020526040902054909150611480565b6000606060006131f7613874565b604051632087506960e01b8152600481018290526001600160a01b038716602482015265ffffffffffff8616604482015290915073__$901fd247df5753f09c52f83eba7a2cf8d4$__90632087506990606401600060405180830381865af4158015613267573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261328f9190810190614a40565b92509250509250929050565b60006132a5613874565b60405163ac1f6b1b60e01b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063ac1f6b1b9061133990849086906004016149b6565b600080516020614d6f8339815191526132fa813361284c565b15801561330f575061330d60003361284c565b155b1561332f573360405163d51a055b60e01b81526004016113e59190614345565b6000613339613874565b604051637480d0d360e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__9063e901a1a69061143490849087906004016149cd565b600080516020614caf83398151915261338e813361284c565b1580156133a357506133a160003361284c565b155b156133c3573360405163d51a055b60e01b81526004016113e59190614345565b611c288383613a03565b600080516020614d6f8339815191526133e5816138f1565b60006133ef613874565b6040516308a639bd60e41b815290915073__$89f87facd1afbbf549e6d193e4078a5ebd$__90638a639bd0906114349084908790600401614c4d565b600080516020614caf833981519152613444813361284c565b158015613459575061345760003361284c565b155b15613479573360405163d51a055b60e01b81526004016113e59190614345565b6000613483613874565b60405163095b4a6f60e21b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__9063256d29bc906134bf90849087906004016149b6565b60006040518083038186803b1580156134d757600080fd5b505af41580156134eb573d6000803e3d6000fd5b50505050611c28600080516020614d4f83398151915284613a03565b600080613512613874565b905061183281600201546001600160a01b031690565b6000613532613874565b604051631fd9d5b960e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90633fb3ab729061133990849086906004016149b6565b600080613579613874565b604051634451d15560e11b815290915073__$05b67a9cd08037e156d99dbcda93ee8343$__906388a3a2aa906135b7908490889088906004016149db565b602060405180830381865af41580156135d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190614b44565b600080613603613874565b6040516309b8e7b160e11b815290915073__$0f025be6f5e12275340178ba0e1ef1c1ae$__90631371cf62906114d0908490889088906004016149db565b6060600061364d613874565b90506114808184613dcf565b600080516020614d0f833981519152613672813361284c565b158015613687575061368560003361284c565b155b156136a7573360405163d51a055b60e01b81526004016113e59190614345565b60006136b1613874565b6040516339c22f0960e01b815290915073__$cca3fc444dc7f8dd8dd08b83cf0efb8dbe$__906339c22f099061143490849087906004016149cd565b6000806136f8613874565b604051634fbc36c560e01b815290915073__$e9a35c3648a907266234705512cce6de89$__90634fbc36c5906114d0908490889088906004016149db565b600080613741613874565b60405163ce7da28160e01b815290915073__$e9a35c3648a907266234705512cce6de89$__9063ce7da28190611d0a908490889088906004016149db565b606060008061378c613874565b90506116748185613e48565b600080516020614d8f8339815191526137b1813361284c565b1580156137c657506137c460003361284c565b155b156137e6573360405163d51a055b60e01b81526004016113e59190614345565b60006137f0613874565b604051636071944f60e01b815290915073__$acaaaeb62fccdd30295d8d4daf59855bfd$__90636071944f9061143490849087906004016149b6565b600080613837613874565b90506114808184613ed7565b60008061384e613874565b6001600160a01b038416600090815260068201602052604090205490915060ff16611480565b7f273c9387b78d9b22e6f3371bb3aa3a918f53507e8cacc54e4831933cbb84410090565b6001600160a01b0381166000908152601f8301602052604081206138bb90613ef6565b6001600160a01b031615159392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6138fb8133613f3d565b50565b6000806139096139c2565b9050613915848461284c565b613995576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561394b3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061139e565b600091505061139e565b6001600160a01b038116600090815260178301602052604081206138bb90613ef6565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b60006139f482601101613f76565b6001600160d01b031692915050565b600080613a0e6139c2565b9050613a1a848461284c565b15613995576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061139e565b600082600b016000836003811115613a9557613a95614858565b6003811115613aa657613aa6614858565b815260200190815260200160002054905092915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613b4457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613b38600080516020614d2f833981519152546001600160a01b031690565b6001600160a01b031614155b15613b625760405163703e46dd60e11b815260040160405180910390fd5b565b600080516020614d0f833981519152612232816138f1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bd6575060408051601f3d908101601f19168201909252613bd391810190614b44565b60015b613bf55781604051634c9c8ce360e01b81526004016113e59190614345565b600080516020614d2f8339815191528114613c2657604051632a87526960e21b8152600481018290526024016113e5565b611c778383613fa6565b613b62613ffc565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614613b625760405163703e46dd60e11b815260040160405180910390fd5b60006060806000806000606060405180604001604052806012815260200171159950995d1d195c94185cdcdc1bdc9d158d60721b815250604051806040016040528060018152602001603160f81b81525046306000801b60006001600160401b03811115613cf157613cf1614359565b604051908082528060200260200182016040528015613d1a578160200160208202803683370190505b50600f60f81b9d959c50939a509198509650945092509050565b600061218a614021565b6001600160a01b038082166000908152602184016020908152604080832060228701835281842054815483518186028101860190945280845260609692949190921692918491830182828015613dbd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d9f575b50505050509150915091509250929050565b6001600160a01b0381166000908152601983016020908152604091829020805483518184028101840190945280845260609392830182828015613e3b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e1d575b5050505050905092915050565b6001600160a01b038082166000908152601b840160209081526040808320601c8701835281842054815483518186028101860190945280845260609692949190921692918491830182828015613dbd576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311613d9f5750505050509150915091509250929050565b6001600160a01b0381166000908152601e8301602052604081206138bb905b80546000908015613f3457613f1e83613f10600184614c71565b600091825260209091200190565b54600160601b90046001600160a01b0316611480565b60009392505050565b613f47828261284c565b6122325760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016113e5565b80546000908015613f3457613f9083613f10600184614c71565b54600160301b90046001600160d01b0316611480565b613faf8261402c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613ff457611c778282614088565b6122326140f5565b614004614114565b613b6257604051631afcd79f60e31b815260040160405180910390fd5b600061218a4361412e565b806001600160a01b03163b6000036140595780604051634c9c8ce360e01b81526004016113e59190614345565b600080516020614d2f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516140a59190614c92565b600060405180830381855af49150503d80600081146140e0576040519150601f19603f3d011682016040523d82523d6000602084013e6140e5565b606091505b5091509150612843858383614165565b3415613b625760405163b398979f60e01b815260040160405180910390fd5b600061411e6138cd565b54600160401b900460ff16919050565b600065ffffffffffff821115614161576040516306dfcc6560e41b815260306004820152602481018390526044016113e5565b5090565b60608261417a57614175826141b8565b611480565b815115801561419157506001600160a01b0384163b155b156141b15783604051639996b31560e01b81526004016113e59190614345565b5080611480565b8051156141c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b03811681146138fb57600080fd5b8035614201816141e1565b919050565b60006020828403121561421857600080fd5b8135611480816141e1565b60006020828403121561423557600080fd5b81356001600160e01b03198116811461148057600080fd5b60006020828403121561425f57600080fd5b5035919050565b6000806040838503121561427957600080fd5b8235614284816141e1565b946020939093013593505050565b80356004811061420157600080fd5b600080604083850312156142b457600080fd5b823591506142c460208401614292565b90509250929050565b60005b838110156142e85781810151838201526020016142d0565b50506000910152565b600081518084526143098160208601602086016142cd565b601f01601f19169290920160200192915050565b821515815260406020820152600061151160408301846142f1565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561439257614392614359565b60405290565b604051601f8201601f191681016001600160401b03811182821017156143c0576143c0614359565b604052919050565b60006001600160401b038211156143e1576143e1614359565b50601f01601f191660200190565b60006144026143fd846143c8565b614398565b905082815283838301111561441657600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561444057600080fd5b823561444b816141e1565b915060208301356001600160401b0381111561446657600080fd5b8301601f8101851361447757600080fd5b614486858235602084016143ef565b9150509250929050565b600080604083850312156144a357600080fd5b8235915060208301356144b5816141e1565b809150509250929050565b600080600080608085870312156144d657600080fd5b84356144e1816141e1565b966020860135965060408601359560600135945092505050565b803565ffffffffffff8116811461420157600080fd5b60006020828403121561452357600080fd5b611480826144fb565b60006020828403121561453e57600080fd5b61148082614292565b60208152600061148060208301846142f1565b600082601f83011261456b57600080fd5b611480838335602085016143ef565b6000806040838503121561458d57600080fd5b8235614598816141e1565b915060208301356001600160401b038111156145b357600080fd5b6144868582860161455a565b600061014082840312156145d257600080fd5b6145da61436f565b90506145e5826141f6565b81526145f3602083016141f6565b6020820152614604604083016141f6565b6040820152614615606083016141f6565b6060820152614626608083016141f6565b608082015261463760a083016141f6565b60a082015261464860c083016141f6565b60c082015261465960e083016141f6565b60e082015261010061466c8184016141f6565b9082015261012061467e8382016141f6565b9082015292915050565b60008082840361028081121561469d57600080fd5b610140808212156146ad57600080fd5b6146b561436f565b91506146c0856141f6565b82526146ce602086016141f6565b60208301526146df604086016141f6565b6040830152606085013560608301526080850135608083015260a085013560a083015260c085013560c083015260e085013560e083015261010080860135818401525061012080860135818401525081935061473d868287016145bf565b925050509250929050565b60008060006060848603121561475d57600080fd5b8335614768816141e1565b95602085013595506040909401359392505050565b60ff60f81b881681526000602060e08184015261479d60e084018a6142f1565b83810360408501526147af818a6142f1565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015614801578351835292840192918401916001016147e5565b50909c9b505050505050505050505050565b6000806040838503121561482657600080fd5b61428483614292565b60006020828403121561484157600080fd5b81356001600160d01b038116811461148057600080fd5b634e487b7160e01b600052602160045260246000fd5b6004811061487e5761487e614858565b9052565b6020810161139e828461486e565b6000806000606084860312156148a557600080fd5b83356148b0816141e1565b92506020840135915060408401356001600160401b038111156148d257600080fd5b6148de8682870161455a565b9150509250925092565b600081518084526020808501945080840160005b838110156149215781516001600160a01b0316875295820195908201906001016148fc565b509495945050505050565b60408152600061493f60408301856148e8565b905060018060a01b03831660208301529392505050565b60006020828403121561496857600080fd5b81356006811061148057600080fd5b6000806040838503121561498a57600080fd5b8235614995816141e1565b91506142c4602084016144fb565b60208152600061148060208301846148e8565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b8051801515811461420157600080fd5b600060208284031215614a1c57600080fd5b611480826149fa565b8381526020810183905260608101611511604083018461486e565b60008060408385031215614a5357600080fd5b614a5c836149fa565b60208401519092506001600160401b03811115614a7857600080fd5b8301601f81018513614a8957600080fd5b8051614a976143fd826143c8565b818152866020838501011115614aac57600080fd5b614abd8260208301602086016142cd565b8093505050509250929050565b6001600160401b0391909116815260200190565b8381526001600160a01b0383166020820152606060408201819052600090612843908301846142f1565b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215614b3957600080fd5b8151611480816141e1565b600060208284031215614b5657600080fd5b5051919050565b600061016082019050838252614b77602083018451614338565b6020830151614b896040840182614338565b506040830151614b9c6060840182614338565b5060608301516080830152608083015160a083015260a083015160c083015260c083015160e083015260e083015161010081818501528085015191505061012081818501528085015161014085015250509392505050565b83815260608101614c08602083018561486e565b826040830152949350505050565b84815260018060a01b0384166020820152826040820152608060608201526000614c4360808301846142f1565b9695505050505050565b8281526040810160068310614c6457614c64614858565b8260208301529392505050565b8181038181111561139e57634e487b7160e01b600052601160045260246000fd5b60008251614ca48184602087016142cd565b919091019291505056fea2328fc90c90feb8f254e41caa67a90952094a7c9c879c5eb4f2088aaecb4ae8ac58be8a321c2206f40fa040e0bfbe81fe4f1915b764a1a014733153b88bdbc4c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca4ce4aad7fca001529f4aae69bf669c4020e0aaa65ff85dc9f7b13c20e01624adfc0438b5754beb343462ff330f73266ff7457fdf879dfb68c958ccbe15765f38619cecd8b9e095ab43867f5b69d492180450fe862e6b50bfbfb24b75dd84c8a8593847a64af02e2c08b9075e3efde9fd32eb3ff59614cee8a349147abaf4870871b548319d0d53ee45b68fe2655a151a3b31b6371a6e2c04597200a2ca54474a2646970667358221220fdb47f191f4c2c60a81630a80b402297daebb2c8fddfc2e5e61a6c6312f9c47964736f6c63430008140033",
"linkReferences": {
"contracts/deprecated/V4/ve-better-passport/libraries/PassportChecksLogicV4.sol": {
"PassportChecksLogicV4": [
{
"length": 20,
"start": 7305
},
{
"length": 20,
"start": 12799
},
{
"length": 20,
"start": 13573
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportConfiguratorV4.sol": {
"PassportConfiguratorV4": [
{
"length": 20,
"start": 8138
},
{
"length": 20,
"start": 8242
},
{
"length": 20,
"start": 9222
},
{
"length": 20,
"start": 11812
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportDelegationLogicV4.sol": {
"PassportDelegationLogicV4": [
{
"length": 20,
"start": 5544
},
{
"length": 20,
"start": 7211
},
{
"length": 20,
"start": 7587
},
{
"length": 20,
"start": 8744
},
{
"length": 20,
"start": 11201
},
{
"length": 20,
"start": 11590
},
{
"length": 20,
"start": 11653
},
{
"length": 20,
"start": 11921
},
{
"length": 20,
"start": 12111
},
{
"length": 20,
"start": 12334
},
{
"length": 20,
"start": 14350
},
{
"length": 20,
"start": 14423
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportEntityLogicV4.sol": {
"PassportEntityLogicV4": [
{
"length": 20,
"start": 5139
},
{
"length": 20,
"start": 6379
},
{
"length": 20,
"start": 6518
},
{
"length": 20,
"start": 7650
},
{
"length": 20,
"start": 8610
},
{
"length": 20,
"start": 10089
},
{
"length": 20,
"start": 12533
},
{
"length": 20,
"start": 13243
},
{
"length": 20,
"start": 13391
},
{
"length": 20,
"start": 13896
},
{
"length": 20,
"start": 14105
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportPersonhoodLogicV4.sol": {
"PassportPersonhoodLogicV4": [
{
"length": 20,
"start": 5897
},
{
"length": 20,
"start": 13105
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportPoPScoreLogicV4.sol": {
"PassportPoPScoreLogicV4": [
{
"length": 20,
"start": 5390
},
{
"length": 20,
"start": 5767
},
{
"length": 20,
"start": 7098
},
{
"length": 20,
"start": 7951
},
{
"length": 20,
"start": 9881
},
{
"length": 20,
"start": 11349
},
{
"length": 20,
"start": 11521
},
{
"length": 20,
"start": 12039
},
{
"length": 20,
"start": 12263
},
{
"length": 20,
"start": 13967
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportSignalingLogicV4.sol": {
"PassportSignalingLogicV4": [
{
"length": 20,
"start": 6705
},
{
"length": 20,
"start": 6887
},
{
"length": 20,
"start": 8389
},
{
"length": 20,
"start": 10668
},
{
"length": 20,
"start": 12463
},
{
"length": 20,
"start": 12656
},
{
"length": 20,
"start": 12947
},
{
"length": 20,
"start": 13721
},
{
"length": 20,
"start": 14279
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportWhitelistAndBlacklistLogicV4.sol": {
"PassportWhitelistAndBlacklistLogicV4": [
{
"length": 20,
"start": 8539
},
{
"length": 20,
"start": 8880
},
{
"length": 20,
"start": 9751
},
{
"length": 20,
"start": 10464
},
{
"length": 20,
"start": 10911
},
{
"length": 20,
"start": 10982
},
{
"length": 20,
"start": 11130
},
{
"length": 20,
"start": 14598
}
]
}
},
"deployedLinkReferences": {
"contracts/deprecated/V4/ve-better-passport/libraries/PassportChecksLogicV4.sol": {
"PassportChecksLogicV4": [
{
"length": 20,
"start": 7045
},
{
"length": 20,
"start": 12539
},
{
"length": 20,
"start": 13313
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportConfiguratorV4.sol": {
"PassportConfiguratorV4": [
{
"length": 20,
"start": 7878
},
{
"length": 20,
"start": 7982
},
{
"length": 20,
"start": 8962
},
{
"length": 20,
"start": 11552
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportDelegationLogicV4.sol": {
"PassportDelegationLogicV4": [
{
"length": 20,
"start": 5284
},
{
"length": 20,
"start": 6951
},
{
"length": 20,
"start": 7327
},
{
"length": 20,
"start": 8484
},
{
"length": 20,
"start": 10941
},
{
"length": 20,
"start": 11330
},
{
"length": 20,
"start": 11393
},
{
"length": 20,
"start": 11661
},
{
"length": 20,
"start": 11851
},
{
"length": 20,
"start": 12074
},
{
"length": 20,
"start": 14090
},
{
"length": 20,
"start": 14163
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportEntityLogicV4.sol": {
"PassportEntityLogicV4": [
{
"length": 20,
"start": 4879
},
{
"length": 20,
"start": 6119
},
{
"length": 20,
"start": 6258
},
{
"length": 20,
"start": 7390
},
{
"length": 20,
"start": 8350
},
{
"length": 20,
"start": 9829
},
{
"length": 20,
"start": 12273
},
{
"length": 20,
"start": 12983
},
{
"length": 20,
"start": 13131
},
{
"length": 20,
"start": 13636
},
{
"length": 20,
"start": 13845
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportPersonhoodLogicV4.sol": {
"PassportPersonhoodLogicV4": [
{
"length": 20,
"start": 5637
},
{
"length": 20,
"start": 12845
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportPoPScoreLogicV4.sol": {
"PassportPoPScoreLogicV4": [
{
"length": 20,
"start": 5130
},
{
"length": 20,
"start": 5507
},
{
"length": 20,
"start": 6838
},
{
"length": 20,
"start": 7691
},
{
"length": 20,
"start": 9621
},
{
"length": 20,
"start": 11089
},
{
"length": 20,
"start": 11261
},
{
"length": 20,
"start": 11779
},
{
"length": 20,
"start": 12003
},
{
"length": 20,
"start": 13707
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportSignalingLogicV4.sol": {
"PassportSignalingLogicV4": [
{
"length": 20,
"start": 6445
},
{
"length": 20,
"start": 6627
},
{
"length": 20,
"start": 8129
},
{
"length": 20,
"start": 10408
},
{
"length": 20,
"start": 12203
},
{
"length": 20,
"start": 12396
},
{
"length": 20,
"start": 12687
},
{
"length": 20,
"start": 13461
},
{
"length": 20,
"start": 14019
}
]
},
"contracts/deprecated/V4/ve-better-passport/libraries/PassportWhitelistAndBlacklistLogicV4.sol": {
"PassportWhitelistAndBlacklistLogicV4": [
{
"length": 20,
"start": 8279
},
{
"length": 20,
"start": 8620
},
{
"length": 20,
"start": 9491
},
{
"length": 20,
"start": 10204
},
{
"length": 20,
"start": 10651
},
{
"length": 20,
"start": 10722
},
{
"length": 20,
"start": 10870
},
{
"length": 20,
"start": 14338
}
]
}
}
}