diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 0ddf31f4141..6492fe747f9 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -157,7 +157,7 @@ type OffRampStaticConfig struct { var OffRampMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\"},{\"internalType\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"messageInterceptor\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotTransferToSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"CommitOnRampMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyBatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustBeProposedOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationNotAllowedInExecutionPlugin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationRequiredInCommitPlugin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"messageInterceptor\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\"},{\"internalType\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2]\",\"name\":\"reportContext\",\"type\":\"bytes32[2]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2]\",\"name\":\"reportContext\",\"type\":\"bytes32[2]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"destTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destGasAmount\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.Any2EVMTokenTransfer[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllSourceChainConfigs\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"\",\"type\":\"uint64[]\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"messageInterceptor\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\"},{\"internalType\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"destTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destGasAmount\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.Any2EVMTokenTransfer[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReport[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"messageInterceptor\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101406040523480156200001257600080fd5b5060405162006d1f38038062006d1f833981016040819052620000359162000936565b336000816200005757604051639b15e16f60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b03848116919091179091558116156200008a576200008a81620001dc565b50504660805260408301516001600160a01b03161580620000b6575060608301516001600160a01b0316155b80620000cd575060808301516001600160a01b0316155b15620000ec576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b0316600003620001185760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a0908152604080860180516001600160a01b0390811660c05260608089018051831660e0526080808b0180518516610100526020808d01805161ffff9081166101205289518f51909c168c52905116908a0152945184169588019590955251821690860152905116908301527fb0fa1fb01508c5097c502ad056fd77018870c9be9a86d9e56b6b471862d7c5b7910160405180910390a1620001c88262000256565b620001d38162000344565b50505062000cde565b336001600160a01b038216036200020657604051636d6c4ee560e11b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03838116918217835560015460405192939116917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b03166200027f576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516001600160a01b039889166001600160c01b03199097168717600160a01b63ffffffff958616021760ff60c01b1916600160c01b911515919091021790965560608089018051600580546001600160a01b031916918b169190911790558251968752935190921693850193909352935115159183019190915251909216908201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9060800160405180910390a150565b60005b8151811015620005d957600082828151811062000368576200036862000a16565b60200260200101519050600081602001519050806001600160401b0316600003620003a65760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003cf576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526008602052604090206060830151600182018054620003fd9062000a2c565b905060000362000460578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004d1565b8154600160a81b90046001600160401b0316600114801590620004a35750805160208201206040516200049890600185019062000a68565b604051809103902014155b15620004d157604051632105803760e11b81526001600160401b038416600482015260240160405180910390fd5b80511580620005075750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b1562000526576040516342bcdf7f60e11b815260040160405180910390fd5b6001820162000536828262000b3b565b506040840151825485516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b0319909116171782556200058560066001600160401b038516620005dd565b50826001600160401b03167f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b83604051620005c1919062000c07565b60405180910390a25050505080600101905062000347565b5050565b6000620005eb8383620005f4565b90505b92915050565b60008181526001830160205260408120546200063d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005ee565b506000620005ee565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562000681576200068162000646565b60405290565b60405160a081016001600160401b038111828210171562000681576200068162000646565b604051601f8201601f191681016001600160401b0381118282101715620006d757620006d762000646565b604052919050565b80516001600160401b0381168114620006f757600080fd5b919050565b6001600160a01b03811681146200071257600080fd5b50565b80518015158114620006f757600080fd5b6000608082840312156200073957600080fd5b620007436200065c565b905081516200075281620006fc565b8152602082015163ffffffff811681146200076c57600080fd5b60208201526200077f6040830162000715565b604082015260608201516200079481620006fc565b606082015292915050565b6000601f83601f840112620007b357600080fd5b825160206001600160401b0380831115620007d257620007d262000646565b8260051b620007e3838201620006ac565b9384528681018301938381019089861115620007fe57600080fd5b84890192505b8583101562000929578251848111156200081e5760008081fd5b89016080601f19828d038101821315620008385760008081fd5b620008426200065c565b888401516200085181620006fc565b8152604062000862858201620006df565b8a83015260606200087581870162000715565b838301529385015193898511156200088d5760008081fd5b84860195508f603f870112620008a557600094508485fd5b8a860151945089851115620008be57620008be62000646565b620008cf8b858f88011601620006ac565b93508484528f82868801011115620008e75760008081fd5b60005b8581101562000907578681018301518582018d01528b01620008ea565b5060009484018b01949094525091820152835250918401919084019062000804565b9998505050505050505050565b60008060008385036101408112156200094e57600080fd5b60a08112156200095d57600080fd5b506200096862000687565b6200097385620006df565b8152602085015161ffff811681146200098b57600080fd5b60208201526040850151620009a081620006fc565b60408201526060850151620009b581620006fc565b60608201526080850151620009ca81620006fc565b60808201529250620009e08560a0860162000726565b6101208501519092506001600160401b03811115620009fe57600080fd5b62000a0c868287016200079f565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000a4157607f821691505b60208210810362000a6257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835462000a788162000a2c565b6001828116801562000a93576001811462000aa95762000ada565b60ff198416875282151583028701945062000ada565b8760005260208060002060005b8581101562000ad15781548a82015290840190820162000ab6565b50505082870194505b50929695505050505050565b601f82111562000b36576000816000526020600020601f850160051c8101602086101562000b115750805b601f850160051c820191505b8181101562000b325782815560010162000b1d565b5050505b505050565b81516001600160401b0381111562000b575762000b5762000646565b62000b6f8162000b68845462000a2c565b8462000ae6565b602080601f83116001811462000ba7576000841562000b8e5750858301515b600019600386901b1c1916600185901b17855562000b32565b600085815260208120601f198616915b8281101562000bd85788860151825594840194600190910190840162000bb7565b508582101562000bf75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000c5c8162000a2c565b8060a089015260c0600183166000811462000c80576001811462000c9d5762000ccf565b60ff19841660c08b015260c083151560051b8b0101945062000ccf565b85600052602060002060005b8481101562000cc65781548c820185015290880190890162000ca9565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e0516101005161012051615fa462000d7b600039600081816101b001528181610ce801528181612ed101526138240152600081816102380152612aa10152600081816102090152612d490152600081816101da01528181610fcc0152818161117c01526124a10152600081816101810152818161264c015261270301526000818161195b015261198e0152615fa46000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80637edf52f4116100ad578063de5e0b9a11610071578063de5e0b9a146104eb578063e9d68a8e146104fe578063f2fde38b1461051e578063f58e03fc14610531578063f716f99f1461054457600080fd5b80637edf52f41461044b57806385572ffb1461045e5780638da5cb5b1461046c578063c673e58414610487578063ccd37ba3146104a757600080fd5b80635e36480c116100f45780635e36480c146103405780635e7bb0081461036057806360987c20146103735780637437ff9f1461038657806379ba50971461044357600080fd5b806304666f9c1461013157806306285c6914610146578063181f5a77146102c65780633f4b04aa1461030f5780635215505b1461032a575b600080fd5b61014461013f366004613ec8565b610557565b005b6102686040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000061ffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040805182516001600160401b0316815260208084015161ffff1690820152828201516001600160a01b03908116928201929092526060808401518316908201526080928301519091169181019190915260a0015b60405180910390f35b6103026040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102bd9190614036565b600b546040516001600160401b0390911681526020016102bd565b61033261056b565b6040516102bd929190614090565b61035361034e366004614131565b6107c6565b6040516102bd919061418e565b61014461036e3660046146f7565b61081b565b610144610381366004614986565b610aaf565b6103fc60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526004546001600160a01b038082168352600160a01b820463ffffffff166020840152600160c01b90910460ff16151592820192909252600554909116606082015290565b6040516102bd919081516001600160a01b03908116825260208084015163ffffffff1690830152604080840151151590830152606092830151169181019190915260800190565b610144610d8a565b610144610459366004614a1a565b610e0d565b61014461012c366004614a7f565b6001546040516001600160a01b0390911681526020016102bd565b61049a610495366004614aca565b610e1e565b6040516102bd9190614b2a565b6104dd6104b5366004614b9f565b6001600160401b03919091166000908152600a60209081526040808320938352929052205490565b6040519081526020016102bd565b6101446104f9366004614c1b565b610f7c565b61051161050c366004614ccd565b61147f565b6040516102bd9190614ce8565b61014461052c366004614cfb565b61158b565b61014461053f366004614d18565b61159c565b610144610552366004614dd3565b611605565b61055f611647565b61056881611674565b50565b606080600061057a60066118fd565b6001600160401b0381111561059157610591613ce8565b6040519080825280602002602001820160405280156105e257816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816105af5790505b50905060006105f160066118fd565b6001600160401b0381111561060857610608613ce8565b604051908082528060200260200182016040528015610631578160200160208202803683370190505b50905060005b61064160066118fd565b8110156107bd57610653600682611907565b82828151811061066557610665614f10565b60200260200101906001600160401b031690816001600160401b0316815250506008600083838151811061069b5761069b614f10565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281546001600160a01b038116825260ff600160a01b820416151593820193909352600160a81b9092049093169181019190915260018201805491929160608401919061071690614f26565b80601f016020809104026020016040519081016040528092919081815260200182805461074290614f26565b801561078f5780601f106107645761010080835404028352916020019161078f565b820191906000526020600020905b81548152906001019060200180831161077257829003601f168201915b5050505050815250508382815181106107aa576107aa614f10565b6020908102919091010152600101610637565b50939092509050565b60006107d460016004614f76565b60026107e1608085614f9f565b6001600160401b03166107f49190614fc5565b6107fe8585611913565b901c16600381111561081257610812614164565b90505b92915050565b610823611958565b815181518114610846576040516320f8fd5960e21b815260040160405180910390fd5b60005b81811015610a9f57600084828151811061086557610865614f10565b6020026020010151905060008160200151519050600085848151811061088d5761088d614f10565b60200260200101519050805182146108b8576040516320f8fd5960e21b815260040160405180910390fd5b60005b82811015610a905760008282815181106108d7576108d7614f10565b60200260200101516000015190506000856020015183815181106108fd576108fd614f10565b6020026020010151905081600014610956578060800151821015610956578551815151604051633a98d46360e11b81526001600160401b0390921660048301526024820152604481018390526064015b60405180910390fd5b83838151811061096857610968614f10565b602002602001015160200151518160a0015151146109b557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161094d565b60005b8160a0015151811015610a825760008585815181106109d9576109d9614f10565b60200260200101516020015182815181106109f6576109f6614f10565b602002602001015163ffffffff16905080600014610a795760008360a001518381518110610a2657610a26614f10565b60200260200101516040015163ffffffff16905080821015610a77578351516040516348e617b360e01b8152600481019190915260248101849052604481018290526064810183905260840161094d565b505b506001016109b8565b5050508060010190506108bb565b50505050806001019050610849565b50610aaa83836119c0565b505050565b333014610acf576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610b0c565b6040805180820190915260008082526020820152815260200190600190039081610ae55790505b5060a08701515190915015610b4257610b3f8660a001518760200151886060015189600001516020015189898989611a83565b90505b6040805160a081018252875151815287516020908101516001600160401b03168183015288015181830152908701516060820152608081018290526005546001600160a01b03168015610c35576040516308d450a160e01b81526001600160a01b038216906308d450a190610bbb908590600401615089565b600060405180830381600087803b158015610bd557600080fd5b505af1925050508015610be6575060015b610c35573d808015610c14576040519150601f19603f3d011682016040523d82523d6000602084013e610c19565b606091505b50806040516309c2532560e01b815260040161094d9190614036565b604088015151158015610c4a57506080880151155b80610c61575060608801516001600160a01b03163b155b80610c8857506060880151610c86906001600160a01b03166385572ffb60e01b611c34565b155b15610c9557505050610d83565b87516020908101516001600160401b03166000908152600890915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610d119289927f0000000000000000000000000000000000000000000000000000000000000000929160040161509c565b6000604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d5891908101906150d8565b509150915081610d7d57806040516302a35ba360e21b815260040161094d9190614036565b50505050505b5050505050565b6000546001600160a01b03163314610db55760405163015aa1e360e11b815260040160405180910390fd5b600180546001600160a01b0319808216339081179093556000805490911681556040516001600160a01b03909216929183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610e15611647565b61056881611c50565b610e616040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610f0a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610eec575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610f6c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f4e575b5050505050815250509050919050565b6000610f8a87890189615385565b6004805491925090600160c01b900460ff1661103457602082015151156110345760208201516040808401519051633854844f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926370a9089e9261100392309291906004016155ad565b60006040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050505b8151515115158061104a57508151602001515115155b1561111557600b5460208b0135906001600160401b03808316911610156110ed57600b805467ffffffffffffffff19166001600160401b03831617905581548351604051633937306f60e01b81526001600160a01b0390921691633937306f916110b6916004016156c0565b600060405180830381600087803b1580156110d057600080fd5b505af11580156110e4573d6000803e3d6000fd5b50505050611113565b82602001515160000361111357604051632261116760e01b815260040160405180910390fd5b505b60005b8260200151518110156113cb5760008360200151828151811061113d5761113d614f10565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156111c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e791906156d3565b1561121057604051637edeb53960e11b81526001600160401b038216600482015260240161094d565b600061121b82611d55565b90508060010160405161122e91906156f0565b60405180910390208360200151805190602001201461126b5782602001518160010160405163b80d8fa960e01b815260040161094d9291906157e3565b60408301518154600160a81b90046001600160401b0390811691161415806112ac575082606001516001600160401b031683604001516001600160401b0316115b156112f157825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161094d565b6080830151806113145760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600a602090815260408083208484529091529020541561136c5783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161094d565b606084015161137c906001615808565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600a602090815260408083209483529390529190912042905550600101611118565b50602082015182516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261140392909161582f565b60405180910390a1610d7d60008b8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c9250611da1915050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260088352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161150b90614f26565b80601f016020809104026020016040519081016040528092919081815260200182805461153790614f26565b8015610f6c5780601f1061155957610100808354040283529160200191610f6c565b820191906000526020600020905b81548152906001019060200180831161156757505050919092525091949350505050565b611593611647565b6105688161209a565b6115dc6115ab82840184615854565b60408051600080825260208201909252906115d6565b60608152602001906001900390816115c15790505b506119c0565b6040805160008082526020820190925290506115ff600185858585866000611da1565b50505050565b61160d611647565b60005b81518110156116435761163b82828151811061162e5761162e614f10565b6020026020010151612113565b600101611610565b5050565b6001546001600160a01b03163314611672576040516315ae3a6f60e11b815260040160405180910390fd5b565b60005b815181101561164357600082828151811061169457611694614f10565b60200260200101519050600081602001519050806001600160401b03166000036116d15760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166116f9576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600860205260409020606083015160018201805461172590614f26565b905060000361178757815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a16117f0565b8154600160a81b90046001600160401b03166001148015906117c75750805160208201206040516117bc9060018501906156f0565b604051809103902014155b156117f057604051632105803760e11b81526001600160401b038416600482015260240161094d565b805115806118255750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611843576040516342bcdf7f60e11b815260040160405180910390fd5b6001820161185182826158d8565b506040840151825485516001600160a01b03166001600160a01b0319921515600160a01b029290921674ffffffffffffffffffffffffffffffffffffffffff19909116171782556118ac60066001600160401b03851661243d565b50826001600160401b03167f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b836040516118e69190615997565b60405180910390a250505050806001019050611677565b6000610815825490565b60006108128383612449565b6001600160401b0382166000908152600960205260408120816119376080856159e5565b6001600160401b031681526020810191909152604001600020549392505050565b467f00000000000000000000000000000000000000000000000000000000000000001461167257604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161094d565b81516000036119e25760405163c2e5347d60e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a25565b6040805180820190915260008152606060208201528152602001906001900390816119fd5790505b50905060005b8451811015610d8357611a7b858281518110611a4957611a49614f10565b602002602001015184611a7557858381518110611a6857611a68614f10565b6020026020010151612473565b83612473565b600101611a2b565b606088516001600160401b03811115611a9e57611a9e613ce8565b604051908082528060200260200182016040528015611ae357816020015b6040805180820190915260008082526020820152815260200190600190039081611abc5790505b509050811560005b8a51811015611c265781611b8357848482818110611b0b57611b0b614f10565b9050602002016020810190611b209190615a0b565b63ffffffff1615611b8357848482818110611b3d57611b3d614f10565b9050602002016020810190611b529190615a0b565b8b8281518110611b6457611b64614f10565b60200260200101516040019063ffffffff16908163ffffffff16815250505b611c018b8281518110611b9857611b98614f10565b60200260200101518b8b8b8b8b87818110611bb557611bb5614f10565b9050602002810190611bc79190615a26565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d0e92505050565b838281518110611c1357611c13614f10565b6020908102919091010152600101611aeb565b505098975050505050505050565b6000611c3f8361300e565b801561081257506108128383613041565b80516001600160a01b0316611c78576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516001600160a01b039889167fffffffffffffffff0000000000000000000000000000000000000000000000009097168717600160a01b63ffffffff958616021760ff60c01b1916600160c01b911515919091021790965560608089018051600580546001600160a01b031916918b169190911790558251968752935190921693850193909352935115159183019190915251909216908201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9060800160405180910390a150565b6001600160401b03811660009081526008602052604081208054600160a01b900460ff166108155760405163ed053c5960e01b81526001600160401b038416600482015260240161094d565b60ff87811660009081526002602090815260408083208151608081018352815481526001909101548086169382019390935261010083048516918101919091526201000090910490921615156060830152873590611e00876084615a6c565b9050826060015115611e48578451611e19906020614fc5565b8651611e26906020614fc5565b611e319060a0615a6c565b611e3b9190615a6c565b611e459082615a6c565b90505b368114611e7157604051638e1192e160e01b81526004810182905236602482015260440161094d565b5081518114611ea05781516040516324f7d61360e21b815260048101919091526024810182905260440161094d565b611ea8611958565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611ef657611ef6614164565b6002811115611f0757611f07614164565b9052509050600281602001516002811115611f2457611f24614164565b148015611f785750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611f6057611f60614f10565b6000918252602090912001546001600160a01b031633145b611f9557604051631b41e11d60e31b815260040160405180910390fd5b50816060015115612045576020820151611fb0906001615a7f565b60ff16855114611fd3576040516371253a2560e01b815260040160405180910390fd5b8351855114611ff55760405163a75d88af60e01b815260040160405180910390fd5b60008787604051612007929190615a98565b60405190819003812061201e918b90602001615aa8565b6040516020818303038152906040528051906020012090506120438a828888886130e4565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b336001600160a01b038216036120c357604051636d6c4ee560e11b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03838116918217835560015460405192939116917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff1660000361213e576000604051631b3fab5160e11b815260040161094d9190615abc565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361218f576060840151600182018054911515620100000262ff0000199092169190911790556121cb565b6060840151600182015460ff62010000909104161515901515146121cb576040516321fd80df60e21b815260ff8416600482015260240161094d565b60a0840151805161010010156121f7576001604051631b3fab5160e11b815260040161094d9190615abc565b805160000361221c576005604051631b3fab5160e11b815260040161094d9190615abc565b612282848460030180548060200260200160405190810160405280929190818152602001828054801561227857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161225a575b5050505050613297565b8460600151156123b2576122f08484600201805480602002602001604051908101604052809291908181526020018280548015612278576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161225a575050505050613297565b60808501518051610100101561231c576002604051631b3fab5160e11b815260040161094d9190615abc565b604086015161232c906003615ad6565b60ff16815111612352576003604051631b3fab5160e11b815260040161094d9190615abc565b815181511015612378576001604051631b3fab5160e11b815260040161094d9190615abc565b805160018401805461ff00191661010060ff8416021790556123a39060028601906020840190613c6e565b506123b085826001613300565b505b6123be84826002613300565b80516123d39060038501906020840190613c6e565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361242c9389939260028a01929190615af2565b60405180910390a1610d838461345b565b600061081283836134de565b600082600001828154811061246057612460614f10565b9060005260206000200154905092915050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156124f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251491906156d3565b1561258557801561254357604051637edeb53960e11b81526001600160401b038316600482015260240161094d565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60208401515160008190036125bb57845160405163676cf24b60e11b81526001600160401b03909116600482015260240161094d565b84604001515181146125e0576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b038111156125fa576125fa613ce8565b604051908082528060200260200182016040528015612623578160200160208202803683370190505b50905060007f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f857f000000000000000000000000000000000000000000000000000000000000000061267488611d55565b60010160405161268491906156f0565b6040519081900381206126bc949392916020019384526001600160401b03928316602085015291166040830152606082015260800190565b60405160208183030381529060405280519060200120905060005b838110156127f2576000886020015182815181106126f7576126f7614f10565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b03161461276e5780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161094d565b866001600160401b03168160000151602001516001600160401b0316146127c257805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161094d565b6127cc818461352d565b8483815181106127de576127de614f10565b6020908102919091010152506001016126d7565b5050600061280a858389606001518a60800151613635565b90508060000361283857604051633ee8bd3f60e11b81526001600160401b038616600482015260240161094d565b60005b83811015612d045760005a905060008960200151838151811061286057612860614f10565b60200260200101519050600061287e898360000151606001516107c6565b9050600081600381111561289457612894614164565b14806128b1575060038160038111156128af576128af614164565b145b61290757815160600151604080516001600160401b03808d16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612cfc565b606088156129e6578a858151811061292157612921614f10565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff1661294f8842614f76565b119050808061296f5750600383600381111561296d5761296d614164565b145b612997576040516354e7e43160e11b81526001600160401b038c16600482015260240161094d565b8b86815181106129a9576129a9614f10565b6020026020010151600001516000146129e0578b86815181106129ce576129ce614f10565b60209081029190910101515160808501525b50612a52565b60008260038111156129fa576129fa614164565b14612a5257825160600151604080516001600160401b03808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612cfc565b8251608001516001600160401b031615612b28576000826003811115612a7a57612a7a614164565b03612b285782516080015160208401516040516370701e5760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612ad8928f929190600401615ba4565b6020604051808303816000875af1158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b91906156d3565b612b285750505050612cfc565b60008c604001518681518110612b4057612b40614f10565b6020026020010151905080518460a001515114612b8a57835160600151604051631cfe6d8b60e01b81526001600160401b03808e166004830152909116602482015260440161094d565b612b9e8b8560000151606001516001613672565b600080612bac868486613717565b91509150612bc38d87600001516060015184613672565b8b15612c1a576003826003811115612bdd57612bdd614164565b03612c1a576000856003811115612bf657612bf6614164565b14612c1a57855151604051632b11b8d960e01b815261094d91908390600401615bd0565b6002826003811115612c2e57612c2e614164565b14612c6f576003826003811115612c4757612c47614164565b14612c6f578551606001516040516349362d1f60e11b815261094d918f918590600401615be9565b8560000151600001518660000151606001516001600160401b03168e6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612cc757612cc7614f10565b602002602001015186865a612cdc908f614f76565b604051612cec9493929190615c0e565b60405180910390a4505050505050505b60010161283b565b5050505050505050565b6040805180820190915260008082526020820152602086015160405163bbe4f6db60e01b81526001600160a01b0380831660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bbe4f6db90602401602060405180830381865afa158015612d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db69190615c45565b90506001600160a01b0381161580612de55750612de36001600160a01b03821663aff2afbf60e01b611c34565b155b15612e0e5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161094d565b600080612e2688858c6040015163ffffffff166137cb565b915091506000806000612ef76040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f608001518152602001896001600160a01b031681526020018f6000015181526020018f6060015181526020018b815250604051602401612ea39190615c62565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b17905287867f000000000000000000000000000000000000000000000000000000000000000060846138ce565b92509250925082612f1f578582604051634ff17cad60e11b815260040161094d929190615d2e565b8151602014612f4e578151604051631e3be00960e21b815260206004820152602481019190915260440161094d565b600082806020019051810190612f649190615d50565b9050866001600160a01b03168c6001600160a01b031614612fe0576000612f958d8a612f90868a614f76565b6137cb565b50905086811080612faf575081612fac8883614f76565b14155b15612fde5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161094d565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613021826301ffc9a760e01b613041565b8015610815575061303a826001600160e01b0319613041565b1592915050565b604080516001600160e01b031983166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166301ffc9a760e01b179052600090818080617d005a10156130a65763161c3bf760e01b60005260046000fd5b602060008551602087018a617530fa92503d915060005190508280156130cd575060208210155b80156130d95750600081115b979650505050505050565b8251600090815b81811015612d0457600060018886846020811061310a5761310a614f10565b61311791901a601b615a7f565b89858151811061312957613129614f10565b602002602001015189868151811061314357613143614f10565b602002602001015160405160008152602001604052604051613181949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156131a3573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561320457613204614164565b600281111561321557613215614164565b905250905060018160200151600281111561323257613232614164565b1461325057604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561327a57604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b8517945050508060010190506130eb565b60005b8151811015610aaa5760ff8316600090815260036020526040812083519091908490849081106132cc576132cc614f10565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff1916905560010161329a565b60005b82518110156115ff57600083828151811061332057613320614f10565b602002602001015190506000600281111561333d5761333d614164565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561337c5761337c614164565b1461339d576004604051631b3fab5160e11b815260040161094d9190615abc565b6001600160a01b0381166133c45760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156133ea576133ea614164565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561344757613447614164565b021790555090505050806001019050613303565b60ff818116600081815260026020526040902060010154620100009004909116906134b3578061349e576040516317bd8dd160e11b815260040160405180910390fd5b600b805467ffffffffffffffff191690555050565b60001960ff831601611643578015611643576040516307b8c74d60e51b815260040160405180910390fd5b600081815260018301602052604081205461352557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610815565b506000610815565b81518051606080850151908301516080808701519401516040516000958695889561359195919490939192916020019485526001600160a01b039390931660208501526001600160401b039182166040850152606084015216608082015260a00190565b604051602081830303815290604052805190602001208560200151805190602001208660400151805190602001208760a001516040516020016135d49190615e0a565b60408051601f198184030181528282528051602091820120908301979097528101949094526060840192909252608083015260a082015260c081019190915260e0015b60405160208183030381529060405280519060200120905092915050565b6000806136438585856139a8565b6001600160401b0387166000908152600a6020908152604080832093835292905220549150505b949350505050565b60006002613681608085614f9f565b6001600160401b03166136949190614fc5565b905060006136a28585611913565b9050816136b160016004614f76565b901b1916818360038111156136c8576136c8614164565b6001600160401b03871660009081526009602052604081209190921b929092179182916136f66080886159e5565b6001600160401b031681526020810191909152604001600020555050505050565b604051630304c3e160e51b815260009060609030906360987c209061374490889088908890600401615ea1565b600060405180830381600087803b15801561375e57600080fd5b505af192505050801561376f575060015b6137ae573d80801561379d576040519150601f19603f3d011682016040523d82523d6000602084013e6137a2565b606091505b506003925090506137c3565b50506040805160208101909152600081526002905b935093915050565b600080600080600061384a886040516024016137f691906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b17905288887f000000000000000000000000000000000000000000000000000000000000000060846138ce565b92509250925082613872578682604051634ff17cad60e11b815260040161094d929190615d2e565b60208251146138a1578151604051631e3be00960e21b815260206004820152602481019190915260440161094d565b818060200190518101906138b59190615d50565b6138bf8288614f76565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156138f0576138f0613ce8565b6040519080825280601f01601f19166020018201604052801561391a576020820181803683370190505b509150863b6139345763030ed58f60e21b60005260046000fd5b5a8581101561394e57632be8ca8b60e21b60005260046000fd5b859003604081048103871061396e576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156139915750835b808352806000602085013e50955095509592505050565b82518251600091908183036139d057604051630469ac9960e21b815260040160405180910390fd5b61010182118015906139e457506101018111155b613a01576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613a2b576040516309bde33960e01b815260040160405180910390fd5b80600003613a585786600081518110613a4657613a46614f10565b60200260200101519350505050613c26565b6000816001600160401b03811115613a7257613a72613ce8565b604051908082528060200260200182016040528015613a9b578160200160208202803683370190505b50905060008080805b85811015613bc55760006001821b8b811603613aff5788851015613ae8578c5160018601958e918110613ad957613ad9614f10565b60200260200101519050613b21565b8551600185019487918110613ad957613ad9614f10565b8b5160018401938d918110613b1657613b16614f10565b602002602001015190505b600089861015613b51578d5160018701968f918110613b4257613b42614f10565b60200260200101519050613b73565b8651600186019588918110613b6857613b68614f10565b602002602001015190505b82851115613b94576040516309bde33960e01b815260040160405180910390fd5b613b9e8282613c2d565b878481518110613bb057613bb0614f10565b60209081029190910101525050600101613aa4565b506001850382148015613bd757508683145b8015613be257508581145b613bff576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613c1457613c14614f10565b60200260200101519750505050505050505b9392505050565b6000818310613c4557613c408284613c4b565b610812565b61081283835b604080516001602082015290810183905260608101829052600090608001613617565b828054828255906000526020600020908101928215613cc3579160200282015b82811115613cc357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c8e565b50613ccf929150613cd3565b5090565b5b80821115613ccf5760008155600101613cd4565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613d2057613d20613ce8565b60405290565b60405160a081016001600160401b0381118282101715613d2057613d20613ce8565b60405160c081016001600160401b0381118282101715613d2057613d20613ce8565b604080519081016001600160401b0381118282101715613d2057613d20613ce8565b604051606081016001600160401b0381118282101715613d2057613d20613ce8565b604051601f8201601f191681016001600160401b0381118282101715613dd657613dd6613ce8565b604052919050565b60006001600160401b03821115613df757613df7613ce8565b5060051b60200190565b6001600160a01b038116811461056857600080fd5b80356001600160401b0381168114613e2d57600080fd5b919050565b801515811461056857600080fd5b8035613e2d81613e32565b60006001600160401b03821115613e6457613e64613ce8565b50601f01601f191660200190565b600082601f830112613e8357600080fd5b8135613e96613e9182613e4b565b613dae565b818152846020838601011115613eab57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613edb57600080fd5b82356001600160401b0380821115613ef257600080fd5b818501915085601f830112613f0657600080fd5b8135613f14613e9182613dde565b81815260059190911b83018401908481019088831115613f3357600080fd5b8585015b83811015613fd957803585811115613f4f5760008081fd5b86016080818c03601f1901811315613f675760008081fd5b613f6f613cfe565b89830135613f7c81613e01565b81526040613f8b848201613e16565b8b830152606080850135613f9e81613e32565b83830152928401359289841115613fb757600091508182fd5b613fc58f8d86880101613e72565b908301525085525050918601918601613f37565b5098975050505050505050565b60005b83811015614001578181015183820152602001613fe9565b50506000910152565b60008151808452614022816020860160208601613fe6565b601f01601f19169290920160200192915050565b602081526000610812602083018461400a565b6001600160a01b0381511682526020810151151560208301526001600160401b036040820151166040830152600060608201516080606085015261366a608085018261400a565b604080825283519082018190526000906020906060840190828701845b828110156140d25781516001600160401b0316845292840192908401906001016140ad565b50505083810382850152845180825282820190600581901b8301840187850160005b8381101561412257601f19868403018552614110838351614049565b948701949250908601906001016140f4565b50909998505050505050505050565b6000806040838503121561414457600080fd5b61414d83613e16565b915061415b60208401613e16565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6004811061418a5761418a614164565b9052565b60208101610815828461417a565b600060a082840312156141ae57600080fd5b6141b6613d26565b9050813581526141c860208301613e16565b60208201526141d960408301613e16565b60408201526141ea60608301613e16565b60608201526141fb60808301613e16565b608082015292915050565b8035613e2d81613e01565b803563ffffffff81168114613e2d57600080fd5b600082601f83011261423657600080fd5b81356020614246613e9183613dde565b82815260059290921b8401810191818101908684111561426557600080fd5b8286015b848110156143355780356001600160401b03808211156142895760008081fd5b9088019060a0828b03601f19018113156142a35760008081fd5b6142ab613d26565b87840135838111156142bd5760008081fd5b6142cb8d8a83880101613e72565b8252506040808501356142dd81613e01565b828a015260606142ee868201614211565b828401526080915081860135858111156143085760008081fd5b6143168f8c838a0101613e72565b9184019190915250919093013590830152508352918301918301614269565b509695505050505050565b6000610140828403121561435357600080fd5b61435b613d48565b9050614367838361419c565b815260a08201356001600160401b038082111561438357600080fd5b61438f85838601613e72565b602084015260c08401359150808211156143a857600080fd5b6143b485838601613e72565b60408401526143c560e08501614206565b606084015261010084013560808401526101208401359150808211156143ea57600080fd5b506143f784828501614225565b60a08301525092915050565b600082601f83011261441457600080fd5b81356020614424613e9183613dde565b82815260059290921b8401810191818101908684111561444357600080fd5b8286015b848110156143355780356001600160401b038111156144665760008081fd5b6144748986838b0101614340565b845250918301918301614447565b600082601f83011261449357600080fd5b813560206144a3613e9183613dde565b82815260059290921b840181019181810190868411156144c257600080fd5b8286015b848110156143355780356001600160401b03808211156144e557600080fd5b818901915089603f8301126144f957600080fd5b85820135614509613e9182613dde565b81815260059190911b830160400190878101908c83111561452957600080fd5b604085015b838110156145625780358581111561454557600080fd5b6145548f6040838a0101613e72565b84525091890191890161452e565b508752505050928401925083016144c6565b600082601f83011261458557600080fd5b81356020614595613e9183613dde565b8083825260208201915060208460051b8701019350868411156145b757600080fd5b602086015b8481101561433557803583529183019183016145bc565b600082601f8301126145e457600080fd5b813560206145f4613e9183613dde565b82815260059290921b8401810191818101908684111561461357600080fd5b8286015b848110156143355780356001600160401b03808211156146375760008081fd5b9088019060a0828b03601f19018113156146515760008081fd5b614659613d26565b614664888501613e16565b81526040808501358481111561467a5760008081fd5b6146888e8b83890101614403565b8a84015250606080860135858111156146a15760008081fd5b6146af8f8c838a0101614482565b83850152506080915081860135858111156146ca5760008081fd5b6146d88f8c838a0101614574565b9184019190915250919093013590830152508352918301918301614617565b6000806040838503121561470a57600080fd5b6001600160401b038335111561471f57600080fd5b61472c84843585016145d3565b91506001600160401b036020840135111561474657600080fd5b6020830135830184601f82011261475c57600080fd5b614769613e918235613dde565b81358082526020808301929160051b84010187101561478757600080fd5b602083015b6020843560051b85010181101561492d576001600160401b03813511156147b257600080fd5b87603f8235860101126147c457600080fd5b6147d7613e916020833587010135613dde565b81358501602081810135808452908301929160059190911b016040018a10156147ff57600080fd5b604083358701015b83358701602081013560051b0160400181101561491d576001600160401b038135111561483357600080fd5b833587018135016040818d03603f1901121561484e57600080fd5b614856613d6a565b604082013581526001600160401b036060830135111561487557600080fd5b8c605f60608401358401011261488a57600080fd5b60406060830135830101356148a1613e9182613dde565b808282526020820191508f60608460051b60608801358801010111156148c657600080fd5b6060808601358601015b60608460051b6060880135880101018110156148fd576148ef81614211565b8352602092830192016148d0565b508060208501525050508085525050602083019250602081019050614807565b508452506020928301920161478c565b508093505050509250929050565b60008083601f84011261494d57600080fd5b5081356001600160401b0381111561496457600080fd5b6020830191508360208260051b850101111561497f57600080fd5b9250929050565b60008060008060006060868803121561499e57600080fd5b85356001600160401b03808211156149b557600080fd5b6149c189838a01614340565b965060208801359150808211156149d757600080fd5b6149e389838a0161493b565b909650945060408801359150808211156149fc57600080fd5b50614a098882890161493b565b969995985093965092949392505050565b600060808284031215614a2c57600080fd5b614a34613cfe565b8235614a3f81613e01565b8152614a4d60208401614211565b60208201526040830135614a6081613e32565b60408201526060830135614a7381613e01565b60608201529392505050565b600060208284031215614a9157600080fd5b81356001600160401b03811115614aa757600080fd5b820160a08185031215613c2657600080fd5b803560ff81168114613e2d57600080fd5b600060208284031215614adc57600080fd5b61081282614ab9565b60008151808452602080850194506020840160005b83811015614b1f5781516001600160a01b031687529582019590820190600101614afa565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614b7960e0840182614ae5565b90506040840151601f198483030160c0850152614b968282614ae5565b95945050505050565b60008060408385031215614bb257600080fd5b614bbb83613e16565b946020939093013593505050565b806040810183101561081557600080fd5b60008083601f840112614bec57600080fd5b5081356001600160401b03811115614c0357600080fd5b60208301915083602082850101111561497f57600080fd5b60008060008060008060008060c0898b031215614c3757600080fd5b614c418a8a614bc9565b975060408901356001600160401b0380821115614c5d57600080fd5b614c698c838d01614bda565b909950975060608b0135915080821115614c8257600080fd5b614c8e8c838d0161493b565b909750955060808b0135915080821115614ca757600080fd5b50614cb48b828c0161493b565b999c989b50969995989497949560a00135949350505050565b600060208284031215614cdf57600080fd5b61081282613e16565b6020815260006108126020830184614049565b600060208284031215614d0d57600080fd5b8135613c2681613e01565b600080600060608486031215614d2d57600080fd5b614d378585614bc9565b925060408401356001600160401b03811115614d5257600080fd5b614d5e86828701614bda565b9497909650939450505050565b600082601f830112614d7c57600080fd5b81356020614d8c613e9183613dde565b8083825260208201915060208460051b870101935086841115614dae57600080fd5b602086015b84811015614335578035614dc681613e01565b8352918301918301614db3565b60006020808385031215614de657600080fd5b82356001600160401b0380821115614dfd57600080fd5b818501915085601f830112614e1157600080fd5b8135614e1f613e9182613dde565b81815260059190911b83018401908481019088831115614e3e57600080fd5b8585015b83811015613fd957803585811115614e5957600080fd5b860160c0818c03601f19011215614e705760008081fd5b614e78613d48565b8882013581526040614e8b818401614ab9565b8a8301526060614e9c818501614ab9565b8284015260809150614eaf828501613e40565b9083015260a08381013589811115614ec75760008081fd5b614ed58f8d83880101614d6b565b838501525060c0840135915088821115614eef5760008081fd5b614efd8e8c84870101614d6b565b9083015250845250918601918601614e42565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614f3a57607f821691505b602082108103614f5a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561081557610815614f60565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614fb957614fb9614f89565b92169190910692915050565b808202811582820484141761081557610815614f60565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261500f60a087018261400a565b905060608501518682036060880152615028828261400a565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561507d57835180516001600160a01b031683528601518683015292850192600192909201919084019061504b565b50979650505050505050565b6020815260006108126020830184614fdc565b6080815260006150af6080830187614fdc565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156150ed57600080fd5b83516150f881613e32565b60208501519093506001600160401b0381111561511457600080fd5b8401601f8101861361512557600080fd5b8051615133613e9182613e4b565b81815287602083850101111561514857600080fd5b615159826020830160208601613fe6565b809450505050604084015190509250925092565b80356001600160e01b0381168114613e2d57600080fd5b600082601f83011261519557600080fd5b813560206151a5613e9183613dde565b82815260069290921b840181019181810190868411156151c457600080fd5b8286015b8481101561433557604081890312156151e15760008081fd5b6151e9613d6a565b6151f282613e16565b81526151ff85830161516d565b818601528352918301916040016151c8565b600082601f83011261522257600080fd5b81356020615232613e9183613dde565b82815260059290921b8401810191818101908684111561525157600080fd5b8286015b848110156143355780356001600160401b03808211156152755760008081fd5b9088019060a0828b03601f190181131561528f5760008081fd5b615297613d26565b6152a2888501613e16565b8152604080850135848111156152b85760008081fd5b6152c68e8b83890101613e72565b8a84015250606093506152da848601613e16565b9082015260806152eb858201613e16565b93820193909352920135908201528352918301918301615255565b600082601f83011261531757600080fd5b81356020615327613e9183613dde565b82815260069290921b8401810191818101908684111561534657600080fd5b8286015b8481101561433557604081890312156153635760008081fd5b61536b613d6a565b81358152848201358582015283529183019160400161534a565b6000602080838503121561539857600080fd5b82356001600160401b03808211156153af57600080fd5b90840190606082870312156153c357600080fd5b6153cb613d8c565b8235828111156153da57600080fd5b830160408189038113156153ed57600080fd5b6153f5613d6a565b82358581111561540457600080fd5b8301601f81018b1361541557600080fd5b8035615423613e9182613dde565b81815260069190911b8201890190898101908d83111561544257600080fd5b928a01925b828410156154925785848f03121561545f5760008081fd5b615467613d6a565b843561547281613e01565b815261547f858d0161516d565b818d0152825292850192908a0190615447565b8452505050828701359150848211156154aa57600080fd5b6154b68a838501615184565b818801528352505082840135828111156154cf57600080fd5b6154db88828601615211565b858301525060408301359350818411156154f457600080fd5b61550087858501615306565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b848110156155a057601f19868403018952815160a06001600160401b038083511686528683015182888801526155648388018261400a565b6040858101518416908901526060808601519093169288019290925250608092830151929095019190915250978301979083019060010161552c565b5090979650505050505050565b6001600160a01b0384168152600060206060818401526155d0606084018661550f565b83810360408581019190915285518083528387019284019060005b81811015614122578451805184528601518684015293850193918301916001016155eb565b805160408084528151848201819052600092602091908201906060870190855b8181101561566757835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615630565b50508583015187820388850152805180835290840192506000918401905b8083101561507d57835180516001600160401b031683528501516001600160e01b031685830152928401926001929092019190850190615685565b6020815260006108126020830184615610565b6000602082840312156156e557600080fd5b8151613c2681613e32565b60008083546156fe81614f26565b60018281168015615716576001811461572b5761575a565b60ff198416875282151583028701945061575a565b8760005260208060002060005b858110156157515781548a820152908401908201615738565b50505082870194505b50929695505050505050565b6000815461577381614f26565b80855260206001838116801561579057600181146157aa576157d8565b60ff1985168884015283151560051b8801830195506157d8565b866000528260002060005b858110156157d05781548a82018601529083019084016157b5565b890184019650505b505050505092915050565b6040815260006157f6604083018561400a565b8281036020840152614b968185615766565b6001600160401b0381811683821601908082111561582857615828614f60565b5092915050565b604081526000615842604083018561550f565b8281036020840152614b968185615610565b60006020828403121561586657600080fd5b81356001600160401b0381111561587c57600080fd5b61366a848285016145d3565b601f821115610aaa576000816000526020600020601f850160051c810160208610156158b15750805b601f850160051c820191505b818110156158d0578281556001016158bd565b505050505050565b81516001600160401b038111156158f1576158f1613ce8565b615905816158ff8454614f26565b84615888565b602080601f83116001811461593a57600084156159225750858301515b600019600386901b1c1916600185901b1785556158d0565b600085815260208120601f198616915b828110156159695788860151825594840194600190910190840161594a565b50858210156159875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c1660608401525060808083015261081260a0830160018501615766565b60006001600160401b03808416806159ff576159ff614f89565b92169190910492915050565b600060208284031215615a1d57600080fd5b61081282614211565b6000808335601e19843603018112615a3d57600080fd5b8301803591506001600160401b03821115615a5757600080fd5b60200191503681900382131561497f57600080fd5b8082018082111561081557610815614f60565b60ff818116838216019081111561081557610815614f60565b8183823760009101908152919050565b828152604082602083013760600192915050565b6020810160068310615ad057615ad0614164565b91905290565b60ff818116838216029081169081811461582857615828614f60565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615b4a5784546001600160a01b031683526001948501949284019201615b25565b50508481036060860152865180825290820192508187019060005b81811015615b8a5782516001600160a01b031685529383019391830191600101615b65565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b03808616835280851660208401525060606040830152614b96606083018461400a565b82815260406020820152600061366a604083018461400a565b6001600160401b038481168252831660208201526060810161366a604083018461417a565b848152615c1e602082018561417a565b608060408201526000615c34608083018561400a565b905082606083015295945050505050565b600060208284031215615c5757600080fd5b8151613c2681613e01565b6020815260008251610100806020850152615c8161012085018361400a565b91506020850151615c9d60408601826001600160401b03169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615cd760a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615cf4848361400a565b935060c08701519150808685030160e0870152615d11848361400a565b935060e0870151915080868503018387015250615b9a838261400a565b6001600160a01b038316815260406020820152600061366a604083018461400a565b600060208284031215615d6257600080fd5b5051919050565b600082825180855260208086019550808260051b84010181860160005b848110156155a057601f19868403018952815160a08151818652615dac8287018261400a565b9150506001600160a01b03868301511686860152604063ffffffff8184015116818701525060608083015186830382880152615de8838261400a565b6080948501519790940196909652505098840198925090830190600101615d86565b6020815260006108126020830184615d69565b60008282518085526020808601955060208260051b8401016020860160005b848110156155a057601f19868403018952615e5883835161400a565b98840198925090830190600101615e3c565b60008151808452602080850194506020840160005b83811015614b1f57815163ffffffff1687529582019590820190600101615e7f565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615f096101a085018361400a565b91506040870151605f198086850301610120870152615f28848361400a565b935060608901519150615f45838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615f6e8282615d69565b9150508281036020840152615f838186615e1d565b90508281036040840152615b9a8185615e6a56fea164736f6c6343000818000a", + Bin: "0x6101406040523480156200001257600080fd5b5060405162006d2138038062006d21833981016040819052620000359162000936565b336000816200005757604051639b15e16f60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b03848116919091179091558116156200008a576200008a81620001dc565b50504660805260408301516001600160a01b03161580620000b6575060608301516001600160a01b0316155b80620000cd575060808301516001600160a01b0316155b15620000ec576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b0316600003620001185760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a0908152604080860180516001600160a01b0390811660c05260608089018051831660e0526080808b0180518516610100526020808d01805161ffff9081166101205289518f51909c168c52905116908a0152945184169588019590955251821690860152905116908301527fb0fa1fb01508c5097c502ad056fd77018870c9be9a86d9e56b6b471862d7c5b7910160405180910390a1620001c88262000256565b620001d38162000344565b50505062000cde565b336001600160a01b038216036200020657604051636d6c4ee560e11b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03838116918217835560015460405192939116917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b03166200027f576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516001600160a01b039889166001600160c01b03199097168717600160a01b63ffffffff958616021760ff60c01b1916600160c01b911515919091021790965560608089018051600580546001600160a01b031916918b169190911790558251968752935190921693850193909352935115159183019190915251909216908201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9060800160405180910390a150565b60005b8151811015620005d957600082828151811062000368576200036862000a16565b60200260200101519050600081602001519050806001600160401b0316600003620003a65760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003cf576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526008602052604090206060830151600182018054620003fd9062000a2c565b905060000362000460578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004d1565b8154600160a81b90046001600160401b0316600114801590620004a35750805160208201206040516200049890600185019062000a68565b604051809103902014155b15620004d157604051632105803760e11b81526001600160401b038416600482015260240160405180910390fd5b80511580620005075750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b1562000526576040516342bcdf7f60e11b815260040160405180910390fd5b6001820162000536828262000b3b565b506040840151825485516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b0319909116171782556200058560066001600160401b038516620005dd565b50826001600160401b03167f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b83604051620005c1919062000c07565b60405180910390a25050505080600101905062000347565b5050565b6000620005eb8383620005f4565b90505b92915050565b60008181526001830160205260408120546200063d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005ee565b506000620005ee565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562000681576200068162000646565b60405290565b60405160a081016001600160401b038111828210171562000681576200068162000646565b604051601f8201601f191681016001600160401b0381118282101715620006d757620006d762000646565b604052919050565b80516001600160401b0381168114620006f757600080fd5b919050565b6001600160a01b03811681146200071257600080fd5b50565b80518015158114620006f757600080fd5b6000608082840312156200073957600080fd5b620007436200065c565b905081516200075281620006fc565b8152602082015163ffffffff811681146200076c57600080fd5b60208201526200077f6040830162000715565b604082015260608201516200079481620006fc565b606082015292915050565b6000601f83601f840112620007b357600080fd5b825160206001600160401b0380831115620007d257620007d262000646565b8260051b620007e3838201620006ac565b9384528681018301938381019089861115620007fe57600080fd5b84890192505b8583101562000929578251848111156200081e5760008081fd5b89016080601f19828d038101821315620008385760008081fd5b620008426200065c565b888401516200085181620006fc565b8152604062000862858201620006df565b8a83015260606200087581870162000715565b838301529385015193898511156200088d5760008081fd5b84860195508f603f870112620008a557600094508485fd5b8a860151945089851115620008be57620008be62000646565b620008cf8b858f88011601620006ac565b93508484528f82868801011115620008e75760008081fd5b60005b8581101562000907578681018301518582018d01528b01620008ea565b5060009484018b01949094525091820152835250918401919084019062000804565b9998505050505050505050565b60008060008385036101408112156200094e57600080fd5b60a08112156200095d57600080fd5b506200096862000687565b6200097385620006df565b8152602085015161ffff811681146200098b57600080fd5b60208201526040850151620009a081620006fc565b60408201526060850151620009b581620006fc565b60608201526080850151620009ca81620006fc565b60808201529250620009e08560a0860162000726565b6101208501519092506001600160401b03811115620009fe57600080fd5b62000a0c868287016200079f565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000a4157607f821691505b60208210810362000a6257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835462000a788162000a2c565b6001828116801562000a93576001811462000aa95762000ada565b60ff198416875282151583028701945062000ada565b8760005260208060002060005b8581101562000ad15781548a82015290840190820162000ab6565b50505082870194505b50929695505050505050565b601f82111562000b36576000816000526020600020601f850160051c8101602086101562000b115750805b601f850160051c820191505b8181101562000b325782815560010162000b1d565b5050505b505050565b81516001600160401b0381111562000b575762000b5762000646565b62000b6f8162000b68845462000a2c565b8462000ae6565b602080601f83116001811462000ba7576000841562000b8e5750858301515b600019600386901b1c1916600185901b17855562000b32565b600085815260208120601f198616915b8281101562000bd85788860151825594840194600190910190840162000bb7565b508582101562000bf75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000c5c8162000a2c565b8060a089015260c0600183166000811462000c80576001811462000c9d5762000ccf565b60ff19841660c08b015260c083151560051b8b0101945062000ccf565b85600052602060002060005b8481101562000cc65781548c820185015290880190890162000ca9565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e0516101005161012051615fa662000d7b600039600081816101b001528181610ce801528181612ed101526138260152600081816102380152612aa10152600081816102090152612d490152600081816101da01528181610fcc0152818161117c01526124a10152600081816101810152818161264c015261270301526000818161195b015261198e0152615fa66000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80637edf52f4116100ad578063de5e0b9a11610071578063de5e0b9a146104eb578063e9d68a8e146104fe578063f2fde38b1461051e578063f58e03fc14610531578063f716f99f1461054457600080fd5b80637edf52f41461044b57806385572ffb1461045e5780638da5cb5b1461046c578063c673e58414610487578063ccd37ba3146104a757600080fd5b80635e36480c116100f45780635e36480c146103405780635e7bb0081461036057806360987c20146103735780637437ff9f1461038657806379ba50971461044357600080fd5b806304666f9c1461013157806306285c6914610146578063181f5a77146102c65780633f4b04aa1461030f5780635215505b1461032a575b600080fd5b61014461013f366004613eca565b610557565b005b6102686040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000061ffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040805182516001600160401b0316815260208084015161ffff1690820152828201516001600160a01b03908116928201929092526060808401518316908201526080928301519091169181019190915260a0015b60405180910390f35b6103026040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102bd9190614038565b600b546040516001600160401b0390911681526020016102bd565b61033261056b565b6040516102bd929190614092565b61035361034e366004614133565b6107c6565b6040516102bd9190614190565b61014461036e3660046146f9565b61081b565b610144610381366004614988565b610aaf565b6103fc60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526004546001600160a01b038082168352600160a01b820463ffffffff166020840152600160c01b90910460ff16151592820192909252600554909116606082015290565b6040516102bd919081516001600160a01b03908116825260208084015163ffffffff1690830152604080840151151590830152606092830151169181019190915260800190565b610144610d8a565b610144610459366004614a1c565b610e0d565b61014461012c366004614a81565b6001546040516001600160a01b0390911681526020016102bd565b61049a610495366004614acc565b610e1e565b6040516102bd9190614b2c565b6104dd6104b5366004614ba1565b6001600160401b03919091166000908152600a60209081526040808320938352929052205490565b6040519081526020016102bd565b6101446104f9366004614c1d565b610f7c565b61051161050c366004614ccf565b61147f565b6040516102bd9190614cea565b61014461052c366004614cfd565b61158b565b61014461053f366004614d1a565b61159c565b610144610552366004614dd5565b611605565b61055f611647565b61056881611674565b50565b606080600061057a60066118fd565b6001600160401b0381111561059157610591613cea565b6040519080825280602002602001820160405280156105e257816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816105af5790505b50905060006105f160066118fd565b6001600160401b0381111561060857610608613cea565b604051908082528060200260200182016040528015610631578160200160208202803683370190505b50905060005b61064160066118fd565b8110156107bd57610653600682611907565b82828151811061066557610665614f12565b60200260200101906001600160401b031690816001600160401b0316815250506008600083838151811061069b5761069b614f12565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281546001600160a01b038116825260ff600160a01b820416151593820193909352600160a81b9092049093169181019190915260018201805491929160608401919061071690614f28565b80601f016020809104026020016040519081016040528092919081815260200182805461074290614f28565b801561078f5780601f106107645761010080835404028352916020019161078f565b820191906000526020600020905b81548152906001019060200180831161077257829003601f168201915b5050505050815250508382815181106107aa576107aa614f12565b6020908102919091010152600101610637565b50939092509050565b60006107d460016004614f78565b60026107e1608085614fa1565b6001600160401b03166107f49190614fc7565b6107fe8585611913565b901c16600381111561081257610812614166565b90505b92915050565b610823611958565b815181518114610846576040516320f8fd5960e21b815260040160405180910390fd5b60005b81811015610a9f57600084828151811061086557610865614f12565b6020026020010151905060008160200151519050600085848151811061088d5761088d614f12565b60200260200101519050805182146108b8576040516320f8fd5960e21b815260040160405180910390fd5b60005b82811015610a905760008282815181106108d7576108d7614f12565b60200260200101516000015190506000856020015183815181106108fd576108fd614f12565b6020026020010151905081600014610956578060800151821015610956578551815151604051633a98d46360e11b81526001600160401b0390921660048301526024820152604481018390526064015b60405180910390fd5b83838151811061096857610968614f12565b602002602001015160200151518160a0015151146109b557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161094d565b60005b8160a0015151811015610a825760008585815181106109d9576109d9614f12565b60200260200101516020015182815181106109f6576109f6614f12565b602002602001015163ffffffff16905080600014610a795760008360a001518381518110610a2657610a26614f12565b60200260200101516040015163ffffffff16905080821015610a77578351516040516348e617b360e01b8152600481019190915260248101849052604481018290526064810183905260840161094d565b505b506001016109b8565b5050508060010190506108bb565b50505050806001019050610849565b50610aaa83836119c0565b505050565b333014610acf576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610b0c565b6040805180820190915260008082526020820152815260200190600190039081610ae55790505b5060a08701515190915015610b4257610b3f8660a001518760200151886060015189600001516020015189898989611a83565b90505b6040805160a081018252875151815287516020908101516001600160401b03168183015288015181830152908701516060820152608081018290526005546001600160a01b03168015610c35576040516308d450a160e01b81526001600160a01b038216906308d450a190610bbb90859060040161508b565b600060405180830381600087803b158015610bd557600080fd5b505af1925050508015610be6575060015b610c35573d808015610c14576040519150601f19603f3d011682016040523d82523d6000602084013e610c19565b606091505b50806040516309c2532560e01b815260040161094d9190614038565b604088015151158015610c4a57506080880151155b80610c61575060608801516001600160a01b03163b155b80610c8857506060880151610c86906001600160a01b03166385572ffb60e01b611c34565b155b15610c9557505050610d83565b87516020908101516001600160401b03166000908152600890915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610d119289927f0000000000000000000000000000000000000000000000000000000000000000929160040161509e565b6000604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d5891908101906150da565b509150915081610d7d57806040516302a35ba360e21b815260040161094d9190614038565b50505050505b5050505050565b6000546001600160a01b03163314610db55760405163015aa1e360e11b815260040160405180910390fd5b600180546001600160a01b0319808216339081179093556000805490911681556040516001600160a01b03909216929183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610e15611647565b61056881611c50565b610e616040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610f0a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610eec575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610f6c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f4e575b5050505050815250509050919050565b6000610f8a87890189615387565b6004805491925090600160c01b900460ff1661103457602082015151156110345760208201516040808401519051633854844f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926370a9089e9261100392309291906004016155af565b60006040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050505b8151515115158061104a57508151602001515115155b1561111557600b5460208b0135906001600160401b03808316911610156110ed57600b805467ffffffffffffffff19166001600160401b03831617905581548351604051633937306f60e01b81526001600160a01b0390921691633937306f916110b6916004016156c2565b600060405180830381600087803b1580156110d057600080fd5b505af11580156110e4573d6000803e3d6000fd5b50505050611113565b82602001515160000361111357604051632261116760e01b815260040160405180910390fd5b505b60005b8260200151518110156113cb5760008360200151828151811061113d5761113d614f12565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156111c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e791906156d5565b1561121057604051637edeb53960e11b81526001600160401b038216600482015260240161094d565b600061121b82611d55565b90508060010160405161122e91906156f2565b60405180910390208360200151805190602001201461126b5782602001518160010160405163b80d8fa960e01b815260040161094d9291906157e5565b60408301518154600160a81b90046001600160401b0390811691161415806112ac575082606001516001600160401b031683604001516001600160401b0316115b156112f157825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161094d565b6080830151806113145760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600a602090815260408083208484529091529020541561136c5783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161094d565b606084015161137c90600161580a565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600a602090815260408083209483529390529190912042905550600101611118565b50602082015182516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e492611403929091615831565b60405180910390a1610d7d60008b8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c9250611da1915050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260088352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161150b90614f28565b80601f016020809104026020016040519081016040528092919081815260200182805461153790614f28565b8015610f6c5780601f1061155957610100808354040283529160200191610f6c565b820191906000526020600020905b81548152906001019060200180831161156757505050919092525091949350505050565b611593611647565b6105688161209a565b6115dc6115ab82840184615856565b60408051600080825260208201909252906115d6565b60608152602001906001900390816115c15790505b506119c0565b6040805160008082526020820190925290506115ff600185858585866000611da1565b50505050565b61160d611647565b60005b81518110156116435761163b82828151811061162e5761162e614f12565b6020026020010151612113565b600101611610565b5050565b6001546001600160a01b03163314611672576040516315ae3a6f60e11b815260040160405180910390fd5b565b60005b815181101561164357600082828151811061169457611694614f12565b60200260200101519050600081602001519050806001600160401b03166000036116d15760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166116f9576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600860205260409020606083015160018201805461172590614f28565b905060000361178757815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a16117f0565b8154600160a81b90046001600160401b03166001148015906117c75750805160208201206040516117bc9060018501906156f2565b604051809103902014155b156117f057604051632105803760e11b81526001600160401b038416600482015260240161094d565b805115806118255750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611843576040516342bcdf7f60e11b815260040160405180910390fd5b6001820161185182826158da565b506040840151825485516001600160a01b03166001600160a01b0319921515600160a01b029290921674ffffffffffffffffffffffffffffffffffffffffff19909116171782556118ac60066001600160401b03851661243d565b50826001600160401b03167f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b836040516118e69190615999565b60405180910390a250505050806001019050611677565b6000610815825490565b60006108128383612449565b6001600160401b0382166000908152600960205260408120816119376080856159e7565b6001600160401b031681526020810191909152604001600020549392505050565b467f00000000000000000000000000000000000000000000000000000000000000001461167257604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161094d565b81516000036119e25760405163c2e5347d60e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a25565b6040805180820190915260008152606060208201528152602001906001900390816119fd5790505b50905060005b8451811015610d8357611a7b858281518110611a4957611a49614f12565b602002602001015184611a7557858381518110611a6857611a68614f12565b6020026020010151612473565b83612473565b600101611a2b565b606088516001600160401b03811115611a9e57611a9e613cea565b604051908082528060200260200182016040528015611ae357816020015b6040805180820190915260008082526020820152815260200190600190039081611abc5790505b509050811560005b8a51811015611c265781611b8357848482818110611b0b57611b0b614f12565b9050602002016020810190611b209190615a0d565b63ffffffff1615611b8357848482818110611b3d57611b3d614f12565b9050602002016020810190611b529190615a0d565b8b8281518110611b6457611b64614f12565b60200260200101516040019063ffffffff16908163ffffffff16815250505b611c018b8281518110611b9857611b98614f12565b60200260200101518b8b8b8b8b87818110611bb557611bb5614f12565b9050602002810190611bc79190615a28565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d0e92505050565b838281518110611c1357611c13614f12565b6020908102919091010152600101611aeb565b505098975050505050505050565b6000611c3f8361300e565b801561081257506108128383613041565b80516001600160a01b0316611c78576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516001600160a01b039889167fffffffffffffffff0000000000000000000000000000000000000000000000009097168717600160a01b63ffffffff958616021760ff60c01b1916600160c01b911515919091021790965560608089018051600580546001600160a01b031916918b169190911790558251968752935190921693850193909352935115159183019190915251909216908201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9060800160405180910390a150565b6001600160401b03811660009081526008602052604081208054600160a01b900460ff166108155760405163ed053c5960e01b81526001600160401b038416600482015260240161094d565b60ff87811660009081526002602090815260408083208151608081018352815481526001909101548086169382019390935261010083048516918101919091526201000090910490921615156060830152873590611e00876084615a6e565b9050826060015115611e48578451611e19906020614fc7565b8651611e26906020614fc7565b611e319060a0615a6e565b611e3b9190615a6e565b611e459082615a6e565b90505b368114611e7157604051638e1192e160e01b81526004810182905236602482015260440161094d565b5081518114611ea05781516040516324f7d61360e21b815260048101919091526024810182905260440161094d565b611ea8611958565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611ef657611ef6614166565b6002811115611f0757611f07614166565b9052509050600281602001516002811115611f2457611f24614166565b148015611f785750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611f6057611f60614f12565b6000918252602090912001546001600160a01b031633145b611f9557604051631b41e11d60e31b815260040160405180910390fd5b50816060015115612045576020820151611fb0906001615a81565b60ff16855114611fd3576040516371253a2560e01b815260040160405180910390fd5b8351855114611ff55760405163a75d88af60e01b815260040160405180910390fd5b60008787604051612007929190615a9a565b60405190819003812061201e918b90602001615aaa565b6040516020818303038152906040528051906020012090506120438a828888886130e6565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b336001600160a01b038216036120c357604051636d6c4ee560e11b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03838116918217835560015460405192939116917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff1660000361213e576000604051631b3fab5160e11b815260040161094d9190615abe565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361218f576060840151600182018054911515620100000262ff0000199092169190911790556121cb565b6060840151600182015460ff62010000909104161515901515146121cb576040516321fd80df60e21b815260ff8416600482015260240161094d565b60a0840151805161010010156121f7576001604051631b3fab5160e11b815260040161094d9190615abe565b805160000361221c576005604051631b3fab5160e11b815260040161094d9190615abe565b612282848460030180548060200260200160405190810160405280929190818152602001828054801561227857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161225a575b5050505050613299565b8460600151156123b2576122f08484600201805480602002602001604051908101604052809291908181526020018280548015612278576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161225a575050505050613299565b60808501518051610100101561231c576002604051631b3fab5160e11b815260040161094d9190615abe565b604086015161232c906003615ad8565b60ff16815111612352576003604051631b3fab5160e11b815260040161094d9190615abe565b815181511015612378576001604051631b3fab5160e11b815260040161094d9190615abe565b805160018401805461ff00191661010060ff8416021790556123a39060028601906020840190613c70565b506123b085826001613302565b505b6123be84826002613302565b80516123d39060038501906020840190613c70565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361242c9389939260028a01929190615af4565b60405180910390a1610d838461345d565b600061081283836134e0565b600082600001828154811061246057612460614f12565b9060005260206000200154905092915050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156124f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251491906156d5565b1561258557801561254357604051637edeb53960e11b81526001600160401b038316600482015260240161094d565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60208401515160008190036125bb57845160405163676cf24b60e11b81526001600160401b03909116600482015260240161094d565b84604001515181146125e0576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b038111156125fa576125fa613cea565b604051908082528060200260200182016040528015612623578160200160208202803683370190505b50905060007f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f857f000000000000000000000000000000000000000000000000000000000000000061267488611d55565b60010160405161268491906156f2565b6040519081900381206126bc949392916020019384526001600160401b03928316602085015291166040830152606082015260800190565b60405160208183030381529060405280519060200120905060005b838110156127f2576000886020015182815181106126f7576126f7614f12565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b03161461276e5780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161094d565b866001600160401b03168160000151602001516001600160401b0316146127c257805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161094d565b6127cc818461352f565b8483815181106127de576127de614f12565b6020908102919091010152506001016126d7565b5050600061280a858389606001518a60800151613637565b90508060000361283857604051633ee8bd3f60e11b81526001600160401b038616600482015260240161094d565b60005b83811015612d045760005a905060008960200151838151811061286057612860614f12565b60200260200101519050600061287e898360000151606001516107c6565b9050600081600381111561289457612894614166565b14806128b1575060038160038111156128af576128af614166565b145b61290757815160600151604080516001600160401b03808d16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612cfc565b606088156129e6578a858151811061292157612921614f12565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff1661294f8842614f78565b119050808061296f5750600383600381111561296d5761296d614166565b145b612997576040516354e7e43160e11b81526001600160401b038c16600482015260240161094d565b8b86815181106129a9576129a9614f12565b6020026020010151600001516000146129e0578b86815181106129ce576129ce614f12565b60209081029190910101515160808501525b50612a52565b60008260038111156129fa576129fa614166565b14612a5257825160600151604080516001600160401b03808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612cfc565b8251608001516001600160401b031615612b28576000826003811115612a7a57612a7a614166565b03612b285782516080015160208401516040516370701e5760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612ad8928f929190600401615ba6565b6020604051808303816000875af1158015612af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1b91906156d5565b612b285750505050612cfc565b60008c604001518681518110612b4057612b40614f12565b6020026020010151905080518460a001515114612b8a57835160600151604051631cfe6d8b60e01b81526001600160401b03808e166004830152909116602482015260440161094d565b612b9e8b8560000151606001516001613674565b600080612bac868486613719565b91509150612bc38d87600001516060015184613674565b8b15612c1a576003826003811115612bdd57612bdd614166565b03612c1a576000856003811115612bf657612bf6614166565b14612c1a57855151604051632b11b8d960e01b815261094d91908390600401615bd2565b6002826003811115612c2e57612c2e614166565b14612c6f576003826003811115612c4757612c47614166565b14612c6f578551606001516040516349362d1f60e11b815261094d918f918590600401615beb565b8560000151600001518660000151606001516001600160401b03168e6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612cc757612cc7614f12565b602002602001015186865a612cdc908f614f78565b604051612cec9493929190615c10565b60405180910390a4505050505050505b60010161283b565b5050505050505050565b6040805180820190915260008082526020820152602086015160405163bbe4f6db60e01b81526001600160a01b0380831660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063bbe4f6db90602401602060405180830381865afa158015612d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db69190615c47565b90506001600160a01b0381161580612de55750612de36001600160a01b03821663aff2afbf60e01b611c34565b155b15612e0e5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161094d565b600080612e2688858c6040015163ffffffff166137cd565b915091506000806000612ef76040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f608001518152602001896001600160a01b031681526020018f6000015181526020018f6060015181526020018b815250604051602401612ea39190615c64565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b17905287867f000000000000000000000000000000000000000000000000000000000000000060846138d0565b92509250925082612f1f578582604051634ff17cad60e11b815260040161094d929190615d30565b8151602014612f4e578151604051631e3be00960e21b815260206004820152602481019190915260440161094d565b600082806020019051810190612f649190615d52565b9050866001600160a01b03168c6001600160a01b031614612fe0576000612f958d8a612f90868a614f78565b6137cd565b50905086811080612faf575081612fac8883614f78565b14155b15612fde5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161094d565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613021826301ffc9a760e01b613041565b8015610815575061303a826001600160e01b0319613041565b1592915050565b604080516001600160e01b031983166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166301ffc9a760e01b179052600090818080635c791e1560e11b6179185a10156130a7578060005260046000fd5b602060008651602088018b617530fa93503d925060005191508380156130ce575060208310155b80156130da5750600082115b98975050505050505050565b8251600090815b81811015612d0457600060018886846020811061310c5761310c614f12565b61311991901a601b615a81565b89858151811061312b5761312b614f12565b602002602001015189868151811061314557613145614f12565b602002602001015160405160008152602001604052604051613183949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156131a5573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561320657613206614166565b600281111561321757613217614166565b905250905060018160200151600281111561323457613234614166565b1461325257604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561327c57604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b8517945050508060010190506130ed565b60005b8151811015610aaa5760ff8316600090815260036020526040812083519091908490849081106132ce576132ce614f12565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff1916905560010161329c565b60005b82518110156115ff57600083828151811061332257613322614f12565b602002602001015190506000600281111561333f5761333f614166565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561337e5761337e614166565b1461339f576004604051631b3fab5160e11b815260040161094d9190615abe565b6001600160a01b0381166133c65760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156133ec576133ec614166565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561344957613449614166565b021790555090505050806001019050613305565b60ff818116600081815260026020526040902060010154620100009004909116906134b557806134a0576040516317bd8dd160e11b815260040160405180910390fd5b600b805467ffffffffffffffff191690555050565b60001960ff831601611643578015611643576040516307b8c74d60e51b815260040160405180910390fd5b600081815260018301602052604081205461352757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610815565b506000610815565b81518051606080850151908301516080808701519401516040516000958695889561359395919490939192916020019485526001600160a01b039390931660208501526001600160401b039182166040850152606084015216608082015260a00190565b604051602081830303815290604052805190602001208560200151805190602001208660400151805190602001208760a001516040516020016135d69190615e0c565b60408051601f198184030181528282528051602091820120908301979097528101949094526060840192909252608083015260a082015260c081019190915260e0015b60405160208183030381529060405280519060200120905092915050565b6000806136458585856139aa565b6001600160401b0387166000908152600a6020908152604080832093835292905220549150505b949350505050565b60006002613683608085614fa1565b6001600160401b03166136969190614fc7565b905060006136a48585611913565b9050816136b360016004614f78565b901b1916818360038111156136ca576136ca614166565b6001600160401b03871660009081526009602052604081209190921b929092179182916136f86080886159e7565b6001600160401b031681526020810191909152604001600020555050505050565b604051630304c3e160e51b815260009060609030906360987c209061374690889088908890600401615ea3565b600060405180830381600087803b15801561376057600080fd5b505af1925050508015613771575060015b6137b0573d80801561379f576040519150601f19603f3d011682016040523d82523d6000602084013e6137a4565b606091505b506003925090506137c5565b50506040805160208101909152600081526002905b935093915050565b600080600080600061384c886040516024016137f891906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b17905288887f000000000000000000000000000000000000000000000000000000000000000060846138d0565b92509250925082613874578682604051634ff17cad60e11b815260040161094d929190615d30565b60208251146138a3578151604051631e3be00960e21b815260206004820152602481019190915260440161094d565b818060200190518101906138b79190615d52565b6138c18288614f78565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156138f2576138f2613cea565b6040519080825280601f01601f19166020018201604052801561391c576020820181803683370190505b509150863b6139365763030ed58f60e21b60005260046000fd5b5a8581101561395057632be8ca8b60e21b60005260046000fd5b8590036040810481038710613970576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156139935750835b808352806000602085013e50955095509592505050565b82518251600091908183036139d257604051630469ac9960e21b815260040160405180910390fd5b61010182118015906139e657506101018111155b613a03576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613a2d576040516309bde33960e01b815260040160405180910390fd5b80600003613a5a5786600081518110613a4857613a48614f12565b60200260200101519350505050613c28565b6000816001600160401b03811115613a7457613a74613cea565b604051908082528060200260200182016040528015613a9d578160200160208202803683370190505b50905060008080805b85811015613bc75760006001821b8b811603613b015788851015613aea578c5160018601958e918110613adb57613adb614f12565b60200260200101519050613b23565b8551600185019487918110613adb57613adb614f12565b8b5160018401938d918110613b1857613b18614f12565b602002602001015190505b600089861015613b53578d5160018701968f918110613b4457613b44614f12565b60200260200101519050613b75565b8651600186019588918110613b6a57613b6a614f12565b602002602001015190505b82851115613b96576040516309bde33960e01b815260040160405180910390fd5b613ba08282613c2f565b878481518110613bb257613bb2614f12565b60209081029190910101525050600101613aa6565b506001850382148015613bd957508683145b8015613be457508581145b613c01576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613c1657613c16614f12565b60200260200101519750505050505050505b9392505050565b6000818310613c4757613c428284613c4d565b610812565b61081283835b604080516001602082015290810183905260608101829052600090608001613619565b828054828255906000526020600020908101928215613cc5579160200282015b82811115613cc557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c90565b50613cd1929150613cd5565b5090565b5b80821115613cd15760008155600101613cd6565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613d2257613d22613cea565b60405290565b60405160a081016001600160401b0381118282101715613d2257613d22613cea565b60405160c081016001600160401b0381118282101715613d2257613d22613cea565b604080519081016001600160401b0381118282101715613d2257613d22613cea565b604051606081016001600160401b0381118282101715613d2257613d22613cea565b604051601f8201601f191681016001600160401b0381118282101715613dd857613dd8613cea565b604052919050565b60006001600160401b03821115613df957613df9613cea565b5060051b60200190565b6001600160a01b038116811461056857600080fd5b80356001600160401b0381168114613e2f57600080fd5b919050565b801515811461056857600080fd5b8035613e2f81613e34565b60006001600160401b03821115613e6657613e66613cea565b50601f01601f191660200190565b600082601f830112613e8557600080fd5b8135613e98613e9382613e4d565b613db0565b818152846020838601011115613ead57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613edd57600080fd5b82356001600160401b0380821115613ef457600080fd5b818501915085601f830112613f0857600080fd5b8135613f16613e9382613de0565b81815260059190911b83018401908481019088831115613f3557600080fd5b8585015b83811015613fdb57803585811115613f515760008081fd5b86016080818c03601f1901811315613f695760008081fd5b613f71613d00565b89830135613f7e81613e03565b81526040613f8d848201613e18565b8b830152606080850135613fa081613e34565b83830152928401359289841115613fb957600091508182fd5b613fc78f8d86880101613e74565b908301525085525050918601918601613f39565b5098975050505050505050565b60005b83811015614003578181015183820152602001613feb565b50506000910152565b60008151808452614024816020860160208601613fe8565b601f01601f19169290920160200192915050565b602081526000610812602083018461400c565b6001600160a01b0381511682526020810151151560208301526001600160401b036040820151166040830152600060608201516080606085015261366c608085018261400c565b604080825283519082018190526000906020906060840190828701845b828110156140d45781516001600160401b0316845292840192908401906001016140af565b50505083810382850152845180825282820190600581901b8301840187850160005b8381101561412457601f1986840301855261411283835161404b565b948701949250908601906001016140f6565b50909998505050505050505050565b6000806040838503121561414657600080fd5b61414f83613e18565b915061415d60208401613e18565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6004811061418c5761418c614166565b9052565b60208101610815828461417c565b600060a082840312156141b057600080fd5b6141b8613d28565b9050813581526141ca60208301613e18565b60208201526141db60408301613e18565b60408201526141ec60608301613e18565b60608201526141fd60808301613e18565b608082015292915050565b8035613e2f81613e03565b803563ffffffff81168114613e2f57600080fd5b600082601f83011261423857600080fd5b81356020614248613e9383613de0565b82815260059290921b8401810191818101908684111561426757600080fd5b8286015b848110156143375780356001600160401b038082111561428b5760008081fd5b9088019060a0828b03601f19018113156142a55760008081fd5b6142ad613d28565b87840135838111156142bf5760008081fd5b6142cd8d8a83880101613e74565b8252506040808501356142df81613e03565b828a015260606142f0868201614213565b8284015260809150818601358581111561430a5760008081fd5b6143188f8c838a0101613e74565b918401919091525091909301359083015250835291830191830161426b565b509695505050505050565b6000610140828403121561435557600080fd5b61435d613d4a565b9050614369838361419e565b815260a08201356001600160401b038082111561438557600080fd5b61439185838601613e74565b602084015260c08401359150808211156143aa57600080fd5b6143b685838601613e74565b60408401526143c760e08501614208565b606084015261010084013560808401526101208401359150808211156143ec57600080fd5b506143f984828501614227565b60a08301525092915050565b600082601f83011261441657600080fd5b81356020614426613e9383613de0565b82815260059290921b8401810191818101908684111561444557600080fd5b8286015b848110156143375780356001600160401b038111156144685760008081fd5b6144768986838b0101614342565b845250918301918301614449565b600082601f83011261449557600080fd5b813560206144a5613e9383613de0565b82815260059290921b840181019181810190868411156144c457600080fd5b8286015b848110156143375780356001600160401b03808211156144e757600080fd5b818901915089603f8301126144fb57600080fd5b8582013561450b613e9382613de0565b81815260059190911b830160400190878101908c83111561452b57600080fd5b604085015b838110156145645780358581111561454757600080fd5b6145568f6040838a0101613e74565b845250918901918901614530565b508752505050928401925083016144c8565b600082601f83011261458757600080fd5b81356020614597613e9383613de0565b8083825260208201915060208460051b8701019350868411156145b957600080fd5b602086015b8481101561433757803583529183019183016145be565b600082601f8301126145e657600080fd5b813560206145f6613e9383613de0565b82815260059290921b8401810191818101908684111561461557600080fd5b8286015b848110156143375780356001600160401b03808211156146395760008081fd5b9088019060a0828b03601f19018113156146535760008081fd5b61465b613d28565b614666888501613e18565b81526040808501358481111561467c5760008081fd5b61468a8e8b83890101614405565b8a84015250606080860135858111156146a35760008081fd5b6146b18f8c838a0101614484565b83850152506080915081860135858111156146cc5760008081fd5b6146da8f8c838a0101614576565b9184019190915250919093013590830152508352918301918301614619565b6000806040838503121561470c57600080fd5b6001600160401b038335111561472157600080fd5b61472e84843585016145d5565b91506001600160401b036020840135111561474857600080fd5b6020830135830184601f82011261475e57600080fd5b61476b613e938235613de0565b81358082526020808301929160051b84010187101561478957600080fd5b602083015b6020843560051b85010181101561492f576001600160401b03813511156147b457600080fd5b87603f8235860101126147c657600080fd5b6147d9613e936020833587010135613de0565b81358501602081810135808452908301929160059190911b016040018a101561480157600080fd5b604083358701015b83358701602081013560051b0160400181101561491f576001600160401b038135111561483557600080fd5b833587018135016040818d03603f1901121561485057600080fd5b614858613d6c565b604082013581526001600160401b036060830135111561487757600080fd5b8c605f60608401358401011261488c57600080fd5b60406060830135830101356148a3613e9382613de0565b808282526020820191508f60608460051b60608801358801010111156148c857600080fd5b6060808601358601015b60608460051b6060880135880101018110156148ff576148f181614213565b8352602092830192016148d2565b508060208501525050508085525050602083019250602081019050614809565b508452506020928301920161478e565b508093505050509250929050565b60008083601f84011261494f57600080fd5b5081356001600160401b0381111561496657600080fd5b6020830191508360208260051b850101111561498157600080fd5b9250929050565b6000806000806000606086880312156149a057600080fd5b85356001600160401b03808211156149b757600080fd5b6149c389838a01614342565b965060208801359150808211156149d957600080fd5b6149e589838a0161493d565b909650945060408801359150808211156149fe57600080fd5b50614a0b8882890161493d565b969995985093965092949392505050565b600060808284031215614a2e57600080fd5b614a36613d00565b8235614a4181613e03565b8152614a4f60208401614213565b60208201526040830135614a6281613e34565b60408201526060830135614a7581613e03565b60608201529392505050565b600060208284031215614a9357600080fd5b81356001600160401b03811115614aa957600080fd5b820160a08185031215613c2857600080fd5b803560ff81168114613e2f57600080fd5b600060208284031215614ade57600080fd5b61081282614abb565b60008151808452602080850194506020840160005b83811015614b215781516001600160a01b031687529582019590820190600101614afc565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614b7b60e0840182614ae7565b90506040840151601f198483030160c0850152614b988282614ae7565b95945050505050565b60008060408385031215614bb457600080fd5b614bbd83613e18565b946020939093013593505050565b806040810183101561081557600080fd5b60008083601f840112614bee57600080fd5b5081356001600160401b03811115614c0557600080fd5b60208301915083602082850101111561498157600080fd5b60008060008060008060008060c0898b031215614c3957600080fd5b614c438a8a614bcb565b975060408901356001600160401b0380821115614c5f57600080fd5b614c6b8c838d01614bdc565b909950975060608b0135915080821115614c8457600080fd5b614c908c838d0161493d565b909750955060808b0135915080821115614ca957600080fd5b50614cb68b828c0161493d565b999c989b50969995989497949560a00135949350505050565b600060208284031215614ce157600080fd5b61081282613e18565b602081526000610812602083018461404b565b600060208284031215614d0f57600080fd5b8135613c2881613e03565b600080600060608486031215614d2f57600080fd5b614d398585614bcb565b925060408401356001600160401b03811115614d5457600080fd5b614d6086828701614bdc565b9497909650939450505050565b600082601f830112614d7e57600080fd5b81356020614d8e613e9383613de0565b8083825260208201915060208460051b870101935086841115614db057600080fd5b602086015b84811015614337578035614dc881613e03565b8352918301918301614db5565b60006020808385031215614de857600080fd5b82356001600160401b0380821115614dff57600080fd5b818501915085601f830112614e1357600080fd5b8135614e21613e9382613de0565b81815260059190911b83018401908481019088831115614e4057600080fd5b8585015b83811015613fdb57803585811115614e5b57600080fd5b860160c0818c03601f19011215614e725760008081fd5b614e7a613d4a565b8882013581526040614e8d818401614abb565b8a8301526060614e9e818501614abb565b8284015260809150614eb1828501613e42565b9083015260a08381013589811115614ec95760008081fd5b614ed78f8d83880101614d6d565b838501525060c0840135915088821115614ef15760008081fd5b614eff8e8c84870101614d6d565b9083015250845250918601918601614e44565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614f3c57607f821691505b602082108103614f5c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561081557610815614f62565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614fbb57614fbb614f8b565b92169190910692915050565b808202811582820484141761081557610815614f62565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261501160a087018261400c565b90506060850151868203606088015261502a828261400c565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561507f57835180516001600160a01b031683528601518683015292850192600192909201919084019061504d565b50979650505050505050565b6020815260006108126020830184614fde565b6080815260006150b16080830187614fde565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156150ef57600080fd5b83516150fa81613e34565b60208501519093506001600160401b0381111561511657600080fd5b8401601f8101861361512757600080fd5b8051615135613e9382613e4d565b81815287602083850101111561514a57600080fd5b61515b826020830160208601613fe8565b809450505050604084015190509250925092565b80356001600160e01b0381168114613e2f57600080fd5b600082601f83011261519757600080fd5b813560206151a7613e9383613de0565b82815260069290921b840181019181810190868411156151c657600080fd5b8286015b8481101561433757604081890312156151e35760008081fd5b6151eb613d6c565b6151f482613e18565b815261520185830161516f565b818601528352918301916040016151ca565b600082601f83011261522457600080fd5b81356020615234613e9383613de0565b82815260059290921b8401810191818101908684111561525357600080fd5b8286015b848110156143375780356001600160401b03808211156152775760008081fd5b9088019060a0828b03601f19018113156152915760008081fd5b615299613d28565b6152a4888501613e18565b8152604080850135848111156152ba5760008081fd5b6152c88e8b83890101613e74565b8a84015250606093506152dc848601613e18565b9082015260806152ed858201613e18565b93820193909352920135908201528352918301918301615257565b600082601f83011261531957600080fd5b81356020615329613e9383613de0565b82815260069290921b8401810191818101908684111561534857600080fd5b8286015b8481101561433757604081890312156153655760008081fd5b61536d613d6c565b81358152848201358582015283529183019160400161534c565b6000602080838503121561539a57600080fd5b82356001600160401b03808211156153b157600080fd5b90840190606082870312156153c557600080fd5b6153cd613d8e565b8235828111156153dc57600080fd5b830160408189038113156153ef57600080fd5b6153f7613d6c565b82358581111561540657600080fd5b8301601f81018b1361541757600080fd5b8035615425613e9382613de0565b81815260069190911b8201890190898101908d83111561544457600080fd5b928a01925b828410156154945785848f0312156154615760008081fd5b615469613d6c565b843561547481613e03565b8152615481858d0161516f565b818d0152825292850192908a0190615449565b8452505050828701359150848211156154ac57600080fd5b6154b88a838501615186565b818801528352505082840135828111156154d157600080fd5b6154dd88828601615213565b858301525060408301359350818411156154f657600080fd5b61550287858501615308565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b848110156155a257601f19868403018952815160a06001600160401b038083511686528683015182888801526155668388018261400c565b6040858101518416908901526060808601519093169288019290925250608092830151929095019190915250978301979083019060010161552e565b5090979650505050505050565b6001600160a01b0384168152600060206060818401526155d26060840186615511565b83810360408581019190915285518083528387019284019060005b81811015614124578451805184528601518684015293850193918301916001016155ed565b805160408084528151848201819052600092602091908201906060870190855b8181101561566957835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615632565b50508583015187820388850152805180835290840192506000918401905b8083101561507f57835180516001600160401b031683528501516001600160e01b031685830152928401926001929092019190850190615687565b6020815260006108126020830184615612565b6000602082840312156156e757600080fd5b8151613c2881613e34565b600080835461570081614f28565b60018281168015615718576001811461572d5761575c565b60ff198416875282151583028701945061575c565b8760005260208060002060005b858110156157535781548a82015290840190820161573a565b50505082870194505b50929695505050505050565b6000815461577581614f28565b80855260206001838116801561579257600181146157ac576157da565b60ff1985168884015283151560051b8801830195506157da565b866000528260002060005b858110156157d25781548a82018601529083019084016157b7565b890184019650505b505050505092915050565b6040815260006157f8604083018561400c565b8281036020840152614b988185615768565b6001600160401b0381811683821601908082111561582a5761582a614f62565b5092915050565b6040815260006158446040830185615511565b8281036020840152614b988185615612565b60006020828403121561586857600080fd5b81356001600160401b0381111561587e57600080fd5b61366c848285016145d5565b601f821115610aaa576000816000526020600020601f850160051c810160208610156158b35750805b601f850160051c820191505b818110156158d2578281556001016158bf565b505050505050565b81516001600160401b038111156158f3576158f3613cea565b615907816159018454614f28565b8461588a565b602080601f83116001811461593c57600084156159245750858301515b600019600386901b1c1916600185901b1785556158d2565b600085815260208120601f198616915b8281101561596b5788860151825594840194600190910190840161594c565b50858210156159895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c1660608401525060808083015261081260a0830160018501615768565b60006001600160401b0380841680615a0157615a01614f8b565b92169190910492915050565b600060208284031215615a1f57600080fd5b61081282614213565b6000808335601e19843603018112615a3f57600080fd5b8301803591506001600160401b03821115615a5957600080fd5b60200191503681900382131561498157600080fd5b8082018082111561081557610815614f62565b60ff818116838216019081111561081557610815614f62565b8183823760009101908152919050565b828152604082602083013760600192915050565b6020810160068310615ad257615ad2614166565b91905290565b60ff818116838216029081169081811461582a5761582a614f62565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615b4c5784546001600160a01b031683526001948501949284019201615b27565b50508481036060860152865180825290820192508187019060005b81811015615b8c5782516001600160a01b031685529383019391830191600101615b67565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b03808616835280851660208401525060606040830152614b98606083018461400c565b82815260406020820152600061366c604083018461400c565b6001600160401b038481168252831660208201526060810161366c604083018461417c565b848152615c20602082018561417c565b608060408201526000615c36608083018561400c565b905082606083015295945050505050565b600060208284031215615c5957600080fd5b8151613c2881613e03565b6020815260008251610100806020850152615c8361012085018361400c565b91506020850151615c9f60408601826001600160401b03169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615cd960a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615cf6848361400c565b935060c08701519150808685030160e0870152615d13848361400c565b935060e0870151915080868503018387015250615b9c838261400c565b6001600160a01b038316815260406020820152600061366c604083018461400c565b600060208284031215615d6457600080fd5b5051919050565b600082825180855260208086019550808260051b84010181860160005b848110156155a257601f19868403018952815160a08151818652615dae8287018261400c565b9150506001600160a01b03868301511686860152604063ffffffff8184015116818701525060608083015186830382880152615dea838261400c565b6080948501519790940196909652505098840198925090830190600101615d88565b6020815260006108126020830184615d6b565b60008282518085526020808601955060208260051b8401016020860160005b848110156155a257601f19868403018952615e5a83835161400c565b98840198925090830190600101615e3e565b60008151808452602080850194506020840160005b83811015614b2157815163ffffffff1687529582019590820190600101615e81565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615f0b6101a085018361400c565b91506040870151605f198086850301610120870152615f2a848361400c565b935060608901519150615f47838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615f708282615d6b565b9150508281036020840152615f858186615e1f565b90508281036040840152615b9c8185615e6c56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 1a0db0f483a..59227bfa8cd 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -16,7 +16,7 @@ mock_v3_aggregator_contract: ../../../contracts/solc/v0.8.24/MockV3Aggregator/Mo multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRateLimiter/MultiAggregateRateLimiter.abi ../../../contracts/solc/v0.8.24/MultiAggregateRateLimiter/MultiAggregateRateLimiter.bin c3cac2010c2815b484055bf981363a2bd04e7fbe7bb502dc8fd29a16165d221c multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin a523e11ea4c069d7d61b309c156951cc6834aff0f352bd1ac37c3a838ff2588f nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin e6008490d916826cefd1903612db39621d51617300fc9bb42b68c6c117958198 -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 8e6c048d3a7799f4149bd7e470064be375a35538404b30ade4798ac27f8dbf7e +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 9d2c4805664a5609d781505aa1f6d365ec7c483be601c6191e0056d88ddb348b onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 2bf74188a997218502031f177cb2df505b272d66b25fd341a741289e77380c59 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin 24b4415a883a470d65c484be0fa20714a46b1c9262db205f1c958017820307b2 registry_module_owner_custom: ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.abi ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.bin 0fc277a0b512db4e20b5a32a775b94ed2c0d342d8237511de78c94f7dacad428